为安全,参照范例,改为每次BUILD所有CMD BUF

This commit is contained in:
hyzboy 2019-06-11 19:54:45 +08:00
parent 19e268050f
commit c5fc313091

View File

@ -155,25 +155,21 @@ private:
cmd_buf=hgl_zero_new<vulkan::CommandBuffer *>(swap_chain_count); cmd_buf=hgl_zero_new<vulkan::CommandBuffer *>(swap_chain_count);
for(uint i=0;i<swap_chain_count;i++) for(uint i=0;i<swap_chain_count;i++)
{
cmd_buf[i]=device->CreateCommandBuffer(); cmd_buf[i]=device->CreateCommandBuffer();
BuildCommandBuffer(cmd_buf[i],device->GetFramebuffer(i)); return BuildCommandBuffer();
}
return(true);
} }
bool BuildCommandBuffer(vulkan::CommandBuffer *cb,vulkan::Framebuffer *fb) bool BuildCommandBuffer()
{ {
if (!cb) for(uint i=0;i<swap_chain_count;i++)
return(false); {
cmd_buf[i]->Begin();
cb->Begin(); cmd_buf[i]->BeginRenderPass(device->GetRenderPass(),device->GetFramebuffer(i));
cb->BeginRenderPass(device->GetRenderPass(),fb); render_list.Render(cmd_buf[i]);
render_list.Render(cb); cmd_buf[i]->EndRenderPass();
cb->EndRenderPass(); cmd_buf[i]->End();
cb->End(); }
return(true); return(true);
} }
@ -213,10 +209,7 @@ public:
void Draw() override void Draw() override
{ {
const uint32_t frame_index=device->GetCurrentFrameIndices(); vulkan::CommandBuffer *cb=cmd_buf[device->GetCurrentFrameIndices()];
vulkan::Framebuffer * fb=device->GetFramebuffer(frame_index);
vulkan::CommandBuffer * cb=cmd_buf[frame_index];
Submit(*cb); Submit(*cb);
@ -225,7 +218,7 @@ public:
render_root.RefreshMatrix(&rot); render_root.RefreshMatrix(&rot);
render_root.ExpendToList(&render_list); render_root.ExpendToList(&render_list);
BuildCommandBuffer(cb,fb); BuildCommandBuffer();
} }
};//class TestApp:public VulkanApplicationFramework };//class TestApp:public VulkanApplicationFramework