From 7c745df910ee9fe34f2464fdca84478248d98745 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Wed, 29 Jan 2025 16:30:00 +0800 Subject: [PATCH] Added RunFramework() --- example/Basic/rf_test.cpp | 22 +++------------------- inc/hgl/WorkManager.h | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/example/Basic/rf_test.cpp b/example/Basic/rf_test.cpp index 8752e011..d4ecff8d 100644 --- a/example/Basic/rf_test.cpp +++ b/example/Basic/rf_test.cpp @@ -1,6 +1,5 @@ // 该范例主要演示使用NDC坐标系直接绘制一个渐变色的三角形 #include -#include #include #include #include @@ -27,7 +26,6 @@ constexpr float color_data[VERTEX_COUNT*4]= 0,0,1,1 }; - class TestApp:public WorkObject { private: @@ -93,29 +91,15 @@ public: void Render(double delta_time,graph::RenderCmdBuffer *cmd) { - if(!cmd) - return; - cmd->SetClearColor(0,clear_color); cmd->BeginRenderPass(); cmd->Render(render_obj); cmd->EndRenderPass(); } -};//class TestApp:public VulkanApplicationFramework +};//class TestApp:public WorkObject -int main(int,char **) +int os_main(int,os_char **) { - RenderFramework rf(OS_TEXT("RenderFramework Test")); - - if(!rf.Init(SCREEN_WIDTH,SCREEN_HEIGHT)) - return(-1); - - // RenderFramework存在于外部,提供的是整体的渲染控制。 - - // WorkManager是提供一个工作业务管理,但开发者并不一定要使用它,所以我们不将它们整合在一起。 - - SwapchainWorkManager wm(&rf); - - wm.Run(new TestApp(&rf)); + return RunFramework(OS_TEXT("RenderFramework Test")); } diff --git a/inc/hgl/WorkManager.h b/inc/hgl/WorkManager.h index 531c820e..f4ab6e7c 100644 --- a/inc/hgl/WorkManager.h +++ b/inc/hgl/WorkManager.h @@ -58,4 +58,18 @@ namespace hgl void Render(WorkObject *wo) override; }; + + template int RunFramework(const OSString &title,uint width=1280,uint height=720) + { + graph::RenderFramework rf(title); + + if(!rf.Init(width,height)) + return(-1); + + SwapchainWorkManager wm(&rf); + + wm.Run(new WO(&rf)); + + return 0; + } }//namespcae hgl