OffscreenRender example,but it doesn't run.

This commit is contained in:
2020-10-17 22:13:08 +08:00
parent b833688f2a
commit 7998fa6e41
7 changed files with 193 additions and 17 deletions

View File

@@ -173,6 +173,29 @@ public:
}
}
void BuildCommandBuffer(vulkan::RenderTarget *rt,vulkan::RenderableInstance *ri)
{
if(!rt||!ri)
return;
vulkan::CommandBuffer *cb=rt->GetCommandBuffer();
const vulkan::IndexBuffer *ib=ri->GetIndexBuffer();
cb->Begin();
cb->BeginRenderPass(rt->GetRenderPass(),rt->GetFramebuffer());
cb->BindPipeline(ri->GetPipeline());
cb->BindDescriptorSets(ri->GetDescriptorSets());
cb->BindVAB(ri);
if (ib)
cb->DrawIndexed(ib->GetCount());
else
cb->Draw(ri->GetDrawCount());
cb->EndRenderPass();
cb->End();
}
void BuildCommandBuffer(uint32_t index,vulkan::RenderableInstance *ri)
{
if(!ri)
@@ -243,8 +266,9 @@ public:
{
VkCommandBuffer cb=*cmd_buf[index];
sc_render_target->Submit(cb,present_complete_semaphore,render_complete_semaphore);
sc_render_target->SubmitQueue::Submit(cb,present_complete_semaphore,render_complete_semaphore);
sc_render_target->PresentBackbuffer(*render_complete_semaphore);
sc_render_target->QueueWaitIdle();
sc_render_target->Wait();
}