增加SceneDB
This commit is contained in:
parent
c6700d60a7
commit
687e7669a9
@ -22,32 +22,6 @@ struct WorldConfig
|
|||||||
Matrix4f mvp;
|
Matrix4f mvp;
|
||||||
}world;
|
}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
|
class TestApp:public VulkanApplicationFramework
|
||||||
{
|
{
|
||||||
private:
|
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
|
#define HGL_RES_MANAGE_CPP
|
||||||
|
|
||||||
#include<hgl/type/ResManage.h>
|
#include<hgl/type/ResManage.h>
|
||||||
@ -26,7 +26,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename F,typename T>
|
template<typename F,typename T>
|
||||||
void ResManage<F,T>::ClearZero()
|
void ResManage<F,T>::ClearFree()
|
||||||
{
|
{
|
||||||
int n=items.GetCount();
|
int n=items.GetCount();
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
typedef RefFlagData<F,T> ResItem;
|
using ResItem=RefFlagData<F,T> ;
|
||||||
|
|
||||||
_Map<F,T *,ResItem> items;
|
_Map<F,T *,ResItem> items;
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ namespace hgl
|
|||||||
virtual ~ResManage();
|
virtual ~ResManage();
|
||||||
|
|
||||||
virtual void Clear(); ///<清除所有数据
|
virtual void Clear(); ///<清除所有数据
|
||||||
virtual void ClearZero(); ///<清除所有没有用到的数据
|
virtual void ClearFree(); ///<清除所有没有用到的数据
|
||||||
|
|
||||||
const int GetCount()const{return items.GetCount();} ///<取得数据数量
|
const int GetCount()const{return items.GetCount();} ///<取得数据数量
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
SET(SCENE_GRAPH_HEADER ${ROOT_INCLUDE_PATH}/hgl/graph/AABox.h
|
SET(SCENE_GRAPH_HEADER ${ROOT_INCLUDE_PATH}/hgl/graph/AABox.h
|
||||||
${ROOT_INCLUDE_PATH}/hgl/graph/Camera.h
|
${ROOT_INCLUDE_PATH}/hgl/graph/Camera.h
|
||||||
${ROOT_INCLUDE_PATH}/hgl/graph/Light.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/SceneNode.h
|
||||||
${ROOT_INCLUDE_PATH}/hgl/graph/SceneOrient.h
|
${ROOT_INCLUDE_PATH}/hgl/graph/SceneOrient.h
|
||||||
${ROOT_INCLUDE_PATH}/hgl/graph/RenderableNode.h
|
${ROOT_INCLUDE_PATH}/hgl/graph/RenderableNode.h
|
||||||
@ -11,6 +12,7 @@
|
|||||||
SET(SCENE_GRAPH_SOURCE AABox.cpp
|
SET(SCENE_GRAPH_SOURCE AABox.cpp
|
||||||
Camera.cpp
|
Camera.cpp
|
||||||
RenderList.cpp
|
RenderList.cpp
|
||||||
|
SceneDB.cpp
|
||||||
SceneNode.cpp
|
SceneNode.cpp
|
||||||
SceneOrient.cpp
|
SceneOrient.cpp
|
||||||
InlineGeometry.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++;
|
sub++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user