增加SceneDB
This commit is contained in:
parent
c6700d60a7
commit
687e7669a9
@ -22,32 +22,6 @@ struct WorldConfig
|
||||
Matrix4f mvp;
|
||||
}world;
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
//using MaterialID=int;
|
||||
//using PipelineID=int;
|
||||
//using DescriptorSetsID=int;
|
||||
//using RenderableID=int;
|
||||
//
|
||||
///**
|
||||
// * 场景DB,用于管理场景内所需的所有数据
|
||||
// */
|
||||
//class SceneDatabase
|
||||
//{
|
||||
// IDResManage<MaterialID, Material> rm_material; ///<材质合集
|
||||
// IDResManage<PipelineID, Pipeline> rm_pipeline; ///<管线合集
|
||||
// IDResManage<DescriptorSetsID, DescriptorSets> rm_desc_sets; ///<描述符合集
|
||||
// IDResManage<RenderableID, Renderable> rm_renderable; ///<可渲染对象合集
|
||||
//
|
||||
//public:
|
||||
//
|
||||
// MaterialID Add(Material * mtl ){return rm_material.Add(mtl);}
|
||||
// PipelineID Add(Pipeline * p ){return rm_pipeline.Add(p);}
|
||||
// DescriptorSetsID Add(DescriptorSets *ds ){return rm_desc_sets.Add(ds);}
|
||||
// RenderableID Add(Renderable * r ){return rm_renderable.Add(r);}
|
||||
//};//class SceneDatabase
|
||||
|
||||
VK_NAMESPACE_END
|
||||
|
||||
class TestApp:public VulkanApplicationFramework
|
||||
{
|
||||
private:
|
||||
|
46
inc/hgl/graph/SceneDB.h
Normal file
46
inc/hgl/graph/SceneDB.h
Normal file
@ -0,0 +1,46 @@
|
||||
#ifndef HGL_GRAPH_SCENE_DATABASE_INCLUDE
|
||||
#define HGL_GRAPH_SCENE_DATABASE_INCLUDE
|
||||
|
||||
#include<hgl/graph/vulkan/VK.h>
|
||||
#include<hgl/type/ResManage.h>
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
using MaterialID =int;
|
||||
using PipelineID =int;
|
||||
using DescriptorSetsID =int;
|
||||
using RenderableID =int;
|
||||
using BufferID =int;
|
||||
|
||||
/**
|
||||
* 场景DB,用于管理场景内所需的所有数据
|
||||
*/
|
||||
class SceneDB
|
||||
{
|
||||
IDResManage<MaterialID, vulkan::Material> rm_material; ///<材质合集
|
||||
IDResManage<PipelineID, vulkan::Pipeline> rm_pipeline; ///<管线合集
|
||||
IDResManage<DescriptorSetsID, vulkan::DescriptorSets> rm_desc_sets; ///<描述符合集
|
||||
IDResManage<RenderableID, vulkan::Renderable> rm_renderables; ///<可渲染对象合集
|
||||
IDResManage<BufferID, vulkan::Buffer> rm_buffers; ///<顶点缓冲区集合
|
||||
|
||||
public:
|
||||
|
||||
SceneDB()=default;
|
||||
virtual ~SceneDB()=default;
|
||||
|
||||
MaterialID Add(vulkan::Material * mtl ){return rm_material.Add(mtl);}
|
||||
PipelineID Add(vulkan::Pipeline * p ){return rm_pipeline.Add(p);}
|
||||
DescriptorSetsID Add(vulkan::DescriptorSets *ds ){return rm_desc_sets.Add(ds);}
|
||||
RenderableID Add(vulkan::Renderable * r ){return rm_renderables.Add(r);}
|
||||
BufferID Add(vulkan::Buffer * buf ){return rm_buffers.Add(buf);}
|
||||
|
||||
vulkan::Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);}
|
||||
vulkan::Pipeline * GetPipeline (const PipelineID &id){return rm_pipeline.Get(id);}
|
||||
vulkan::DescriptorSets *GetDescSets (const DescriptorSetsID &id){return rm_desc_sets.Get(id);}
|
||||
vulkan::Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
|
||||
vulkan::Buffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);}
|
||||
};//class SceneDB
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
||||
#endif//HGL_GRAPH_SCENE_DATABASE_INCLUDE
|
@ -1,4 +1,4 @@
|
||||
#ifndef HGL_RES_MANAGE_CPP
|
||||
#ifndef HGL_RES_MANAGE_CPP
|
||||
#define HGL_RES_MANAGE_CPP
|
||||
|
||||
#include<hgl/type/ResManage.h>
|
||||
@ -26,7 +26,7 @@ namespace hgl
|
||||
}
|
||||
|
||||
template<typename F,typename T>
|
||||
void ResManage<F,T>::ClearZero()
|
||||
void ResManage<F,T>::ClearFree()
|
||||
{
|
||||
int n=items.GetCount();
|
||||
|
||||
|
@ -23,7 +23,7 @@ namespace hgl
|
||||
{
|
||||
protected:
|
||||
|
||||
typedef RefFlagData<F,T> ResItem;
|
||||
using ResItem=RefFlagData<F,T> ;
|
||||
|
||||
_Map<F,T *,ResItem> items;
|
||||
|
||||
@ -38,7 +38,7 @@ namespace hgl
|
||||
virtual ~ResManage();
|
||||
|
||||
virtual void Clear(); ///<清除所有数据
|
||||
virtual void ClearZero(); ///<清除所有没有用到的数据
|
||||
virtual void ClearFree(); ///<清除所有没有用到的数据
|
||||
|
||||
const int GetCount()const{return items.GetCount();} ///<取得数据数量
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
SET(SCENE_GRAPH_HEADER ${ROOT_INCLUDE_PATH}/hgl/graph/AABox.h
|
||||
${ROOT_INCLUDE_PATH}/hgl/graph/Camera.h
|
||||
${ROOT_INCLUDE_PATH}/hgl/graph/Light.h
|
||||
${ROOT_INCLUDE_PATH}/hgl/graph/SceneDB.h
|
||||
${ROOT_INCLUDE_PATH}/hgl/graph/SceneNode.h
|
||||
${ROOT_INCLUDE_PATH}/hgl/graph/SceneOrient.h
|
||||
${ROOT_INCLUDE_PATH}/hgl/graph/RenderableNode.h
|
||||
@ -11,6 +12,7 @@
|
||||
SET(SCENE_GRAPH_SOURCE AABox.cpp
|
||||
Camera.cpp
|
||||
RenderList.cpp
|
||||
SceneDB.cpp
|
||||
SceneNode.cpp
|
||||
SceneOrient.cpp
|
||||
InlineGeometry.cpp)
|
||||
|
8
src/SceneGraph/SceneDB.cpp
Normal file
8
src/SceneGraph/SceneDB.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
#include<hgl/graph/SceneDB.h>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
@ -50,7 +50,7 @@ namespace hgl
|
||||
sub++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user