From f6cc1ee619394048b6a5eeb43a0d8ee2d9a52057 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 5 Nov 2024 23:01:45 +0800 Subject: [PATCH] Added GraphModuleManager::ReleaseModule(GraphModule *) --- inc/hgl/graph/module/GraphModule.h | 2 ++ src/SceneGraph/module/GraphModuleManager.cpp | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/inc/hgl/graph/module/GraphModule.h b/inc/hgl/graph/module/GraphModule.h index 1443a05c..615ae582 100644 --- a/inc/hgl/graph/module/GraphModule.h +++ b/inc/hgl/graph/module/GraphModule.h @@ -34,6 +34,8 @@ public: template T *GetModule(bool create=false){return (T *)GetModule(T::GetModuleName(),create);} ///<获取指定类型的模块 + void ReleaseModule(GraphModule *); ///<释放指定模块 + const bool IsLoaded(const AnsiIDName &name){return graph_module_map.ContainsKey(name);} ///<是否已经加载了指定类型的模块 template diff --git a/src/SceneGraph/module/GraphModuleManager.cpp b/src/SceneGraph/module/GraphModuleManager.cpp index 87a3e7df..f9d23525 100644 --- a/src/SceneGraph/module/GraphModuleManager.cpp +++ b/src/SceneGraph/module/GraphModuleManager.cpp @@ -97,6 +97,15 @@ GraphModuleManager::~GraphModuleManager() } } +void GraphModuleManager::ReleaseModule(GraphModule *gm) +{ + if(!gm) + return; + + graph_module_map.DeleteByValue(gm); + delete gm; +} + void GraphModuleManager::OnResize(const VkExtent2D &extent) { if(graph_module_map.IsEmpty())