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