added InitRenderCmdBuffer/ClearRenderCmdBuffer in SwapchainModule
This commit is contained in:
parent
b775ffa920
commit
66b75aceb9
@ -12,12 +12,17 @@ class SwapchainModule:public GraphModule
|
||||
|
||||
RenderPass *swapchain_rp=nullptr;
|
||||
|
||||
RenderCmdBuffer **cmd_buf=nullptr;
|
||||
|
||||
protected:
|
||||
|
||||
bool CreateSwapchainFBO();
|
||||
bool CreateSwapchain();
|
||||
bool CreateSwapchainRenderTarget();
|
||||
|
||||
void InitRenderCmdBuffer();
|
||||
void ClearRenderCmdBuffer();
|
||||
|
||||
public:
|
||||
|
||||
virtual void OnResize(const VkExtent2D &)override; ///<窗口大小改变
|
||||
|
@ -192,8 +192,33 @@ bool SwapchainModule::CreateSwapchainRenderTarget()
|
||||
return true;
|
||||
}
|
||||
|
||||
void SwapchainModule::ClearRenderCmdBuffer()
|
||||
{
|
||||
SAFE_CLEAR_OBJECT_ARRAY_OBJECT(cmd_buf,swapchain->image_count);
|
||||
}
|
||||
|
||||
void SwapchainModule::InitRenderCmdBuffer()
|
||||
{
|
||||
ClearRenderCmdBuffer();
|
||||
|
||||
cmd_buf=hgl_zero_new<RenderCmdBuffer *>(swapchain->image_count);
|
||||
|
||||
GPUDevice *device=GetDevice();
|
||||
|
||||
AnsiString cmd_buf_name;
|
||||
|
||||
for(int32_t i=0;i<swapchain->image_count;i++)
|
||||
{
|
||||
cmd_buf_name=device->GetPhysicalDevice()->GetDeviceName()+AnsiString(":RenderCmdBuffer_")+AnsiString::numberOf(i);
|
||||
|
||||
cmd_buf[i]=device->CreateRenderCommandBuffer(cmd_buf_name);
|
||||
}
|
||||
}
|
||||
|
||||
SwapchainModule::~SwapchainModule()
|
||||
{
|
||||
ClearRenderCmdBuffer();
|
||||
|
||||
if(swapchain_rt)
|
||||
delete swapchain_rt;
|
||||
|
||||
@ -223,16 +248,22 @@ bool SwapchainModule::Init()
|
||||
if(!CreateSwapchainRenderTarget())
|
||||
return(false);
|
||||
|
||||
InitRenderCmdBuffer();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void SwapchainModule::OnResize(const VkExtent2D &extent)
|
||||
{
|
||||
ClearRenderCmdBuffer();
|
||||
|
||||
SAFE_CLEAR(swapchain_rt)
|
||||
|
||||
GetDeviceAttribute()->RefreshSurfaceCaps();
|
||||
|
||||
CreateSwapchainRenderTarget();
|
||||
|
||||
InitRenderCmdBuffer();
|
||||
}
|
||||
|
||||
bool SwapchainModule::BeginFrame()
|
||||
|
Loading…
x
Reference in New Issue
Block a user