RenderCmdBUffer::BindFramebuffer removed RenderPass param.
This commit is contained in:
parent
e24286a87f
commit
af03f2967c
@ -44,13 +44,12 @@ class RenderCmdBuffer:public GPUCmdBuffer
|
|||||||
VkRect2D render_area;
|
VkRect2D render_area;
|
||||||
VkViewport viewport;
|
VkViewport viewport;
|
||||||
|
|
||||||
Framebuffer *fbo;
|
|
||||||
RenderPassBeginInfo rp_begin;
|
RenderPassBeginInfo rp_begin;
|
||||||
VkPipelineLayout pipeline_layout;
|
VkPipelineLayout pipeline_layout;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void SetFBO(Framebuffer *);
|
void SetClear();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -80,7 +79,7 @@ public:
|
|||||||
|
|
||||||
//以上设定在Begin开始后即不可改变
|
//以上设定在Begin开始后即不可改变
|
||||||
|
|
||||||
bool BindFramebuffer(RenderPass *rp,Framebuffer *fb);
|
bool BindFramebuffer(Framebuffer *);
|
||||||
|
|
||||||
bool BeginRenderPass();
|
bool BeginRenderPass();
|
||||||
void NextSubpass(){vkCmdNextSubpass(cmd_buf,VK_SUBPASS_CONTENTS_INLINE);}
|
void NextSubpass(){vkCmdNextSubpass(cmd_buf,VK_SUBPASS_CONTENTS_INLINE);}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include<hgl/graph/VKDeviceAttribute.h>
|
#include<hgl/graph/VKDeviceAttribute.h>
|
||||||
#include<hgl/graph/VKPhysicalDevice.h>
|
#include<hgl/graph/VKPhysicalDevice.h>
|
||||||
#include<hgl/graph/VKIndexBuffer.h>
|
#include<hgl/graph/VKIndexBuffer.h>
|
||||||
|
#include<hgl/graph/VKRenderTarget.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
RenderCmdBuffer::RenderCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb):GPUCmdBuffer(attr,cb)
|
RenderCmdBuffer::RenderCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb):GPUCmdBuffer(attr,cb)
|
||||||
@ -15,7 +16,6 @@ RenderCmdBuffer::RenderCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer
|
|||||||
hgl_zero(render_area);
|
hgl_zero(render_area);
|
||||||
hgl_zero(viewport);
|
hgl_zero(viewport);
|
||||||
|
|
||||||
fbo=nullptr;
|
|
||||||
pipeline_layout=VK_NULL_HANDLE;
|
pipeline_layout=VK_NULL_HANDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,13 +25,8 @@ RenderCmdBuffer::~RenderCmdBuffer()
|
|||||||
hgl_free(clear_values);
|
hgl_free(clear_values);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderCmdBuffer::SetFBO(Framebuffer *fb)
|
void RenderCmdBuffer::SetClear()
|
||||||
{
|
{
|
||||||
if(fbo==fb)return;
|
|
||||||
|
|
||||||
fbo=fb;
|
|
||||||
cv_count=fbo->GetAttachmentCount();
|
|
||||||
|
|
||||||
if(cv_count>0)
|
if(cv_count>0)
|
||||||
{
|
{
|
||||||
clear_values=hgl_align_realloc<VkClearValue>(clear_values,cv_count);
|
clear_values=hgl_align_realloc<VkClearValue>(clear_values,cv_count);
|
||||||
@ -44,11 +39,6 @@ void RenderCmdBuffer::SetFBO(Framebuffer *fb)
|
|||||||
hgl_free(clear_values);
|
hgl_free(clear_values);
|
||||||
clear_values=nullptr;
|
clear_values=nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
render_area.offset.x=0;
|
|
||||||
render_area.offset.y=0;
|
|
||||||
render_area.extent.width=0;
|
|
||||||
render_area.extent.height=0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderCmdBuffer::SetRenderArea(const VkExtent2D &ext2d)
|
void RenderCmdBuffer::SetRenderArea(const VkExtent2D &ext2d)
|
||||||
@ -58,18 +48,19 @@ void RenderCmdBuffer::SetRenderArea(const VkExtent2D &ext2d)
|
|||||||
render_area.extent=ext2d;
|
render_area.extent=ext2d;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RenderCmdBuffer::BindFramebuffer(RenderPass *rp,Framebuffer *fb)
|
bool RenderCmdBuffer::BindFramebuffer(Framebuffer *fbo)
|
||||||
{
|
{
|
||||||
if(!rp||!fb)return(false);
|
if(!fbo)return(false);
|
||||||
|
|
||||||
SetFBO(fb);
|
cv_count=fbo->GetAttachmentCount();
|
||||||
|
SetClear();
|
||||||
|
|
||||||
render_area.offset.x=0;
|
render_area.offset.x=0;
|
||||||
render_area.offset.y=0;
|
render_area.offset.y=0;
|
||||||
render_area.extent=fb->GetExtent();
|
render_area.extent=fbo->GetExtent();
|
||||||
|
|
||||||
rp_begin.renderPass = rp->GetVkRenderPass();
|
rp_begin.renderPass = fbo->GetRenderPass();
|
||||||
rp_begin.framebuffer = *fb;
|
rp_begin.framebuffer = *fbo;
|
||||||
rp_begin.renderArea = render_area;
|
rp_begin.renderArea = render_area;
|
||||||
rp_begin.clearValueCount = cv_count;
|
rp_begin.clearValueCount = cv_count;
|
||||||
rp_begin.pClearValues = clear_values;
|
rp_begin.pClearValues = clear_values;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user