want to split RenderList2D/3D
This commit is contained in:
parent
5f830b8d57
commit
160ba000d3
@ -13,7 +13,6 @@ namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
using MVPArrayBuffer=GPUArrayBuffer<MVPMatrix>;
|
||||
using MaterialSets=SortedSets<Material *>;
|
||||
|
||||
/**
|
||||
@ -22,13 +21,13 @@ namespace hgl
|
||||
*/
|
||||
class RenderList
|
||||
{
|
||||
protected:
|
||||
|
||||
GPUDevice * device;
|
||||
RenderCmdBuffer *cmd_buf;
|
||||
|
||||
private:
|
||||
|
||||
CameraInfo camera_info;
|
||||
|
||||
RenderNodeList render_node_list; ///<场景节点列表
|
||||
MaterialSets material_sets; ///<材质合集
|
||||
|
||||
@ -36,7 +35,6 @@ namespace hgl
|
||||
|
||||
private:
|
||||
|
||||
MVPArrayBuffer *mvp_array;
|
||||
List<Renderable *> ri_list;
|
||||
|
||||
VkDescriptorSet ds_list[DESCRIPTOR_SET_TYPE_COUNT];
|
||||
@ -68,6 +66,29 @@ namespace hgl
|
||||
|
||||
virtual bool Render(RenderCmdBuffer *);
|
||||
};//class RenderList
|
||||
|
||||
class RenderList2D:public RenderList
|
||||
{
|
||||
};
|
||||
|
||||
class RenderList3D:public RenderList
|
||||
{
|
||||
protected:
|
||||
|
||||
CameraInfo camera_info;
|
||||
GPUArrayBuffer *mvp_array;
|
||||
|
||||
protected:
|
||||
|
||||
virtual bool Begin() override;
|
||||
virtual bool Expend(SceneNode *) override;
|
||||
virtual void End() override;
|
||||
|
||||
public:
|
||||
|
||||
RenderList3D();
|
||||
virtual ~RenderList3D() override;
|
||||
};
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
||||
#endif//HGL_GRAPH_RENDER_LIST_INCLUDE
|
||||
|
@ -80,11 +80,7 @@ namespace hgl
|
||||
{
|
||||
device =dev;
|
||||
cmd_buf =nullptr;
|
||||
|
||||
hgl_zero(camera_info);
|
||||
|
||||
mvp_array =new MVPArrayBuffer(device,VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
|
||||
|
||||
ubo_offset =0;
|
||||
ubo_align =0;
|
||||
|
||||
@ -95,13 +91,11 @@ namespace hgl
|
||||
|
||||
RenderList::~RenderList()
|
||||
{
|
||||
delete mvp_array;
|
||||
}
|
||||
|
||||
bool RenderList::Begin()
|
||||
{
|
||||
render_node_list.ClearData();
|
||||
mvp_array->Clear();
|
||||
ri_list.ClearData();
|
||||
|
||||
material_sets.ClearData();
|
||||
@ -252,7 +246,7 @@ namespace hgl
|
||||
cmd_buf->BindDescriptorSets(ri->GetPipelineLayout(),first_set,ds_list,ds_count,&ubo_offset,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
cmd_buf->BindDescriptorSets(ri->GetPipelineLayout(),first_set,ds_list,ds_count,nullptr,0);
|
||||
}
|
||||
|
||||
|
37
src/SceneGraph/RenderList3D.cpp
Normal file
37
src/SceneGraph/RenderList3D.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
#include<hgl/graph/RenderList.h>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
RenderList3D::RenderList3D()
|
||||
{
|
||||
hgl_zero(camera_info);
|
||||
|
||||
mvp_array =new GPUArrayBuffer(device,VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,MVPMatrixBytes);
|
||||
}
|
||||
|
||||
RenderList3D::~RenderList3D()
|
||||
{
|
||||
delete mvp_array;
|
||||
}
|
||||
|
||||
bool RenderList3D::Begin()
|
||||
{
|
||||
if(!RenderList::Begin())
|
||||
return(false);
|
||||
|
||||
mvp_array->Clear();
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool RenderList3D::Expend(SceneNode *)
|
||||
{
|
||||
}
|
||||
|
||||
void RenderList3D::End()
|
||||
{
|
||||
}
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
Loading…
x
Reference in New Issue
Block a user