ULRE/inc/hgl/graph/SceneTreeToRenderList.h

66 lines
1.9 KiB
C
Raw Normal View History

2021-04-30 18:56:20 +08:00
#ifndef HGL_GRAPH_SCENE_TREE_TO_RENDER_LIST_INCLUDE
#define HGL_GRAPH_SCENE_TREE_TO_RENDER_LIST_INCLUDE
#include<hgl/graph/RenderList.h>
2021-04-30 18:56:20 +08:00
#include<hgl/graph/VKPipeline.h>
#include<hgl/graph/VKMaterial.h>
#include<hgl/graph/VKMaterialParameters.h>
2021-06-15 15:04:48 +08:00
using RenderNodePointer=hgl::graph::RenderNode *;
using RenderNodeComparator=Comparator<RenderNodePointer>;
namespace hgl
{
namespace graph
{
2021-06-15 15:04:48 +08:00
using MVPArrayBuffer=GPUArrayBuffer<MVPMatrix>;
class SceneTreeToRenderList
{
//using PipelineSets =Sets<Pipeline *>;
2021-05-31 18:02:20 +08:00
using MaterialSets =Sets<Material *>;
//using MatInstSets =Sets<MaterialParameters *>;
protected:
2021-05-31 19:10:17 +08:00
GPUDevice * device;
protected:
2021-05-31 18:02:20 +08:00
CameraInfo camera_info; ///<相机信息
Frustum frustum;
protected:
2021-06-15 15:04:48 +08:00
RenderNodeComparator render_node_comparator;
2021-06-15 15:04:48 +08:00
RenderNodeList render_node_list; ///<场景节点列表
2021-06-15 15:04:48 +08:00
//PipelineSets pipeline_sets; ///<管线合集
MaterialSets material_sets; ///<材质合集
2021-06-15 15:04:48 +08:00
//MatInstSets mat_inst_sets; ///<材质实例合集
RenderListtwo_triangle测试这个
2021-06-15 15:04:48 +08:00
MVPArrayBuffer *mvp_array;
List<RenderableInstance *> ri_list;
RenderList * render_list;
protected:
virtual bool Begin();
virtual bool Expend(SceneNode *);
2021-06-15 15:04:48 +08:00
virtual void End();
public:
2021-05-31 18:02:20 +08:00
SceneTreeToRenderList(GPUDevice *d);
virtual ~SceneTreeToRenderList();
2021-05-31 18:02:20 +08:00
virtual bool Expend(RenderList *,const CameraInfo &,SceneNode *);
2021-04-30 18:56:20 +08:00
};//class SceneTreeToRenderList
}//namespace graph
}//namespace hgl
#endif//HGL_GRAPH_SCENE_TREE_TO_RENDER_LIST_INCLUDE