diff --git a/example/Vulkan/Geometry2D.cpp b/example/Vulkan/Geometry2D.cpp index cbd1b3dc..ac5c96af 100644 --- a/example/Vulkan/Geometry2D.cpp +++ b/example/Vulkan/Geometry2D.cpp @@ -2,7 +2,7 @@ // 该范例有两个作用: // 一、测试绘制2D几何体 // 二、试验动态合并材质渲染机制 -// 三、试验SceneDB/SceneGraph +// 三、试验Database/SceneGraph #include"VulkanAppFramework.h" #include diff --git a/example/Vulkan/LoadStaticMesh.cpp b/example/Vulkan/LoadStaticMesh.cpp index d3f1143f..db8c2c2e 100644 --- a/example/Vulkan/LoadStaticMesh.cpp +++ b/example/Vulkan/LoadStaticMesh.cpp @@ -23,7 +23,7 @@ using namespace hgl::graph; constexpr uint32_t SCREEN_WIDTH=1280; constexpr uint32_t SCREEN_HEIGHT=720; -vulkan::Renderable *CreateMeshRenderable(SceneDB *db,vulkan::Material *mtl,const MeshData *mesh) +vulkan::Renderable *CreateMeshRenderable(Database *db,vulkan::Material *mtl,const MeshData *mesh) { const vulkan::VertexShaderModule *vsm=mtl->GetVertexShaderModule(); diff --git a/example/Vulkan/VulkanAppFramework.h b/example/Vulkan/VulkanAppFramework.h index bbced199..f89a93dc 100644 --- a/example/Vulkan/VulkanAppFramework.h +++ b/example/Vulkan/VulkanAppFramework.h @@ -63,7 +63,7 @@ protected: protected: - SceneDB * db =nullptr; + Database * db =nullptr; bool key_status[kbRangeSize]; @@ -127,7 +127,7 @@ public: render_complete_semaphore =device->CreateSem(); shader_manage=device->CreateShaderModuleManage(); - db=new SceneDB(device); + db=new Database(device); InitCommandBuffer(); diff --git a/inc/hgl/graph/InlineGeometry.h b/inc/hgl/graph/InlineGeometry.h index cce79211..109fd68f 100644 --- a/inc/hgl/graph/InlineGeometry.h +++ b/inc/hgl/graph/InlineGeometry.h @@ -9,7 +9,7 @@ namespace hgl { namespace graph { - class SceneDB; + class Database; /** * 矩形创建信息(扇形/三角形条) @@ -19,12 +19,12 @@ namespace hgl RectScope2f scope; };//struct RectangleCreateInfo - vulkan::Renderable *CreateRenderableRectangle(SceneDB *db,vulkan::Material *mtl,const RectangleCreateInfo *rci); + vulkan::Renderable *CreateRenderableRectangle(Database *db,vulkan::Material *mtl,const RectangleCreateInfo *rci); /** * 创建延迟渲染用全屏平面 */ - vulkan::Renderable *CreateRenderableGBufferComposition(SceneDB *db,vulkan::Material *mtl); + vulkan::Renderable *CreateRenderableGBufferComposition(Database *db,vulkan::Material *mtl); /** * 圆角矩形创建信息(扇形/线圈) @@ -35,7 +35,7 @@ namespace hgl uint32_t round_per; ///<圆角精度 };//struct RoundRectangleCreateInfo:public RectangleCreateInfo - vulkan::Renderable *CreateRenderableRoundRectangle(SceneDB *db,vulkan::Material *mtl,const RoundRectangleCreateInfo *rci); + vulkan::Renderable *CreateRenderableRoundRectangle(Database *db,vulkan::Material *mtl,const RoundRectangleCreateInfo *rci); /** * 圆形创建信息 @@ -50,7 +50,7 @@ namespace hgl /** * 创建一个2D圆形(扇形/线圈) */ - vulkan::Renderable *CreateRenderableCircle(SceneDB *db,vulkan::Material *mtl,const CircleCreateInfo *rci); + vulkan::Renderable *CreateRenderableCircle(Database *db,vulkan::Material *mtl,const CircleCreateInfo *rci); /** * 平面网格创建信息 @@ -69,7 +69,7 @@ namespace hgl /** * 创建一个平面网格(线条) */ - vulkan::Renderable *CreateRenderablePlaneGrid(SceneDB *db,vulkan::Material *mtl,const PlaneGridCreateInfo *pgci); + vulkan::Renderable *CreateRenderablePlaneGrid(Database *db,vulkan::Material *mtl,const PlaneGridCreateInfo *pgci); struct PlaneCreateInfo { @@ -86,7 +86,7 @@ namespace hgl /** * 创建一个平面(三角形) */ - vulkan::Renderable *CreateRenderablePlane(SceneDB *db,vulkan::Material *mtl,const PlaneCreateInfo *pci); + vulkan::Renderable *CreateRenderablePlane(Database *db,vulkan::Material *mtl,const PlaneCreateInfo *pci); struct CubeCreateInfo { @@ -126,17 +126,17 @@ namespace hgl /** * 创建一个立方体(三角形) */ - vulkan::Renderable *CreateRenderableCube(SceneDB *db,vulkan::Material *mtl,const CubeCreateInfo *cci); + vulkan::Renderable *CreateRenderableCube(Database *db,vulkan::Material *mtl,const CubeCreateInfo *cci); /** * 创建一个绑定盒(线条) */ - vulkan::Renderable *CreateRenderableBoundingBox(SceneDB *db,vulkan::Material *mtl,const CubeCreateInfo *cci); + vulkan::Renderable *CreateRenderableBoundingBox(Database *db,vulkan::Material *mtl,const CubeCreateInfo *cci); /** * 创建一个球心坐标为0,0,0,半径为1的球体(三角形) */ - vulkan::Renderable *CreateRenderableSphere(SceneDB *db,vulkan::Material *mtl,const uint numberSlices); + vulkan::Renderable *CreateRenderableSphere(Database *db,vulkan::Material *mtl,const uint numberSlices); struct DomeCreateInfo { @@ -147,7 +147,7 @@ namespace hgl /** * 创建一个穹顶(三角形) */ - vulkan::Renderable *CreateRenderableDome(SceneDB *db,vulkan::Material *mtl, const DomeCreateInfo *); + vulkan::Renderable *CreateRenderableDome(Database *db,vulkan::Material *mtl, const DomeCreateInfo *); struct TorusCreateInfo { @@ -161,7 +161,7 @@ namespace hgl /** * 创建一个圆环(三角形) */ - vulkan::Renderable *CreateRenderableTorus(SceneDB *db,vulkan::Material *mtl,const TorusCreateInfo *tci); + vulkan::Renderable *CreateRenderableTorus(Database *db,vulkan::Material *mtl,const TorusCreateInfo *tci); struct CylinderCreateInfo { @@ -173,7 +173,7 @@ namespace hgl /** * 创建一个圆柱(三角形) */ - vulkan::Renderable *CreateRenderableCylinder(SceneDB *db,vulkan::Material *mtl,const CylinderCreateInfo *cci); + vulkan::Renderable *CreateRenderableCylinder(Database *db,vulkan::Material *mtl,const CylinderCreateInfo *cci); struct ConeCreateInfo { @@ -186,7 +186,7 @@ namespace hgl /** * 创建一个圆锥(三角形) */ - vulkan::Renderable *CreateRenderableCone(SceneDB *db,vulkan::Material *mtl,const ConeCreateInfo *cci); + vulkan::Renderable *CreateRenderableCone(Database *db,vulkan::Material *mtl,const ConeCreateInfo *cci); struct AxisCreateInfo { @@ -226,7 +226,7 @@ namespace hgl /** * 创建一个坐标线(线条) */ - vulkan::Renderable *CreateRenderableAxis(SceneDB *db,vulkan::Material *mtl,const AxisCreateInfo *aci); + vulkan::Renderable *CreateRenderableAxis(Database *db,vulkan::Material *mtl,const AxisCreateInfo *aci); }//namespace graph };//namespace hgl #endif//HGL_GRAPH_INLINE_GEOMETRY_INCLUDE diff --git a/inc/hgl/graph/RenderableCreater.h b/inc/hgl/graph/RenderableCreater.h index c9a45056..7464915a 100644 --- a/inc/hgl/graph/RenderableCreater.h +++ b/inc/hgl/graph/RenderableCreater.h @@ -32,7 +32,7 @@ namespace hgl { protected: - vulkan::SceneDB *db; + vulkan::Database *db; vulkan::Material *mtl; const vulkan::VertexShaderModule *vsm; @@ -50,7 +50,7 @@ namespace hgl public: - RenderableCreater(vulkan::SceneDB *sdb,vulkan::Material *m); + RenderableCreater(vulkan::Database *sdb,vulkan::Material *m); virtual ~RenderableCreater()=default; virtual bool Init(const uint32 count); ///<初始化,参数为顶点数量 diff --git a/inc/hgl/graph/vulkan/VKDatabase.h b/inc/hgl/graph/vulkan/VKDatabase.h index d1680c17..d41db2e4 100644 --- a/inc/hgl/graph/vulkan/VKDatabase.h +++ b/inc/hgl/graph/vulkan/VKDatabase.h @@ -27,9 +27,9 @@ using TextureID =int; class VertexAttribData; /** - * 场景DB,用于管理场景内所需的所有数据 + * 资源管理,用于管理场景内所需的所有数据 */ -class SceneDB +class Database { Device *device; @@ -45,8 +45,8 @@ class SceneDB public: - SceneDB(Device *dev):device(dev){} - virtual ~SceneDB()=default; + Database(Device *dev):device(dev){} + virtual ~Database()=default; public: //Add @@ -102,6 +102,6 @@ public: //Get Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);} Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);} RenderableInstance *GetRenderableInstance (const RenderableInstanceID &id){return rm_renderable_instances.Get(id);} -};//class SceneDB +};//class Database VK_NAMESPACE_END #endif//HGL_GRAPH_VULKAN_DATABASE_INCLUDE diff --git a/src/RenderDevice/Vulkan/VKDatabase.cpp b/src/RenderDevice/Vulkan/VKDatabase.cpp index 96afc1e9..e81c4584 100644 --- a/src/RenderDevice/Vulkan/VKDatabase.cpp +++ b/src/RenderDevice/Vulkan/VKDatabase.cpp @@ -3,7 +3,7 @@ #include VK_NAMESPACE_BEGIN -VAB *SceneDB::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharingMode sharing_mode) +VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharingMode sharing_mode) { VAB *vb=device->CreateVAB(format,count,data,sharing_mode); @@ -15,7 +15,7 @@ VAB *SceneDB::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharin return vb; } -#define SCENE_DB_CREATE_BUFFER(name) Buffer *SceneDB::Create##name(VkDeviceSize size,void *data,VkSharingMode sharing_mode) \ +#define SCENE_DB_CREATE_BUFFER(name) Buffer *Database::Create##name(VkDeviceSize size,void *data,VkSharingMode sharing_mode) \ { \ Buffer *buf=device->Create##name(size,data,sharing_mode); \ \ @@ -24,7 +24,7 @@ VAB *SceneDB::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharin return(buf); \ } \ \ - Buffer *SceneDB::Create##name(VkDeviceSize size,VkSharingMode sharing_mode) \ + Buffer *Database::Create##name(VkDeviceSize size,VkSharingMode sharing_mode) \ { \ Buffer *buf=device->Create##name(size,sharing_mode); \ \ @@ -39,7 +39,7 @@ VAB *SceneDB::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharin #undef SCENE_DB_CREATE_BUFFER -IndexBuffer *SceneDB::CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode) +IndexBuffer *Database::CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode) { IndexBuffer *buf=device->CreateIBO(index_type,count,data,sharing_mode); @@ -48,7 +48,7 @@ IndexBuffer *SceneDB::CreateIBO(VkIndexType index_type,uint32_t count,const void return(buf); } -MaterialInstance *SceneDB::CreateMaterialInstance(Material *mtl) +MaterialInstance *Database::CreateMaterialInstance(Material *mtl) { if(!mtl)return(nullptr); @@ -60,7 +60,7 @@ MaterialInstance *SceneDB::CreateMaterialInstance(Material *mtl) return mi; } -Renderable *SceneDB::CreateRenderable(Material *mtl,const uint32_t vertex_count) +Renderable *Database::CreateRenderable(Material *mtl,const uint32_t vertex_count) { if(!mtl)return(nullptr); @@ -72,7 +72,7 @@ Renderable *SceneDB::CreateRenderable(Material *mtl,const uint32_t vertex_count) return ro; } -TextRenderable *SceneDB::CreateTextRenderable(Material *mtl) +TextRenderable *Database::CreateTextRenderable(Material *mtl) { if(!mtl)return(nullptr); @@ -84,7 +84,7 @@ TextRenderable *SceneDB::CreateTextRenderable(Material *mtl) return tr; } -RenderableInstance *SceneDB::CreateRenderableInstance(Pipeline *p,MaterialInstance *mi,Renderable *r) +RenderableInstance *Database::CreateRenderableInstance(Pipeline *p,MaterialInstance *mi,Renderable *r) { if(!p||!mi||!r) return(nullptr); @@ -97,7 +97,7 @@ RenderableInstance *SceneDB::CreateRenderableInstance(Pipeline *p,MaterialInstan return ri; } -Sampler *SceneDB::CreateSampler(VkSamplerCreateInfo *sci) +Sampler *Database::CreateSampler(VkSamplerCreateInfo *sci) { Sampler *s=device->CreateSampler(sci); diff --git a/src/SceneGraph/InlineGeometry.cpp b/src/SceneGraph/InlineGeometry.cpp index 4683b700..c634593d 100644 --- a/src/SceneGraph/InlineGeometry.cpp +++ b/src/SceneGraph/InlineGeometry.cpp @@ -12,7 +12,7 @@ namespace hgl { namespace graph { - vulkan::Renderable *CreateRenderableRectangle(vulkan::SceneDB *db,vulkan::Material *mtl,const RectangleCreateInfo *rci) + vulkan::Renderable *CreateRenderableRectangle(vulkan::Database *db,vulkan::Material *mtl,const RectangleCreateInfo *rci) { RenderableCreater rc(db,mtl); @@ -29,7 +29,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderableGBufferComposition(vulkan::SceneDB *db,vulkan::Material *mtl) + vulkan::Renderable *CreateRenderableGBufferComposition(vulkan::Database *db,vulkan::Material *mtl) { RectangleCreateInfo rci; @@ -38,7 +38,7 @@ namespace hgl return CreateRenderableRectangle(db,mtl,&rci); } - vulkan::Renderable *CreateRenderableRoundRectangle(vulkan::SceneDB *db,vulkan::Material *mtl,const RoundRectangleCreateInfo *rci) + vulkan::Renderable *CreateRenderableRoundRectangle(vulkan::Database *db,vulkan::Material *mtl,const RoundRectangleCreateInfo *rci) { RenderableCreater rc(db,mtl); @@ -112,7 +112,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderableCircle(vulkan::SceneDB *db,vulkan::Material *mtl,const CircleCreateInfo *cci) + vulkan::Renderable *CreateRenderableCircle(vulkan::Database *db,vulkan::Material *mtl,const CircleCreateInfo *cci) { RenderableCreater rc(db,mtl); @@ -137,7 +137,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderablePlaneGrid(vulkan::SceneDB *db,vulkan::Material *mtl,const PlaneGridCreateInfo *pgci) + vulkan::Renderable *CreateRenderablePlaneGrid(vulkan::Database *db,vulkan::Material *mtl,const PlaneGridCreateInfo *pgci) { RenderableCreater rc(db,mtl); @@ -184,7 +184,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderablePlane(vulkan::SceneDB *db,vulkan::Material *mtl,const PlaneCreateInfo *pci) + vulkan::Renderable *CreateRenderablePlane(vulkan::Database *db,vulkan::Material *mtl,const PlaneCreateInfo *pci) { const float xy_vertices [] = { -0.5f,-0.5f,0.0f, +0.5f,-0.5f,0.0f, +0.5f,+0.5f,0.0f, -0.5f,+0.5f,0.0f }; float xy_tex_coord[] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f }; @@ -225,7 +225,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderableCube(vulkan::SceneDB *db,vulkan::Material *mtl,const CubeCreateInfo *cci) + vulkan::Renderable *CreateRenderableCube(vulkan::Database *db,vulkan::Material *mtl,const CubeCreateInfo *cci) { // Points of a cube. /* 4 5 */ const float points[]={ -0.5f, -0.5f, -0.5f, -0.5f, -0.5f, +0.5f, +0.5f, -0.5f, +0.5f, +0.5f, -0.5f, -0.5f, -0.5f, +0.5f, -0.5f, -0.5f, +0.5f, +0.5f, /* *------------* */ +0.5f, +0.5f, +0.5f, +0.5f, +0.5f, -0.5f, -0.5f, -0.5f, -0.5f, -0.5f, +0.5f, -0.5f, +0.5f, +0.5f, -0.5f, +0.5f, -0.5f, -0.5f, @@ -396,7 +396,7 @@ namespace hgl * @param numberSlices 切片数 * @return 可渲染数据 */ - vulkan::Renderable *CreateRenderableSphere(vulkan::SceneDB *db,vulkan::Material *mtl,const uint numberSlices) + vulkan::Renderable *CreateRenderableSphere(vulkan::Database *db,vulkan::Material *mtl,const uint numberSlices) { RenderableCreater rc(db,mtl); @@ -472,7 +472,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderableDome(vulkan::SceneDB *db,vulkan::Material *mtl,const DomeCreateInfo *dci) + vulkan::Renderable *CreateRenderableDome(vulkan::Database *db,vulkan::Material *mtl,const DomeCreateInfo *dci) { RenderableCreater rc(db,mtl); @@ -591,7 +591,7 @@ namespace hgl } }//namespace - vulkan::Renderable *CreateRenderableTorus(vulkan::SceneDB *db,vulkan::Material *mtl,const TorusCreateInfo *tci) + vulkan::Renderable *CreateRenderableTorus(vulkan::Database *db,vulkan::Material *mtl,const TorusCreateInfo *tci) { RenderableCreater rc(db,mtl); @@ -747,7 +747,7 @@ namespace hgl } }//namespace - vulkan::Renderable *CreateRenderableCylinder(vulkan::SceneDB *db,vulkan::Material *mtl,const CylinderCreateInfo *cci) + vulkan::Renderable *CreateRenderableCylinder(vulkan::Database *db,vulkan::Material *mtl,const CylinderCreateInfo *cci) { uint numberIndices = cci->numberSlices * 3 * 2 + cci->numberSlices * 6; @@ -966,7 +966,7 @@ namespace hgl } }//namespace - vulkan::Renderable *CreateRenderableCone(vulkan::SceneDB *db,vulkan::Material *mtl,const ConeCreateInfo *cci) + vulkan::Renderable *CreateRenderableCone(vulkan::Database *db,vulkan::Material *mtl,const ConeCreateInfo *cci) { RenderableCreater rc(db,mtl); @@ -1093,7 +1093,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderableAxis(vulkan::SceneDB *db,vulkan::Material *mtl,const AxisCreateInfo *aci) + vulkan::Renderable *CreateRenderableAxis(vulkan::Database *db,vulkan::Material *mtl,const AxisCreateInfo *aci) { RenderableCreater rc(db,mtl); @@ -1118,7 +1118,7 @@ namespace hgl return rc.Finish(); } - vulkan::Renderable *CreateRenderableBoundingBox(vulkan::SceneDB *db,vulkan::Material *mtl,const CubeCreateInfo *cci) + vulkan::Renderable *CreateRenderableBoundingBox(vulkan::Database *db,vulkan::Material *mtl,const CubeCreateInfo *cci) { // Points of a cube. /* 4 5 */ const float points[]={ -0.5,-0.5, 0.5, 0.5,-0.5,0.5, 0.5,-0.5,-0.5, -0.5,-0.5,-0.5, diff --git a/src/SceneGraph/RenderableCreater.cpp b/src/SceneGraph/RenderableCreater.cpp index dee895b6..8cdbb1db 100644 --- a/src/SceneGraph/RenderableCreater.cpp +++ b/src/SceneGraph/RenderableCreater.cpp @@ -5,7 +5,7 @@ namespace hgl { namespace graph { - RenderableCreater::RenderableCreater(vulkan::SceneDB *sdb,vulkan::Material *m) + RenderableCreater::RenderableCreater(vulkan::Database *sdb,vulkan::Material *m) { db =sdb; mtl =m;