From 1183e442214535a334dfd0f7df14a38913354dff Mon Sep 17 00:00:00 2001 From: hyzboy Date: Thu, 24 Oct 2024 00:29:16 +0800 Subject: [PATCH] Added RegistryCommonModule.cpp --- example/common/VulkanAppFramework.h | 5 +++++ inc/hgl/graph/VK.h | 2 ++ inc/hgl/graph/module/GraphModuleFactory.h | 12 +----------- src/SceneGraph/CMakeLists.txt | 1 + src/SceneGraph/module/RegistryCommonModule.cpp | 11 +++++++++++ src/SceneGraph/module/SwapchainModule.cpp | 2 -- 6 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 src/SceneGraph/module/RegistryCommonModule.cpp diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index 3a56d1f4..bbef2fe7 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -84,6 +84,11 @@ public: rr->static_descriptor.AddUBO(mtl::SBS_ViewportInfo.name,ubo_vp_info); } + VulkanApplicationFramework() + { + RegistryCommonGraphModule(); + } + virtual ~VulkanApplicationFramework() { CloseShaderCompiler(); diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index 1d45671a..f9f55ec5 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -28,6 +28,8 @@ class GraphModule; class RenderModule; class GraphModuleManager; +void RegistryCommonGraphModule(); + using BindingMap =Map; using BindingMapArray =BindingMap[VK_DESCRIPTOR_TYPE_RANGE_SIZE]; diff --git a/inc/hgl/graph/module/GraphModuleFactory.h b/inc/hgl/graph/module/GraphModuleFactory.h index 2a0d5853..88fdfdce 100644 --- a/inc/hgl/graph/module/GraphModuleFactory.h +++ b/inc/hgl/graph/module/GraphModuleFactory.h @@ -21,20 +21,10 @@ bool RegistryGraphModuleFactory(const char *module_name,GraphModuleFactory *); template class RegistryGraphModule:public GraphModuleFactory { - bool registry_success; - public: - RegistryGraphModule() - { - registry_success=RegistryGraphModuleFactory(T::GetModuleName(),this); - } - GraphModule *Create(GraphModuleManager *gmm) override { - if(!registry_success) - return(nullptr); - if(!gmm) return(nullptr); @@ -42,6 +32,6 @@ public: } };//template class RegistryGraphModule:public GraphModuleFactory -#define REGISTRY_GRAPH_MODULE(Class) namespace{static RegistryGraphModule registry_##Class;} +#define REGISTRY_GRAPH_MODULE(Class) {RegistryGraphModuleFactory(#Class,new RegistryGraphModule);} VK_NAMESPACE_END \ No newline at end of file diff --git a/src/SceneGraph/CMakeLists.txt b/src/SceneGraph/CMakeLists.txt index 339bfb4b..a11a86aa 100644 --- a/src/SceneGraph/CMakeLists.txt +++ b/src/SceneGraph/CMakeLists.txt @@ -286,6 +286,7 @@ SET(GRAPH_MODULE_HEADER ${SGM_HEADER_PATH}/GraphModule.h SET(GRAPH_MODULE_SOURCE module/GraphModule.cpp module/GraphModuleFactory.cpp module/RenderModule.cpp + module/RegistryCommonModule.cpp module/SwapchainModule.cpp) SET(RENDER_FRAMEWORK_FILES ${SG_INCLUDE_PATH}/RenderFramework.h diff --git a/src/SceneGraph/module/RegistryCommonModule.cpp b/src/SceneGraph/module/RegistryCommonModule.cpp new file mode 100644 index 00000000..f517961e --- /dev/null +++ b/src/SceneGraph/module/RegistryCommonModule.cpp @@ -0,0 +1,11 @@ +#include +#include + +VK_NAMESPACE_BEGIN + +void RegistryCommonGraphModule() +{ + REGISTRY_GRAPH_MODULE(Swapchain) +} + +VK_NAMESPACE_END diff --git a/src/SceneGraph/module/SwapchainModule.cpp b/src/SceneGraph/module/SwapchainModule.cpp index e127bd57..e6f1009b 100644 --- a/src/SceneGraph/module/SwapchainModule.cpp +++ b/src/SceneGraph/module/SwapchainModule.cpp @@ -3,6 +3,4 @@ VK_NAMESPACE_BEGIN -//REGISTRY_GRAPH_MODULE(SwapchainModule) - VK_NAMESPACE_END