From 052e2c673ae3c4c516a31a326de70e6e35ba9552 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Wed, 29 Jan 2025 17:42:06 +0800 Subject: [PATCH] new WorkObject Construct function. --- example/Basic/rf_test.cpp | 4 +--- inc/hgl/WorkObject.h | 4 ++-- src/SceneGraph/Vulkan/Debug/VKDebugUtils.cpp | 4 ++-- src/Work/WorkManager.cpp | 2 +- src/Work/WorkObject.cpp | 7 ++++++- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/example/Basic/rf_test.cpp b/example/Basic/rf_test.cpp index d4ecff8d..d22683ea 100644 --- a/example/Basic/rf_test.cpp +++ b/example/Basic/rf_test.cpp @@ -73,10 +73,8 @@ private: public: - TestApp(RenderFramework *rf):WorkObject() + TestApp(RenderFramework *rf):WorkObject(rf,rf->GetSwapchainRenderTarget()) { - Join(rf,rf->GetSwapchainRenderTarget()); - if(!InitAutoMaterial()) return; diff --git a/inc/hgl/WorkObject.h b/inc/hgl/WorkObject.h index ff8833bd..0805f5b4 100644 --- a/inc/hgl/WorkObject.h +++ b/inc/hgl/WorkObject.h @@ -44,10 +44,10 @@ namespace hgl public: - WorkObject()=default; + WorkObject(graph::RenderFramework *,graph::IRenderTarget *); virtual ~WorkObject()=default; - virtual void Join(graph::RenderFramework *rf,graph::IRenderTarget *rt); + virtual void OnRenderTargetSwitch(graph::RenderFramework *rf,graph::IRenderTarget *rt); virtual void Render(double delta_time,graph::RenderCmdBuffer *cmd)=0; diff --git a/src/SceneGraph/Vulkan/Debug/VKDebugUtils.cpp b/src/SceneGraph/Vulkan/Debug/VKDebugUtils.cpp index 95c19d11..bdd1d758 100644 --- a/src/SceneGraph/Vulkan/Debug/VKDebugUtils.cpp +++ b/src/SceneGraph/Vulkan/Debug/VKDebugUtils.cpp @@ -1,11 +1,11 @@ -#include +#include VK_NAMESPACE_BEGIN DebugUtils *CreateDebugUtils(VkDevice device) { DebugUtilsFunction duf; -#define DUF_GETFUNC(n,N) duf.n=(PFN_vk##N##EXT)vkGetDeviceProcAddr(device,"vk"#N"EXT");if(!duf.##n)return(nullptr); +#define DUF_GETFUNC(n,N) duf.n=(PFN_vk##N##EXT)vkGetDeviceProcAddr(device,"vk"#N"EXT");if(!duf.n)return(nullptr); DUF_GETFUNC(SetName, SetDebugUtilsObjectName ); DUF_GETFUNC(SetTag, SetDebugUtilsObjectTag ); diff --git a/src/Work/WorkManager.cpp b/src/Work/WorkManager.cpp index 8948b6d6..68a7f188 100644 --- a/src/Work/WorkManager.cpp +++ b/src/Work/WorkManager.cpp @@ -45,7 +45,7 @@ namespace hgl cur_work_object=wo; - wo->Join(render_framework,render_framework->GetSwapchainRenderTarget()); + wo->OnRenderTargetSwitch(render_framework,render_framework->GetSwapchainRenderTarget()); Window *win=render_framework->GetWindow(); graph::GPUDevice *dev=render_framework->GetDevice(); diff --git a/src/Work/WorkObject.cpp b/src/Work/WorkObject.cpp index 9a2f49ff..0db0e68b 100644 --- a/src/Work/WorkObject.cpp +++ b/src/Work/WorkObject.cpp @@ -12,7 +12,12 @@ namespace hgl { - void WorkObject::Join(graph::RenderFramework *rf,graph::IRenderTarget *rt) + WorkObject::WorkObject(graph::RenderFramework *rf,graph::IRenderTarget *rt) + { + OnRenderTargetSwitch(rf,rt); + } + + void WorkObject::OnRenderTargetSwitch(graph::RenderFramework *rf,graph::IRenderTarget *rt) { if(!rf)return; if(render_framework==rf)return;