From 93e38fc14f31caff3a71f96cffb067acb4157e15 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 28 Jan 2025 20:48:43 +0800 Subject: [PATCH] created ULRE.Work contains WorkObject/WorkManager --- CMakeLists.txt | 1 + example/Basic/CMakeLists.txt | 2 +- example/Basic/rf_test.cpp | 4 +- example/CMakeLists.txt | 7 --- {example/common => inc/hgl}/WorkManager.h | 0 {example/common => inc/hgl}/WorkObject.h | 44 +---------------- src/CMakeLists.txt | 3 +- src/Work/CMakeLists.txt | 8 +++ {example/common => src/Work}/WorkManager.cpp | 2 +- src/Work/WorkObject.cpp | 52 ++++++++++++++++++++ 10 files changed, 69 insertions(+), 54 deletions(-) rename {example/common => inc/hgl}/WorkManager.h (100%) rename {example/common => inc/hgl}/WorkObject.h (54%) create mode 100644 src/Work/CMakeLists.txt rename {example/common => src/Work}/WorkManager.cpp (98%) create mode 100644 src/Work/WorkObject.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e581a4e..55650f83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ SET(ULRE CMCore CMAssetsManage CMSceneGraph CMUtil + ULRE.Work ULRE.Util ULRE.ShaderGen ULRE.SceneGraph diff --git a/example/Basic/CMakeLists.txt b/example/Basic/CMakeLists.txt index 0aa206f8..18c0514c 100644 --- a/example/Basic/CMakeLists.txt +++ b/example/Basic/CMakeLists.txt @@ -10,7 +10,7 @@ set_property(TARGET ${name} PROPERTY FOLDER "ULRE/Example/Basic") endmacro() -CreateProject(00_RenderFrameworkTest rf_test.cpp ${WORK_FILES}) +CreateProject(00_RenderFrameworkTest rf_test.cpp) CreateProject(01_draw_triangle_in_NDC draw_triangle_in_NDC.cpp) CreateProject(02_draw_triangle_use_UBO draw_triangle_use_UBO.cpp) CreateProject(03_auto_instance auto_instance.cpp) diff --git a/example/Basic/rf_test.cpp b/example/Basic/rf_test.cpp index 66632a7e..974ebb06 100644 --- a/example/Basic/rf_test.cpp +++ b/example/Basic/rf_test.cpp @@ -1,9 +1,9 @@ // 该范例主要演示使用NDC坐标系直接绘制一个渐变色的三角形 - -#include"WorkManager.h" +#include #include #include #include +#include #include #include diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 2d24c0ef..0efb5bb6 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -2,13 +2,6 @@ SET(VULKAN_APP_FRAMEWORK ${CMAKE_CURRENT_SOURCE_DIR}/common/VulkanAppFramework.h) - -SET(WORK_FILES ${CMAKE_CURRENT_SOURCE_DIR}/common/WorkObject.h - ${CMAKE_CURRENT_SOURCE_DIR}/common/WorkManager.h - ${CMAKE_CURRENT_SOURCE_DIR}/common/WorkManager.cpp) - -SOURCE_GROUP("Work" FILES ${WORK_FILES}) - add_subdirectory(Basic) add_subdirectory(Texture) add_subdirectory(LightBasic) diff --git a/example/common/WorkManager.h b/inc/hgl/WorkManager.h similarity index 100% rename from example/common/WorkManager.h rename to inc/hgl/WorkManager.h diff --git a/example/common/WorkObject.h b/inc/hgl/WorkObject.h similarity index 54% rename from example/common/WorkObject.h rename to inc/hgl/WorkObject.h index 39181fa8..ae4acaaa 100644 --- a/example/common/WorkObject.h +++ b/inc/hgl/WorkObject.h @@ -1,8 +1,5 @@ #pragma once #include -#include -#include -#include #include #include //#include @@ -47,47 +44,10 @@ namespace hgl WorkObject()=default; virtual ~WorkObject()=default; - virtual void Join(graph::RenderFramework *rf,graph::IRenderTarget *rt) - { - if(!rf)return; - if(render_framework==rf)return; - - render_framework=rf; - cur_render_target=rt; - db=rf->GetRenderResource(); - } + virtual void Join(graph::RenderFramework *rf,graph::IRenderTarget *rt); virtual void Render(double delta_time,graph::RenderCmdBuffer *cmd)=0; - virtual void Render(double delta_time) - { - if(!cur_render_target) - { - //std::cerr<<"WorkObject::Render,cur_render_target=nullptr"<BeginRender(); - - if(!cmd) - { - //std::cerr<<"WorkObject::Render,cur_render_target->BeginRender()=nullptr"<EndRender(); - cur_render_target->Submit(); - - render_dirty=false; - } - - //std::cout<<"WorkObject::Render End"< #include namespace hgl diff --git a/src/Work/WorkObject.cpp b/src/Work/WorkObject.cpp new file mode 100644 index 00000000..d9b0f778 --- /dev/null +++ b/src/Work/WorkObject.cpp @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include +#include +#include +//#include + +namespace hgl +{ + void WorkObject::Join(graph::RenderFramework *rf,graph::IRenderTarget *rt) + { + if(!rf)return; + if(render_framework==rf)return; + + render_framework=rf; + cur_render_target=rt; + db=rf->GetRenderResource(); + } + + void WorkObject::Render(double delta_time) + { + if(!cur_render_target) + { + //std::cerr<<"WorkObject::Render,cur_render_target=nullptr"<BeginRender(); + + if(!cmd) + { + //std::cerr<<"WorkObject::Render,cur_render_target->BeginRender()=nullptr"<EndRender(); + cur_render_target->Submit(); + + render_dirty=false; + } + + //std::cout<<"WorkObject::Render End"<