将cmd_buf,SceneDB转移到VulkanApplicationFramework中,以减少每个Example中的代码

This commit is contained in:
2019-06-11 23:14:13 +08:00
parent 029d00b28e
commit a33d76da09
10 changed files with 136 additions and 354 deletions

View File

@@ -29,9 +29,6 @@ class TestApp:public VulkanApplicationFramework
{
private:
uint swap_chain_count=0;
SceneDB * db =nullptr;
SceneNode render_root;
RenderList render_list;
@@ -45,16 +42,6 @@ private:
vulkan::Buffer * ubo_mvp =nullptr;
vulkan::Pipeline * pipeline =nullptr;
vulkan::CommandBuffer ** cmd_buf =nullptr;
public:
~TestApp()
{
SAFE_CLEAR(db);
SAFE_CLEAR_OBJECT_ARRAY(cmd_buf,swap_chain_count);
}
private:
@@ -152,27 +139,7 @@ private:
render_root.ExpendToList(&render_list);
return(true);
}
bool InitCommandBuffer()
{
cmd_buf=hgl_zero_new<vulkan::CommandBuffer *>(swap_chain_count);
for(uint i=0;i<swap_chain_count;i++)
{
cmd_buf[i]=device->CreateCommandBuffer();
if(!cmd_buf[i])
return(false);
cmd_buf[i]->Begin();
cmd_buf[i]->BeginRenderPass(device->GetRenderPass(),device->GetFramebuffer(i));
render_list.Render(cmd_buf[i]);
cmd_buf[i]->EndRenderPass();
cmd_buf[i]->End();
}
BuildCommandBuffer(&render_list);
return(true);
}
@@ -183,10 +150,6 @@ public:
if(!VulkanApplicationFramework::Init(SCREEN_WIDTH,SCREEN_HEIGHT))
return(false);
swap_chain_count=device->GetSwapChainImageCount();
db=new SceneDB(device);
if(!InitMaterial())
return(false);
@@ -201,20 +164,8 @@ public:
if(!InitScene())
return(false);
if(!InitCommandBuffer())
return(false);
return(true);
}
void Draw() override
{
const uint32_t frame_index=device->GetCurrentFrameIndices();
const vulkan::CommandBuffer *cb=cmd_buf[frame_index];
Submit(*cb);
}
};//class TestApp:public VulkanApplicationFramework
int main(int,char **)