diff --git a/inc/hgl/graph/vulkan/VKRenderTarget.h b/inc/hgl/graph/vulkan/VKRenderTarget.h index c093555f..39edb1d0 100644 --- a/inc/hgl/graph/vulkan/VKRenderTarget.h +++ b/inc/hgl/graph/vulkan/VKRenderTarget.h @@ -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 /** diff --git a/src/RenderDevice/Vulkan/VKRenderTarget.cpp b/src/RenderDevice/Vulkan/VKRenderTarget.cpp index 94e2d7df..52c5dd90 100644 --- a/src/RenderDevice/Vulkan/VKRenderTarget.cpp +++ b/src/RenderDevice/Vulkan/VKRenderTarget.cpp @@ -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;iGetImageView(),sc_depth->GetImageView())); + render_frame.Add(vulkan::CreateColorFramebuffer(device,main_rp,(*sc_color)->GetImageView(),sc_depth->GetImageView())); ++sc_color; }