add CommandBuffer value at RenderTarget class.

This commit is contained in:
hyzboy 2020-10-15 17:30:03 +08:00
parent 490af01162
commit 9cc92b5805
2 changed files with 11 additions and 7 deletions

View File

@ -40,20 +40,23 @@ protected:
VkExtent2D extent;
CommandBuffer *command_buffer;
protected:
friend class Device;
RenderTarget(Device *dev,Framebuffer *_fb,const uint32_t fence_count=1);
RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count=1);
public:
virtual ~RenderTarget()=default;
const VkExtent2D & GetExtent()const{return extent;}
virtual const VkRenderPass GetRenderPass()const{return fb->GetRenderPass();}
virtual const uint32_t GetColorCount()const{return fb->GetColorCount();}
virtual const VkFramebuffer GetFramebuffer()const{return fb->GetFramebuffer();}
const VkExtent2D & GetExtent ()const {return extent;}
CommandBuffer * GetCommandBuffer() {return command_buffer;}
virtual const VkRenderPass GetRenderPass ()const {return fb->GetRenderPass();}
virtual const uint32_t GetColorCount ()const {return fb->GetColorCount();}
virtual const VkFramebuffer GetFramebuffer ()const {return fb->GetFramebuffer();}
};//class RenderTarget
/**

View File

@ -90,9 +90,10 @@ bool SubmitQueue::Submit(const VkCommandBuffer &cmd_buf,vulkan::Semaphore *wait_
return Submit(&cmd_buf,1,wait_sem,complete_sem);
}
RenderTarget::RenderTarget(Device *dev,Framebuffer *_fb,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count)
RenderTarget::RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count)
{
fb=_fb;
command_buffer=_cb;
}
SwapchainRenderTarget::SwapchainRenderTarget(Device *dev,Swapchain *sc):RenderTarget(dev,nullptr,sc->GetImageCount())
@ -117,7 +118,7 @@ SwapchainRenderTarget::SwapchainRenderTarget(Device *dev,Swapchain *sc):RenderTa
for(uint i=0;i<swap_chain_count;i++)
{
render_frame.Add(vulkan::CreateFramebuffer(device,main_rp,(*sc_color)->GetImageView(),sc_depth->GetImageView()));
render_frame.Add(vulkan::CreateColorFramebuffer(device,main_rp,(*sc_color)->GetImageView(),sc_depth->GetImageView()));
++sc_color;
}