Added RunFramework()

This commit is contained in:
hyzboy 2025-01-29 16:30:00 +08:00
parent a03770fd00
commit 7c745df910
2 changed files with 17 additions and 19 deletions

View File

@ -1,6 +1,5 @@
// 该范例主要演示使用NDC坐标系直接绘制一个渐变色的三角形
#include<hgl/WorkManager.h>
#include<hgl/math/HalfFloat.h>
#include<hgl/graph/VKVertexInputConfig.h>
#include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/mtl/Material2DCreateConfig.h>
@ -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<TestApp>(OS_TEXT("RenderFramework Test"));
}

View File

@ -58,4 +58,18 @@ namespace hgl
void Render(WorkObject *wo) override;
};
template<typename WO> 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