split two files.they are MVPMatrix.h and SceneTreeToRenderList.h

This commit is contained in:
2021-04-26 20:36:56 +08:00
parent d0d00b235c
commit f1fcfe5cd4
9 changed files with 156 additions and 120 deletions

View File

@@ -4,15 +4,17 @@
#include<hgl/graph/VK.h>
#include<hgl/graph/Camera.h>
#include<hgl/graph/SceneNode.h>
#include<hgl/graph/VKArrayBuffer.h>
#include<hgl/graph/MVPMatrix.h>
#include<hgl/type/Color4f.h>
#include<hgl/type/Sets.h>
namespace hgl
{
namespace graph
{
struct MVPArray;
using SceneNodeList=List<SceneNode *>;
using SceneNodeList=List<SceneNode *>;
using MVPArrayBuffer=GPUArrayBuffer<MVPMatrix>;
using MVPOffsetBuffer=List<uint32_t>;
class RenderList
{
@@ -23,9 +25,12 @@ namespace hgl
Camera *camera;
MVPArray *mvp_array;
SceneNodeList scene_node_list;
SceneNodeList *scene_node_list;
MVPArrayBuffer *mvp_array;
MVPOffsetBuffer mvp_offset;
private:
Pipeline * last_pipeline;
RenderableInstance *last_ri;
@@ -48,60 +53,7 @@ namespace hgl
void End (CameraMatrix *);
bool Render (RenderCmdBuffer *);
};//class RenderList
class SceneTreeToRenderList
{
using PipelineSets=Sets<Pipeline *>;
using MaterialSets=Sets<Material *>;
using MatInstanceSets=Sets<MaterialInstance *>;
protected:
GPUDevice *device;
protected:
Camera * camera;
CameraMatrix * camera_matrix;
Frustum frustum;
protected:
SceneNodeList * scene_node_list; ///<场景节点列表
PipelineSets pipeline_sets; ///<管线合集
MaterialSets material_sets; ///<材质合集
MatInstanceSets mat_instance_sets; ///<材质实例合集
RenderList * render_list;
protected:
virtual uint32 CameraLength(SceneNode *,SceneNode *); ///<摄像机距离比较函数
virtual bool InFrustum(const SceneNode *,void *); ///<平截头截剪函数
virtual bool Begin();
virtual bool Expend(SceneNode *);
virtual bool End();
public:
SceneTreeToRenderList(GPUDevice *d)
{
device=d;
camera=nullptr;
camera_matrix=nullptr;
scene_node_list=nullptr;
render_list=nullptr;
}
virtual ~SceneTreeToRenderList();
virtual bool Expend(RenderList *,Camera *,SceneNode *);
};//class SceneTreeToRenderList
};//class RenderList
}//namespace graph
}//namespace hgl
#endif//HGL_GRAPH_RENDER_LIST_INCLUDE