optimized RenderCmdBuffer::BindFramebuffer
This commit is contained in:
parent
39aa63aa0a
commit
02ac76e5bd
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit 11e32b77f1136bcb552abb406cf73db799720e11
|
Subproject commit 9dd89aa5a34ef90b983895d32645df9b53cce955
|
@ -1 +1 @@
|
|||||||
Subproject commit 4949c2e3e82c8a88a783579aff120617c4ecfdab
|
Subproject commit 2370ba12d7656da491f65be66d9e134484377866
|
@ -195,12 +195,12 @@ public:
|
|||||||
Resize(w,h);
|
Resize(w,h);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuildCommandBuffer(RenderCmdBuffer *cb,RenderPass *rp,Framebuffer *fb,Renderable *ri)
|
bool BuildCommandBuffer(RenderCmdBuffer *cb,Framebuffer *fb,Renderable *ri)
|
||||||
{
|
{
|
||||||
if(!ri)return(false);
|
if(!ri)return(false);
|
||||||
|
|
||||||
cb->Begin();
|
cb->Begin();
|
||||||
cb->BindFramebuffer(rp,fb);
|
cb->BindFramebuffer(fb);
|
||||||
cb->SetClearColor(0,clear_color);
|
cb->SetClearColor(0,clear_color);
|
||||||
cb->BeginRenderPass();
|
cb->BeginRenderPass();
|
||||||
cb->BindPipeline(ri->GetPipeline());
|
cb->BindPipeline(ri->GetPipeline());
|
||||||
@ -213,12 +213,12 @@ public:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildCommandBuffer(RenderCmdBuffer *cb,RenderTarget *rt,Renderable *ri)
|
bool BuildCommandBuffer(RenderCmdBuffer *cb,RenderTarget *rt,Renderable *ri)
|
||||||
{
|
{
|
||||||
if(!cb||!rt||!ri)
|
if(!cb||!rt||!ri)
|
||||||
return;
|
return(false);
|
||||||
|
|
||||||
BuildCommandBuffer(cb,rt->GetRenderPass(),rt->GetFramebuffer(),ri);
|
return BuildCommandBuffer(cb,rt->GetFramebuffer(),ri);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuildCommandBuffer(uint32_t index,Renderable *ri)
|
bool BuildCommandBuffer(uint32_t index,Renderable *ri)
|
||||||
@ -226,15 +226,15 @@ public:
|
|||||||
if(!ri)return(false);
|
if(!ri)return(false);
|
||||||
|
|
||||||
return BuildCommandBuffer(sc_render_target->GetRenderCmdBuffer(index),
|
return BuildCommandBuffer(sc_render_target->GetRenderCmdBuffer(index),
|
||||||
sc_render_target->GetRenderPass(),
|
sc_render_target->GetFramebuffer(index),
|
||||||
sc_render_target->GetFramebuffer(index),ri);
|
ri);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuildCommandBuffer(Renderable *ri)
|
bool BuildCommandBuffer(Renderable *ri)
|
||||||
{
|
{
|
||||||
if(!ri)return(false);
|
if(!ri)return(false);
|
||||||
|
|
||||||
for(int32_t i=0;i<sc_render_target->GetImageCount();i++)
|
for(uint32_t i=0;i<sc_render_target->GetImageCount();i++)
|
||||||
BuildCommandBuffer(i,ri);
|
BuildCommandBuffer(i,ri);
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
@ -254,7 +254,7 @@ public:
|
|||||||
RenderCmdBuffer *cb=sc_render_target->GetRenderCmdBuffer(index);
|
RenderCmdBuffer *cb=sc_render_target->GetRenderCmdBuffer(index);
|
||||||
|
|
||||||
cb->Begin();
|
cb->Begin();
|
||||||
cb->BindFramebuffer(sc_render_target->GetRenderPass(),sc_render_target->GetFramebuffer(index));
|
cb->BindFramebuffer(sc_render_target->GetFramebuffer(index));
|
||||||
cb->SetClearColor(0,clear_color);
|
cb->SetClearColor(0,clear_color);
|
||||||
cb->BeginRenderPass();
|
cb->BeginRenderPass();
|
||||||
rl->Render(cb);
|
rl->Render(cb);
|
||||||
@ -264,7 +264,7 @@ public:
|
|||||||
|
|
||||||
void BuildCommandBuffer(RenderList *rl)
|
void BuildCommandBuffer(RenderList *rl)
|
||||||
{
|
{
|
||||||
for(int32_t i=0;i<sc_render_target->GetImageCount();i++)
|
for(uint32_t i=0;i<sc_render_target->GetImageCount();i++)
|
||||||
BuildCommandBuffer(i,rl);
|
BuildCommandBuffer(i,rl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,11 +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;
|
||||||
|
|
||||||
void SetFBO(Framebuffer *);
|
private:
|
||||||
|
|
||||||
|
void SetClear();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -78,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);}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
#ifndef HGL_GRAPH_VULKAN_FRAMEBUFFER_INCLUDE
|
#ifndef HGL_GRAPH_VULKAN_FRAMEBUFFER_INCLUDE
|
||||||
#define HGL_GRAPH_VULKAN_FRAMEBUFFER_INCLUDE
|
#define HGL_GRAPH_VULKAN_FRAMEBUFFER_INCLUDE
|
||||||
|
|
||||||
#include<hgl/graph/VK.h>
|
#include<hgl/graph/VKRenderPass.h>
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
class Framebuffer
|
class Framebuffer
|
||||||
{
|
{
|
||||||
VkDevice device;
|
VkDevice device;
|
||||||
VkFramebuffer frame_buffer;
|
VkFramebuffer frame_buffer;
|
||||||
VkRenderPass render_pass;
|
RenderPass *render_pass;
|
||||||
|
|
||||||
VkExtent2D extent;
|
VkExtent2D extent;
|
||||||
uint32_t attachment_count;
|
uint32_t attachment_count;
|
||||||
@ -18,7 +18,7 @@ private:
|
|||||||
|
|
||||||
friend class GPUDevice;
|
friend class GPUDevice;
|
||||||
|
|
||||||
Framebuffer(VkDevice,VkFramebuffer,const VkExtent2D &,VkRenderPass,uint32_t color_count,bool depth);
|
Framebuffer(VkDevice,VkFramebuffer,const VkExtent2D &,RenderPass *,uint32_t color_count,bool depth);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ public:
|
|||||||
operator VkFramebuffer(){return frame_buffer;}
|
operator VkFramebuffer(){return frame_buffer;}
|
||||||
|
|
||||||
const VkFramebuffer GetFramebuffer ()const{return frame_buffer;}
|
const VkFramebuffer GetFramebuffer ()const{return frame_buffer;}
|
||||||
const VkRenderPass GetRenderPass ()const{return render_pass;}
|
RenderPass * GetRenderPass () {return render_pass;}
|
||||||
|
|
||||||
const VkExtent2D & GetExtent ()const{return extent;}
|
const VkExtent2D & GetExtent ()const{return extent;}
|
||||||
|
|
||||||
|
@ -37,8 +37,10 @@ public:
|
|||||||
|
|
||||||
virtual ~RenderPass();
|
virtual ~RenderPass();
|
||||||
|
|
||||||
VkRenderPass GetVkRenderPass(){return render_pass;}
|
operator const VkRenderPass()const{return render_pass;}
|
||||||
VkPipelineCache GetPipelineCache(){return pipeline_cache;}
|
|
||||||
|
const VkRenderPass GetVkRenderPass()const{return render_pass;}
|
||||||
|
const VkPipelineCache GetPipelineCache()const{return pipeline_cache;}
|
||||||
|
|
||||||
const uint GetColorCount()const{return color_formats.GetCount();}
|
const uint GetColorCount()const{return color_formats.GetCount();}
|
||||||
const List<VkFormat> & GetColorFormat()const{return color_formats;}
|
const List<VkFormat> & GetColorFormat()const{return color_formats;}
|
||||||
|
@ -17,7 +17,6 @@ protected:
|
|||||||
|
|
||||||
DeviceQueue *queue;
|
DeviceQueue *queue;
|
||||||
|
|
||||||
RenderPass *render_pass;
|
|
||||||
Framebuffer *fbo;
|
Framebuffer *fbo;
|
||||||
|
|
||||||
VkExtent2D extent;
|
VkExtent2D extent;
|
||||||
@ -35,7 +34,7 @@ protected:
|
|||||||
friend class GPUDevice;
|
friend class GPUDevice;
|
||||||
|
|
||||||
RenderTarget(DeviceQueue *,Semaphore *);
|
RenderTarget(DeviceQueue *,Semaphore *);
|
||||||
RenderTarget(DeviceQueue *,Semaphore *,RenderPass *_rp,Framebuffer *_fb,Texture2D **color_texture_list,const uint32_t color_count,Texture2D *depth_texture);
|
RenderTarget(DeviceQueue *,Semaphore *,Framebuffer *_fb,Texture2D **color_texture_list,const uint32_t color_count,Texture2D *depth_texture);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -43,10 +42,8 @@ public:
|
|||||||
|
|
||||||
DeviceQueue * GetQueue () {return queue;}
|
DeviceQueue * GetQueue () {return queue;}
|
||||||
const VkExtent2D & GetExtent ()const {return extent;}
|
const VkExtent2D & GetExtent ()const {return extent;}
|
||||||
virtual RenderPass * GetRenderPass () {return render_pass;}
|
virtual RenderPass * GetRenderPass () {return GetFramebuffer()->GetRenderPass();}
|
||||||
virtual const VkRenderPass GetVkRenderPass ()const {return render_pass->GetVkRenderPass();}
|
virtual uint32_t GetColorCount () {return GetFramebuffer()->GetColorCount();}
|
||||||
|
|
||||||
virtual const uint32_t GetColorCount ()const {return fbo->GetColorCount();}
|
|
||||||
|
|
||||||
virtual Framebuffer * GetFramebuffer () {return fbo;}
|
virtual Framebuffer * GetFramebuffer () {return fbo;}
|
||||||
virtual Texture2D * GetColorTexture (const int index=0){return color_textures[index];}
|
virtual Texture2D * GetColorTexture (const int index=0){return color_textures[index];}
|
||||||
@ -76,27 +73,24 @@ class RTSwapchain:public RenderTarget
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RTSwapchain(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs,RenderPass *rp);
|
RTSwapchain(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs);
|
||||||
~RTSwapchain();
|
~RTSwapchain();
|
||||||
|
|
||||||
const uint32_t GetColorCount ()const override {return 1;} ///Swapchain的FBO颜色成份只有一个
|
uint32_t GetColorCount () override {return 1;}
|
||||||
const uint32_t GetImageCount ()const {return swapchain->image_count;}
|
uint32_t GetImageCount ()const {return swapchain->image_count;}
|
||||||
|
uint32_t GetCurrentFrameIndices ()const {return current_frame;}
|
||||||
|
|
||||||
Framebuffer * GetFramebuffer ()override {return swapchain->sc_image[current_frame].fbo;}
|
Framebuffer * GetFramebuffer ()override {return swapchain->sc_image[current_frame].fbo;}
|
||||||
Framebuffer * GetFramebuffer (const int index) {return swapchain->sc_image[index].fbo;}
|
Framebuffer * GetFramebuffer (int index) {return swapchain->sc_image[index].fbo;}
|
||||||
|
|
||||||
virtual Texture2D * GetColorTexture (const int index=0) override{return swapchain->sc_image[current_frame].color;}
|
virtual Texture2D * GetColorTexture (const int index=0) override{return swapchain->sc_image[current_frame].color;}
|
||||||
virtual Texture2D * GetDepthTexture () override{return swapchain->sc_image[current_frame].depth;}
|
virtual Texture2D * GetDepthTexture () override{return swapchain->sc_image[current_frame].depth;}
|
||||||
|
|
||||||
RenderCmdBuffer *GetRenderCmdBuffer(const int index)
|
RenderCmdBuffer * GetRenderCmdBuffer (int index) {return swapchain->sc_image[index].cmd_buf;}
|
||||||
{
|
|
||||||
return swapchain->sc_image[index].cmd_buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
const uint32_t GetCurrentFrameIndices ()const {return current_frame;}
|
Semaphore * GetPresentSemaphore () {return present_complete_semaphore;}
|
||||||
Semaphore * GetPresentCompleteSemaphore () {return present_complete_semaphore;}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
2
res
2
res
@ -1 +1 @@
|
|||||||
Subproject commit 008dbd5353e6afe7add287333cbda1b5c5fffdec
|
Subproject commit e1a36d78f0eead5f6bb65493432c4690637b991d
|
@ -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;
|
||||||
|
@ -75,7 +75,7 @@ Framebuffer *GPUDevice::CreateFBO(RenderPass *rp,ImageView **color_list,const ui
|
|||||||
if(!fbo)
|
if(!fbo)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
return(new Framebuffer(GetDevice(),fbo,extent,rp->GetVkRenderPass(),color_count,depth));
|
return(new Framebuffer(GetDevice(),fbo,extent,rp,color_count,depth));
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
//Framebuffer *GPUDevice::CreateFBO(RenderPass *rp,List<ImageView *> &color,ImageView *depth)
|
//Framebuffer *GPUDevice::CreateFBO(RenderPass *rp,List<ImageView *> &color,ImageView *depth)
|
||||||
|
@ -37,7 +37,7 @@ RenderTarget *GPUDevice::CreateRT(const FramebufferInfo *fbi,RenderPass *rp,cons
|
|||||||
DeviceQueue *q=CreateQueue(fence_count,false);
|
DeviceQueue *q=CreateQueue(fence_count,false);
|
||||||
Semaphore *render_complete_semaphore=CreateGPUSemaphore();
|
Semaphore *render_complete_semaphore=CreateGPUSemaphore();
|
||||||
|
|
||||||
RenderTarget *rt=new RenderTarget(q,render_complete_semaphore,rp,fb,color_texture_list,color_count,depth_texture);
|
RenderTarget *rt=new RenderTarget(q,render_complete_semaphore,fb,color_texture_list,color_count,depth_texture);
|
||||||
|
|
||||||
color_texture_list.DiscardObject();
|
color_texture_list.DiscardObject();
|
||||||
return rt;
|
return rt;
|
||||||
@ -73,8 +73,7 @@ RTSwapchain *GPUDevice::CreateSwapchainRenderTarget()
|
|||||||
sc,
|
sc,
|
||||||
q,
|
q,
|
||||||
render_complete_semaphore,
|
render_complete_semaphore,
|
||||||
present_complete_semaphore,
|
present_complete_semaphore
|
||||||
sc->render_pass
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return srt;
|
return srt;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
Framebuffer::Framebuffer(VkDevice dev,VkFramebuffer fb,const VkExtent2D &ext,VkRenderPass rp,uint32_t cc,bool depth)
|
Framebuffer::Framebuffer(VkDevice dev,VkFramebuffer fb,const VkExtent2D &ext,RenderPass *rp,uint32_t cc,bool depth)
|
||||||
{
|
{
|
||||||
device=dev;
|
device=dev;
|
||||||
frame_buffer=fb;
|
frame_buffer=fb;
|
||||||
|
@ -9,7 +9,6 @@ VK_NAMESPACE_BEGIN
|
|||||||
RenderTarget::RenderTarget(DeviceQueue *q,Semaphore *s)
|
RenderTarget::RenderTarget(DeviceQueue *q,Semaphore *s)
|
||||||
{
|
{
|
||||||
queue=q;
|
queue=q;
|
||||||
render_pass=nullptr;
|
|
||||||
fbo=nullptr;
|
fbo=nullptr;
|
||||||
|
|
||||||
color_count=0;
|
color_count=0;
|
||||||
@ -18,10 +17,9 @@ RenderTarget::RenderTarget(DeviceQueue *q,Semaphore *s)
|
|||||||
render_complete_semaphore=s;
|
render_complete_semaphore=s;
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderTarget::RenderTarget(DeviceQueue *q,Semaphore *s,RenderPass *_rp,Framebuffer *_fb,Texture2D **ctl,const uint32_t cc,Texture2D *dt)
|
RenderTarget::RenderTarget(DeviceQueue *q,Semaphore *s,Framebuffer *_fb,Texture2D **ctl,const uint32_t cc,Texture2D *dt)
|
||||||
{
|
{
|
||||||
queue=q;
|
queue=q;
|
||||||
render_pass=_rp;
|
|
||||||
fbo=_fb;
|
fbo=_fb;
|
||||||
|
|
||||||
depth_texture=dt;
|
depth_texture=dt;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#include<hgl/graph/VKSemaphore.h>
|
#include<hgl/graph/VKSemaphore.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
RTSwapchain::RTSwapchain(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs,RenderPass *rp):RenderTarget(q,rcs)
|
RTSwapchain::RTSwapchain(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs):RenderTarget(q,rcs)
|
||||||
{
|
{
|
||||||
device=dev;
|
device=dev;
|
||||||
|
|
||||||
@ -15,8 +15,6 @@ RTSwapchain::RTSwapchain(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rc
|
|||||||
present_info.pResults = nullptr;
|
present_info.pResults = nullptr;
|
||||||
present_info.pSwapchains = &(swapchain->swap_chain);
|
present_info.pSwapchains = &(swapchain->swap_chain);
|
||||||
|
|
||||||
render_pass=rp;
|
|
||||||
|
|
||||||
extent=swapchain->extent;
|
extent=swapchain->extent;
|
||||||
|
|
||||||
current_frame=0;
|
current_frame=0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user