Added Render(Renderable *) in RenderCmdBuffer
This commit is contained in:
parent
d63af2d8de
commit
dcefb261ad
@ -95,18 +95,6 @@ public:
|
|||||||
void Tick(double)override
|
void Tick(double)override
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void Render(RenderCmdBuffer *cb,Renderable *ri)
|
|
||||||
{
|
|
||||||
if(!ri)return;
|
|
||||||
|
|
||||||
cb->BeginRenderPass();
|
|
||||||
cb->BindPipeline(ri->GetPipeline());
|
|
||||||
cb->BindDescriptorSets(ri->GetMaterial());
|
|
||||||
cb->BindDataBuffer(ri->GetDataBuffer());
|
|
||||||
cb->Draw(ri->GetDataBuffer(),ri->GetRenderData());
|
|
||||||
cb->EndRenderPass();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Render(double)
|
void Render(double)
|
||||||
{
|
{
|
||||||
//WorkObject是工作对象,不是渲染对象,所以不应该直接自动指定RenderTarget,更不能直接指定RenderCmdBuffer
|
//WorkObject是工作对象,不是渲染对象,所以不应该直接自动指定RenderTarget,更不能直接指定RenderCmdBuffer
|
||||||
@ -119,7 +107,6 @@ public:
|
|||||||
RenderCmdBuffer *cb=sm->BeginRender(); //这里会有AcquireNextImage操作
|
RenderCmdBuffer *cb=sm->BeginRender(); //这里会有AcquireNextImage操作
|
||||||
if(cb)
|
if(cb)
|
||||||
{
|
{
|
||||||
|
|
||||||
//这个使用完全不合理,录制CMD和推送swapchain是两回事,需要分开操作。
|
//这个使用完全不合理,录制CMD和推送swapchain是两回事,需要分开操作。
|
||||||
//比如场景有的物件分静态和动态
|
//比如场景有的物件分静态和动态
|
||||||
|
|
||||||
@ -127,7 +114,9 @@ public:
|
|||||||
|
|
||||||
cb->SetClearColor(0,clear_color);
|
cb->SetClearColor(0,clear_color);
|
||||||
|
|
||||||
Render(cb,render_obj);
|
cb->BeginRenderPass();
|
||||||
|
cb->Render(render_obj);
|
||||||
|
cb->EndRenderPass();
|
||||||
|
|
||||||
sm->EndRender(); //这里会Submit和PresentBackbuffer
|
sm->EndRender(); //这里会Submit和PresentBackbuffer
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include<hgl/graph/VKVABList.h>
|
#include<hgl/graph/VKVABList.h>
|
||||||
#include<hgl/graph/VKPipeline.h>
|
#include<hgl/graph/VKPipeline.h>
|
||||||
#include<hgl/graph/VKDescriptorSet.h>
|
#include<hgl/graph/VKDescriptorSet.h>
|
||||||
|
#include<hgl/graph/VKRenderable.h>
|
||||||
#include<hgl/color/Color4f.h>
|
#include<hgl/color/Color4f.h>
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
class GPUCmdBuffer
|
class GPUCmdBuffer
|
||||||
@ -229,6 +230,19 @@ public: //draw
|
|||||||
void Draw (const PrimitiveDataBuffer *prb,const PrimitiveRenderData *prd,const uint32_t instance_count=1,const uint32_t first_instance=0);
|
void Draw (const PrimitiveDataBuffer *prb,const PrimitiveRenderData *prd,const uint32_t instance_count=1,const uint32_t first_instance=0);
|
||||||
|
|
||||||
public: //dynamic state
|
public: //dynamic state
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
void Render(Renderable *ri)
|
||||||
|
{
|
||||||
|
if(!ri)return;
|
||||||
|
|
||||||
|
BindPipeline(ri->GetPipeline());
|
||||||
|
BindDescriptorSets(ri->GetMaterial());
|
||||||
|
BindDataBuffer(ri->GetDataBuffer());
|
||||||
|
|
||||||
|
Draw(ri->GetDataBuffer(),ri->GetRenderData());
|
||||||
|
}
|
||||||
};//class RenderCmdBuffer:public GPUCmdBuffer
|
};//class RenderCmdBuffer:public GPUCmdBuffer
|
||||||
|
|
||||||
class TextureCmdBuffer:public GPUCmdBuffer
|
class TextureCmdBuffer:public GPUCmdBuffer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user