WorkManager 改从io::WindowEvent派生,SwapchainWorkManager则相应的不再从io::WindowEvent派生

This commit is contained in:
2025-06-27 01:52:15 +08:00
parent 7da6205caf
commit f82217763c

View File

@@ -8,7 +8,7 @@ namespace hgl
/** /**
* 工作管理器管理一个序列的WorkObject<br> * 工作管理器管理一个序列的WorkObject<br>
*/ */
class WorkManager class WorkManager:public io::WindowEvent
{ {
protected: protected:
@@ -28,10 +28,13 @@ namespace hgl
WorkManager(graph::RenderFramework *rf) WorkManager(graph::RenderFramework *rf)
{ {
render_framework=rf; render_framework=rf;
rf->Join(this);
} }
virtual ~WorkManager() virtual ~WorkManager()
{ {
render_framework->Unjoin(this);
SAFE_CLEAR(cur_work_object); SAFE_CLEAR(cur_work_object);
} }
@@ -48,7 +51,7 @@ namespace hgl
void Run(WorkObject *wo); void Run(WorkObject *wo);
};//class WorkManager };//class WorkManager
class SwapchainWorkManager:public WorkManager,public io::WindowEvent class SwapchainWorkManager:public WorkManager
{ {
graph::SwapchainModule *swapchain_module; graph::SwapchainModule *swapchain_module;
@@ -57,14 +60,9 @@ namespace hgl
SwapchainWorkManager(graph::RenderFramework *rf):WorkManager(rf) SwapchainWorkManager(graph::RenderFramework *rf):WorkManager(rf)
{ {
swapchain_module=rf->GetSwapchainModule(); swapchain_module=rf->GetSwapchainModule();
render_framework->Join(this);
} }
~SwapchainWorkManager() ~SwapchainWorkManager()=default;
{
render_framework->Unjoin(this);
}
void Render(WorkObject *wo) override; void Render(WorkObject *wo) override;