diff --git a/CMSceneGraph b/CMSceneGraph index ecbb0682..1bf41ad6 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit ecbb0682a2c5b33348431d44e64b3a4b775829ee +Subproject commit 1bf41ad683d9fdfc092dee259567ac8054199bc6 diff --git a/example/2dVector/line.cpp b/example/2dVector/line.cpp index 9d242a9f..04fabf81 100644 --- a/example/2dVector/line.cpp +++ b/example/2dVector/line.cpp @@ -113,7 +113,7 @@ private: bool InitVBO() { - Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); + Primitive *render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/2dVector/roundbox.cpp b/example/2dVector/roundbox.cpp index 3103229a..4ca8a429 100644 --- a/example/2dVector/roundbox.cpp +++ b/example/2dVector/roundbox.cpp @@ -129,7 +129,7 @@ private: bool InitVBO() { - Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); + Primitive *render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_V4I16,VERTEX_COUNT,position_data)))return(false); diff --git a/example/Vulkan/Atmosphere.cpp b/example/Vulkan/Atmosphere.cpp index c3727f4b..8533eaac 100644 --- a/example/Vulkan/Atmosphere.cpp +++ b/example/Vulkan/Atmosphere.cpp @@ -43,7 +43,7 @@ private: GPUBuffer * ubo_atomsphere =nullptr; AtmosphereData atomsphere_data; - Renderable * ro_sphere =nullptr; + Primitive * ro_sphere =nullptr; private: diff --git a/example/Vulkan/Cubemap.cpp b/example/Vulkan/Cubemap.cpp index 1ed04756..153c7354 100644 --- a/example/Vulkan/Cubemap.cpp +++ b/example/Vulkan/Cubemap.cpp @@ -41,9 +41,9 @@ private: Sampler * sampler =nullptr; TextureCube * texture =nullptr; - Renderable * ro_axis =nullptr; - Renderable * ro_cube =nullptr; - Renderable * ro_sphere =nullptr; + Primitive * ro_axis =nullptr; + Primitive * ro_cube =nullptr; + Primitive * ro_sphere =nullptr; private: @@ -148,7 +148,7 @@ private: return(true); } - SceneNode *Add(Renderable *r,MaterialInstance *mi,Pipeline *pl) + SceneNode *Add(Primitive *r,MaterialInstance *mi,Pipeline *pl) { auto ri=db->CreateRenderableInstance(r,mi,pl); diff --git a/example/Vulkan/DeferredRender.cpp b/example/Vulkan/DeferredRender.cpp index 40dc1703..be0d700e 100644 --- a/example/Vulkan/DeferredRender.cpp +++ b/example/Vulkan/DeferredRender.cpp @@ -80,7 +80,7 @@ private: SubpassParam sp_gbuffer; SubpassParam sp_composition; - Renderable *ro_plane, + Primitive *ro_plane, *ro_cube, *ro_sphere, *ro_torus, diff --git a/example/Vulkan/DrawText.cpp b/example/Vulkan/DrawText.cpp index 73a313b0..fccfd566 100644 --- a/example/Vulkan/DrawText.cpp +++ b/example/Vulkan/DrawText.cpp @@ -14,7 +14,7 @@ private: TextRender * text_render =nullptr; - TextRenderable * text_render_obj =nullptr; + TextPrimitive * text_render_obj =nullptr; RenderableInstance *render_instance =nullptr; public: @@ -40,7 +40,7 @@ private: if(!text_render) return(false); - text_render_obj=text_render->CreateRenderable(str); + text_render_obj=text_render->CreatePrimitive(str); if(!text_render_obj) return(false); diff --git a/example/Vulkan/DrawTile.cpp b/example/Vulkan/DrawTile.cpp index 8081db51..12c3c4d3 100644 --- a/example/Vulkan/DrawTile.cpp +++ b/example/Vulkan/DrawTile.cpp @@ -40,7 +40,7 @@ private: Sampler * sampler =nullptr; MaterialInstance * material_instance =nullptr; - Renderable * render_obj =nullptr; + Primitive * render_obj =nullptr; RenderableInstance *render_instance =nullptr; Pipeline * pipeline =nullptr; @@ -174,7 +174,7 @@ private: { const uint tile_count=tile_list.GetCount(); - render_obj=db->CreateRenderable(tile_count); + render_obj=db->CreatePrimitive(tile_count); if(!render_obj)return(false); render_obj->Set(VAN::Position,db->CreateVBO(VF_V4F,tile_count,position_data)); diff --git a/example/Vulkan/EquirectangularMap.cpp b/example/Vulkan/EquirectangularMap.cpp index 4ebcf6db..493e5149 100644 --- a/example/Vulkan/EquirectangularMap.cpp +++ b/example/Vulkan/EquirectangularMap.cpp @@ -32,7 +32,7 @@ private: Sampler * sampler =nullptr; Texture2D * texture =nullptr; - Renderable * ro_sphere =nullptr; + Primitive * ro_sphere =nullptr; private: @@ -74,7 +74,7 @@ private: return(true); } - SceneNode *Add(Renderable *r,MaterialInstance *mi,Pipeline *pl) + SceneNode *Add(Primitive *r,MaterialInstance *mi,Pipeline *pl) { auto ri=db->CreateRenderableInstance(r,mi,pl); diff --git a/example/Vulkan/FragCoordTest.cpp b/example/Vulkan/FragCoordTest.cpp index 341167df..eead223d 100644 --- a/example/Vulkan/FragCoordTest.cpp +++ b/example/Vulkan/FragCoordTest.cpp @@ -47,7 +47,7 @@ private: bool InitVBO() { - auto render_obj=db->CreateRenderable(VERTEX_COUNT); + auto render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position,db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/Vulkan/FullScreenTriangle.cpp b/example/Vulkan/FullScreenTriangle.cpp index 1b20531a..bbdde4ea 100644 --- a/example/Vulkan/FullScreenTriangle.cpp +++ b/example/Vulkan/FullScreenTriangle.cpp @@ -35,7 +35,7 @@ private: bool InitVBO() { - auto render_obj=db->CreateRenderable(3); + auto render_obj=db->CreatePrimitive(3); if(!render_obj)return(false); renderable_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); diff --git a/example/Vulkan/Geometry3D.cpp b/example/Vulkan/Geometry3D.cpp index 4cbe187f..7b8bc122 100644 --- a/example/Vulkan/Geometry3D.cpp +++ b/example/Vulkan/Geometry3D.cpp @@ -28,7 +28,7 @@ private: MaterialInstance * material_instance =nullptr; Pipeline * pipeline =nullptr; - Renderable * ro_plane_grid[3]; + Primitive * ro_plane_grid[3]; private: @@ -47,7 +47,7 @@ private: return(true); } - RenderableInstance *Add(Renderable *r,const Matrix4f &mat) + RenderableInstance *Add(Primitive *r,const Matrix4f &mat) { RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); diff --git a/example/Vulkan/InlineGeometryScene.cpp b/example/Vulkan/InlineGeometryScene.cpp index 94fa31e7..af6beb8c 100644 --- a/example/Vulkan/InlineGeometryScene.cpp +++ b/example/Vulkan/InlineGeometryScene.cpp @@ -59,7 +59,7 @@ private: Texture2D * normal =nullptr; }texture; - Renderable *ro_axis, + Primitive *ro_axis, *ro_cube, *ro_sphere, *ro_torus, @@ -230,14 +230,14 @@ private: return(true); } - void Add(Renderable *r,Pipeline *pl) + void Add(Primitive *r,Pipeline *pl) { auto ri=db->CreateRenderableInstance(r,material_instance,pl); render_root.CreateSubNode(ri); } - void Add(Renderable *r,Pipeline *pl,const Matrix4f &mat) + void Add(Primitive *r,Pipeline *pl,const Matrix4f &mat) { auto ri=db->CreateRenderableInstance(r,material_instance,pl); diff --git a/example/Vulkan/InstanceTriangle.cpp b/example/Vulkan/InstanceTriangle.cpp index 6a33693e..f631aa9f 100644 --- a/example/Vulkan/InstanceTriangle.cpp +++ b/example/Vulkan/InstanceTriangle.cpp @@ -53,7 +53,7 @@ private: bool InitVBO() { - Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); + Primitive *render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/Vulkan/LoadStaticMesh.cpp b/example/Vulkan/LoadStaticMesh.cpp index 2d18d8b3..eb06eaa7 100644 --- a/example/Vulkan/LoadStaticMesh.cpp +++ b/example/Vulkan/LoadStaticMesh.cpp @@ -23,13 +23,13 @@ using namespace hgl::graph; constexpr uint32_t SCREEN_WIDTH=1280; constexpr uint32_t SCREEN_HEIGHT=720; -vulkan::Renderable *CreateMeshRenderable(Database *db,vulkan::Material *mtl,const MeshData *mesh) +vulkan::Primitive *CreateMeshRenderable(Database *db,vulkan::Material *mtl,const MeshData *mesh) { const vulkan::VertexShaderModule *vsm=mtl->GetVertexShaderModule(); uint draw_count=mesh->indices_count; - vulkan::Renderable *render_obj=nullptr; + vulkan::Primitive *render_obj=nullptr; { const int vertex_binding=vsm->GetStageInputBinding("Vertex"); @@ -109,13 +109,13 @@ private: ModelData *model_data; - vulkan::Renderable **mesh_renderable; + vulkan::Primitive **mesh_renderable; RenderableInstance **mesh_renderable_instance; - vulkan::Renderable *axis_renderable; + vulkan::Primitive *axis_renderable; RenderableInstance *axis_renderable_instance; - vulkan::Renderable *bbox_renderable; + vulkan::Primitive *bbox_renderable; RenderableInstance *bbox_renderable_instance; private: @@ -163,7 +163,7 @@ private: return(true); } - RenderableInstance *CreateRenderableInstance(const MP &mp,vulkan::Renderable *r) + RenderableInstance *CreateRenderableInstance(const MP &mp,vulkan::Primitive *r) { return db->CreateRenderableInstance(mp.pipeline,mp.material_instance,r); } @@ -173,7 +173,7 @@ private: const uint count=model_data->mesh_list.GetCount(); MeshData **md=model_data->mesh_list.GetData(); - mesh_renderable =new vulkan::Renderable *[count]; + mesh_renderable =new vulkan::Primitive *[count]; mesh_renderable_instance=new RenderableInstance *[count]; for(uint i=0;iGetVAB(),&cci); + Primitive *render_obj=CreateRenderableCircle(db,os.material_instance->GetVAB(),&cci); if(!render_obj)return(false); os.renderable_instance=db->CreateRenderableInstance(render_obj,os.material_instance,os.pipeline); @@ -141,7 +141,7 @@ public: cci.tex_coord=true; - Renderable *render_obj=CreateRenderableCube(db,cube.material_instance->GetVAB(),&cci); + Primitive *render_obj=CreateRenderableCube(db,cube.material_instance->GetVAB(),&cci); if(!render_obj)return(false); cube.renderable_instance=db->CreateRenderableInstance(render_obj,cube.material_instance,cube.pipeline); diff --git a/example/Vulkan/RayPicking.cpp b/example/Vulkan/RayPicking.cpp index 17391420..fa39a95e 100644 --- a/example/Vulkan/RayPicking.cpp +++ b/example/Vulkan/RayPicking.cpp @@ -42,9 +42,9 @@ private: MaterialInstance * material_instance =nullptr; Pipeline * pipeline =nullptr; - Renderable * ro_plane_grid =nullptr; + Primitive * ro_plane_grid =nullptr; - Renderable * ro_line =nullptr; + Primitive * ro_line =nullptr; VBO * vbo_pos =nullptr; @@ -67,7 +67,7 @@ private: return(true); } - RenderableInstance *Add(Renderable *r,const Matrix4f &mat) + RenderableInstance *Add(Primitive *r,const Matrix4f &mat) { RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); @@ -101,7 +101,7 @@ private: } { - ro_line=db->CreateRenderable(2); + ro_line=db->CreatePrimitive(2); if(!ro_line)return(false); if(!ro_line->Set(VAN::Position, vbo_pos=db->CreateVBO(VF_V3F,2,position_data)))return(false); diff --git a/example/Vulkan/RectanglePrimitive.cpp b/example/Vulkan/RectanglePrimitive.cpp index ac246f5b..85707997 100644 --- a/example/Vulkan/RectanglePrimitive.cpp +++ b/example/Vulkan/RectanglePrimitive.cpp @@ -37,7 +37,7 @@ private: Texture2D * texture =nullptr; Sampler * sampler =nullptr; MaterialInstance * material_instance =nullptr; - Renderable * render_obj =nullptr; + Primitive * render_obj =nullptr; RenderableInstance *render_instance =nullptr; Pipeline * pipeline =nullptr; @@ -66,7 +66,7 @@ private: bool InitVBO() { - render_obj=db->CreateRenderable(VERTEX_COUNT); + render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); diff --git a/example/Vulkan/SceneTree.cpp b/example/Vulkan/SceneTree.cpp index ca93f5f7..609f6235 100644 --- a/example/Vulkan/SceneTree.cpp +++ b/example/Vulkan/SceneTree.cpp @@ -36,7 +36,7 @@ private: GPUBuffer * ubo_color =nullptr; GPUBuffer * ubo_sun =nullptr; - Renderable * renderable_object =nullptr; + Primitive * renderable_object =nullptr; Pipeline * pipeline =nullptr; diff --git a/example/Vulkan/SkyColor.cpp b/example/Vulkan/SkyColor.cpp index 379cfc68..1e7532df 100644 --- a/example/Vulkan/SkyColor.cpp +++ b/example/Vulkan/SkyColor.cpp @@ -34,7 +34,7 @@ private: GPUBuffer * ubo_sky_color =nullptr; - Renderable * ro_skyphere =nullptr; + Primitive * ro_skyphere =nullptr; private: @@ -77,7 +77,7 @@ private: return(true); } - RenderableInstance *Add(Renderable *r,const Matrix4f &mat) + RenderableInstance *Add(Primitive *r,const Matrix4f &mat) { RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); diff --git a/example/Vulkan/TerrainSimple.cpp b/example/Vulkan/TerrainSimple.cpp index 3e18e29b..debad8b4 100644 --- a/example/Vulkan/TerrainSimple.cpp +++ b/example/Vulkan/TerrainSimple.cpp @@ -28,7 +28,7 @@ constexpr uint32_t SCREEN_HEIGHT=720; /** * 创建一个地形网格 */ - Renderable *CreateRenderableTerrain(RenderResource *db,const VAB *vab,const TerrainCreateInfo *tci) + Primitive *CreateRenderableTerrain(RenderResource *db,const VAB *vab,const TerrainCreateInfo *tci) { } @@ -47,7 +47,7 @@ private: MaterialInstance * material_instance =nullptr; Pipeline * pipeline =nullptr; - Renderable * renderable =nullptr; + Primitive * renderable =nullptr; private: @@ -66,7 +66,7 @@ private: return(true); } - RenderableInstance *Add(Renderable *r,const Matrix4f &mat) + RenderableInstance *Add(Primitive *r,const Matrix4f &mat) { RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); diff --git a/example/Vulkan/first_triangle.cpp b/example/Vulkan/first_triangle.cpp index cad68df5..508503ce 100644 --- a/example/Vulkan/first_triangle.cpp +++ b/example/Vulkan/first_triangle.cpp @@ -53,7 +53,7 @@ private: bool InitVBO() { - Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); + Primitive *render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/Vulkan/indices_rect.cpp b/example/Vulkan/indices_rect.cpp index f41ec7bf..ec4288ea 100644 --- a/example/Vulkan/indices_rect.cpp +++ b/example/Vulkan/indices_rect.cpp @@ -56,7 +56,7 @@ private: bool InitVBO() { - auto render_obj=db->CreateRenderable(VERTEX_COUNT); + auto render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position,db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/Vulkan/second_triangle.cpp b/example/Vulkan/second_triangle.cpp index 116b35ed..d8fa67ee 100644 --- a/example/Vulkan/second_triangle.cpp +++ b/example/Vulkan/second_triangle.cpp @@ -55,7 +55,7 @@ private: bool InitVBO() { - Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); + Primitive *render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/Vulkan/texture_rect.cpp b/example/Vulkan/texture_rect.cpp index 86c1af20..6785be9b 100644 --- a/example/Vulkan/texture_rect.cpp +++ b/example/Vulkan/texture_rect.cpp @@ -80,7 +80,7 @@ private: bool InitVBO() { - auto render_obj=db->CreateRenderable(VERTEX_COUNT); + auto render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position,db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/Vulkan/third_triangle.cpp b/example/Vulkan/third_triangle.cpp index 5ded7b28..6b179497 100644 --- a/example/Vulkan/third_triangle.cpp +++ b/example/Vulkan/third_triangle.cpp @@ -57,7 +57,7 @@ private: bool InitVBO() { - Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); + Primitive *render_obj=db->CreatePrimitive(VERTEX_COUNT); if(!render_obj)return(false); if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index f49a340d..9461186b 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/inc/hgl/graph/InlineGeometry.h b/inc/hgl/graph/InlineGeometry.h index 6293e254..11b9c5c9 100644 --- a/inc/hgl/graph/InlineGeometry.h +++ b/inc/hgl/graph/InlineGeometry.h @@ -18,12 +18,12 @@ namespace hgl RectScope2f scope; };//struct RectangleCreateInfo - Renderable *CreateRenderableRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci); + Primitive *CreateRenderableRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci); /** * 鍒涘缓寤惰繜娓叉煋鐢ㄥ叏灞忓钩闈 */ - Renderable *CreateRenderableGBufferComposition(RenderResource *db,const VAB *vab); + Primitive *CreateRenderableGBufferComposition(RenderResource *db,const VAB *vab); /** * 鍦嗚鐭╁舰鍒涘缓淇℃伅(鎵囧舰/绾垮湀) @@ -34,7 +34,7 @@ namespace hgl uint32_t round_per; ///<鍦嗚绮惧害 };//struct RoundRectangleCreateInfo:public RectangleCreateInfo - Renderable *CreateRenderableRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci); + Primitive *CreateRenderableRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci); /** * 鍦嗗舰鍒涘缓淇℃伅 @@ -54,7 +54,7 @@ namespace hgl /** * 鍒涘缓涓涓2D鍦嗗舰(鎵囧舰/绾垮湀) */ - Renderable *CreateRenderableCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci); + Primitive *CreateRenderableCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci); /** * 骞抽潰缃戞牸鍒涘缓淇℃伅 @@ -73,7 +73,7 @@ namespace hgl /** * 鍒涘缓涓涓钩闈㈢綉鏍(绾挎潯) */ - Renderable *CreateRenderablePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci); + Primitive *CreateRenderablePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci); struct PlaneCreateInfo { @@ -91,7 +91,7 @@ namespace hgl /** * 鍒涘缓涓涓钩闈(涓夎褰) */ - Renderable *CreateRenderablePlane(RenderResource *db,const VAB *vab,const PlaneCreateInfo *pci); + Primitive *CreateRenderablePlane(RenderResource *db,const VAB *vab,const PlaneCreateInfo *pci); struct CubeCreateInfo { @@ -127,7 +127,7 @@ namespace hgl /** * 鍒涘缓涓涓珛鏂逛綋(涓夎褰) */ - Renderable *CreateRenderableCube(RenderResource *db,const VAB *vab,const CubeCreateInfo *cci); + Primitive *CreateRenderableCube(RenderResource *db,const VAB *vab,const CubeCreateInfo *cci); struct BoundingBoxCreateInfo { @@ -158,17 +158,17 @@ namespace hgl /** * 鍒涘缓涓涓粦瀹氱洅(绾挎潯) */ - Renderable *CreateRenderableBoundingBox(RenderResource *db,const VAB *vab,const BoundingBoxCreateInfo *cci); + Primitive *CreateRenderableBoundingBox(RenderResource *db,const VAB *vab,const BoundingBoxCreateInfo *cci); /** * 鍒涘缓涓涓悆蹇冨潗鏍囦负0,0,0锛屽崐寰勪负1鐨勭悆浣(涓夎褰) */ - Renderable *CreateRenderableSphere(RenderResource *db,const VAB *vab,const uint numberSlices); + Primitive *CreateRenderableSphere(RenderResource *db,const VAB *vab,const uint numberSlices); /** * 鍒涘缓涓涓┕椤(涓夎褰) */ - Renderable *CreateRenderableDome(RenderResource *db,const VAB *vab, const uint numberSlices); + Primitive *CreateRenderableDome(RenderResource *db,const VAB *vab, const uint numberSlices); struct TorusCreateInfo { @@ -184,7 +184,7 @@ namespace hgl /** * 鍒涘缓涓涓渾鐜(涓夎褰) */ - Renderable *CreateRenderableTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci); + Primitive *CreateRenderableTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci); struct CylinderCreateInfo { @@ -196,7 +196,7 @@ namespace hgl /** * 鍒涘缓涓涓渾鏌(涓夎褰) */ - Renderable *CreateRenderableCylinder(RenderResource *db,const VAB *vab,const CylinderCreateInfo *cci); + Primitive *CreateRenderableCylinder(RenderResource *db,const VAB *vab,const CylinderCreateInfo *cci); struct ConeCreateInfo { @@ -209,7 +209,7 @@ namespace hgl /** * 鍒涘缓涓涓渾閿(涓夎褰) */ - Renderable *CreateRenderableCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci); + Primitive *CreateRenderableCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci); struct AxisCreateInfo { @@ -230,7 +230,7 @@ namespace hgl /** * 鍒涘缓涓涓潗鏍囩嚎(绾挎潯) */ - Renderable *CreateRenderableAxis(RenderResource *db,const VAB *vab,const AxisCreateInfo *aci); + Primitive *CreateRenderableAxis(RenderResource *db,const VAB *vab,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 665846fd..f1a7a7ff 100644 --- a/inc/hgl/graph/RenderableCreater.h +++ b/inc/hgl/graph/RenderableCreater.h @@ -78,7 +78,7 @@ namespace hgl uint16 * CreateIBO16(uint count,const uint16 *data=nullptr); ///<鍒涘缓16浣嶇殑绱㈠紩缂撳啿鍖 uint32 * CreateIBO32(uint count,const uint32 *data=nullptr); ///<鍒涘缓32浣嶇殑绱㈠紩缂撳啿鍖 - virtual Renderable * Finish(); ///<缁撴潫骞跺垱寤哄彲娓叉煋瀵硅薄 + virtual Primitive * Finish(); ///<缁撴潫骞跺垱寤哄彲娓叉煋瀵硅薄 };//class RenderableCreater }//namespace graph }//namespace hgl diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index e4146684..e054fd5d 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include @@ -78,9 +78,9 @@ enum class DescriptorSetsType Material, ///<鏉愯川涓案杩滀笉鍙樼殑鍙傛暟 // Texture, ///<鏉愯川涓殑绾圭悊鍙傛暟 Value, ///<鏉愯川涓殑鍙橀噺鍙傛暟 - Renderable, ///<娓叉煋瀹炰緥鍙傛暟(濡侺ocal2World matrix) + Primitive, ///<娓叉煋瀹炰緥鍙傛暟(濡侺ocal2World matrix) - ENUM_CLASS_RANGE(Global,Renderable) + ENUM_CLASS_RANGE(Global,Primitive) };// const DescriptorSetsType CheckDescriptorSetsType(const char *str); @@ -130,7 +130,7 @@ using VABConfigInfo=Map; class VertexAttributeBinding; using VAB=VertexAttributeBinding; -class Renderable; +class Primitive; class RenderableInstance; class RenderResource; diff --git a/inc/hgl/graph/VKMaterial.h b/inc/hgl/graph/VKMaterial.h index 4d04e78e..532e9c6e 100644 --- a/inc/hgl/graph/VKMaterial.h +++ b/inc/hgl/graph/VKMaterial.h @@ -67,7 +67,7 @@ public: MaterialParameters * GetMP (const DescriptorSetsType &type) { if(type==DescriptorSetsType::Material )return data->mp.m;else - if(type==DescriptorSetsType::Renderable )return data->mp.r;else + if(type==DescriptorSetsType::Primitive )return data->mp.r;else if(type==DescriptorSetsType::Global )return data->mp.g;else return(nullptr); } diff --git a/inc/hgl/graph/VKMaterialParameters.h b/inc/hgl/graph/VKMaterialParameters.h index 38ae0753..92a7a2c4 100644 --- a/inc/hgl/graph/VKMaterialParameters.h +++ b/inc/hgl/graph/VKMaterialParameters.h @@ -34,7 +34,7 @@ public: MP_TYPE_IS(Material) // MP_TYPE_IS(Texture) MP_TYPE_IS(Value) - MP_TYPE_IS(Renderable) + MP_TYPE_IS(Primitive) MP_TYPE_IS(Global) #undef MP_TYPE_IS diff --git a/inc/hgl/graph/VKRenderResource.h b/inc/hgl/graph/VKRenderResource.h index 17190f7b..08b9a2af 100644 --- a/inc/hgl/graph/VKRenderResource.h +++ b/inc/hgl/graph/VKRenderResource.h @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include @@ -12,14 +12,14 @@ #include #include #include -#include +#include #include VK_NAMESPACE_BEGIN using MaterialID =int; using MaterialInstanceID =int; using BufferID =int; using DescriptorSetsID =int; -using RenderableID =int; +using PrimitiveID =int; using RenderableInstanceID =int; using SamplerID =int; using TextureID =int; @@ -40,7 +40,7 @@ class RenderResource IDResManage rm_material; ///<鏉愯川鍚堥泦 IDResManage rm_material_instance; ///<鏉愯川瀹炰緥鍚堥泦 IDResManage rm_desc_sets; ///<鎻忚堪绗﹀悎闆 - IDResManage rm_renderables; ///<鍙覆鏌撳璞″悎闆 + IDResManage rm_primitives; ///<鍥惧厓鍚堥泦 IDResManage rm_buffers; ///<椤剁偣缂撳啿鍖哄悎闆 IDResManage rm_samplers; ///<閲囨牱鍣ㄥ悎闆 IDResManage rm_textures; ///<绾圭悊鍚堥泦 @@ -56,7 +56,7 @@ public: //Add MaterialID Add(Material * mtl ){return rm_material.Add(mtl);} MaterialInstanceID Add(MaterialInstance * mi ){return rm_material_instance.Add(mi);} DescriptorSetsID Add(DescriptorSets * ds ){return rm_desc_sets.Add(ds);} - RenderableID Add(Renderable * r ){return rm_renderables.Add(r);} + PrimitiveID Add(Primitive * p ){return rm_primitives.Add(p);} BufferID Add(GPUBuffer * buf ){return rm_buffers.Add(buf);} SamplerID Add(Sampler * s ){return rm_samplers.Add(s);} TextureID Add(Texture * t ){return rm_textures.Add(t);} @@ -93,9 +93,9 @@ public: //Material MaterialInstance * CreateMaterialInstance(Material *,const VABConfigInfo *vab_cfg=nullptr); MaterialInstance * CreateMaterialInstance(const OSString &,const VABConfigInfo *vab_cfg=nullptr); - Renderable * CreateRenderable(const uint32_t vertex_count=0); + Primitive * CreatePrimitive(const uint32_t vertex_count=0); - RenderableInstance *CreateRenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p); + RenderableInstance *CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p); Sampler * CreateSampler(VkSamplerCreateInfo *sci=nullptr); Sampler * CreateSampler(Texture *); @@ -110,7 +110,7 @@ public: //Get Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);} MaterialInstance * GetMaterialInstance (const MaterialInstanceID &id){return rm_material_instance.Get(id);} DescriptorSets * GetDescSets (const DescriptorSetsID &id){return rm_desc_sets.Get(id);} - Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);} + Primitive * GetRenderable (const PrimitiveID &id){return rm_primitives.Get(id);} GPUBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);} Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);} Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);} diff --git a/inc/hgl/graph/VKRenderable.h b/inc/hgl/graph/VKRenderable.h deleted file mode 100644 index 297c2dc4..00000000 --- a/inc/hgl/graph/VKRenderable.h +++ /dev/null @@ -1,89 +0,0 @@ -锘#ifndef HGL_GRAPH_VULKAN_RENDERABLE_INCLUDE -#define HGL_GRAPH_VULKAN_RENDERABLE_INCLUDE - -#include -#include -#include -#include -#include -VK_NAMESPACE_BEGIN -/** - * 鍙覆鏌撴暟鎹璞
- * 鏈璞″寘鍚潗璐ㄥ疄渚嬩俊鎭拰Mesh淇℃伅锛屽彲娓叉煋鏁版嵁瀵硅薄涓寘鍚緵鏈缁圓PI浣跨敤鐨刅BO鏁版嵁锛屽彲鑳藉瓨鍦ㄥ涓狹ESH鏁版嵁鐨勯泦鍚堛

- * 姣斿鏈夊绉嶅舰鐘剁殑鐭冲ご锛屽畠浠娇鐢ㄤ簡鍚屼竴绉嶆潗璐紝杩欑鎯呭喌涓嬪涓猰esh灏卞彲浠ュ悎骞跺埌涓涓猂enderable涓紝娓叉煋鏃朵笉鍐嶅垏鎹BO銆 - */ -class Renderable -{ - struct VBOData - { - VBO *buf; - VkDeviceSize offset; - - public: - - CompOperatorMemcmp(const VBOData &); - }; - - Map buffer_list; - -protected: - - uint32_t draw_count; - - IndexBuffer *indices_buffer=nullptr; - VkDeviceSize indices_offset=0; - -protected: - - AABB BoundingBox; - -protected: - - friend class RenderableNode; - - uint ref_count=0; - - uint RefInc(){return ++ref_count;} - uint RefDec(){return --ref_count;} - -public: - - Renderable(const uint32_t dc=0):draw_count(dc){} - virtual ~Renderable()=default; - - const uint GetRefCount()const{return ref_count;} - - void SetBoundingBox(const AABB &aabb){BoundingBox=aabb;} - const AABB & GetBoundingBox()const {return BoundingBox;} - - bool Set(const AnsiString &name,VBO *vb,VkDeviceSize offset=0); - - bool Set(IndexBuffer *ib,VkDeviceSize offset=0) - { - if(!ib)return(false); - - indices_buffer=ib; - indices_offset=offset; - return(true); - } - -public: - - void SetDrawCount(const uint32_t dc){draw_count=dc;} ///<璁剧疆褰撳墠瀵硅薄缁樺埗闇瑕佸灏戜釜椤剁偣 - virtual const uint32_t GetDrawCount()const ///<鍙栧緱褰撳墠瀵硅薄缁樺埗闇瑕佸灏戜釜椤剁偣 - { - if(indices_buffer) - return indices_buffer->GetCount(); - - return draw_count; - } - - VBO * GetVBO (const AnsiString &,VkDeviceSize *); - VkBuffer GetBuffer (const AnsiString &,VkDeviceSize *); - const int GetBufferCount ()const {return buffer_list.GetCount();} - - IndexBuffer * GetIndexBuffer () {return indices_buffer;} - const VkDeviceSize GetIndexBufferOffset()const {return indices_offset;} -};//class Renderable -VK_NAMESPACE_END -#endif//HGL_GRAPH_VULKAN_RENDERABLE_INCLUDE diff --git a/inc/hgl/graph/VKRenderableInstance.h b/inc/hgl/graph/VKRenderableInstance.h index a2687d69..9b3caf9f 100644 --- a/inc/hgl/graph/VKRenderableInstance.h +++ b/inc/hgl/graph/VKRenderableInstance.h @@ -1,7 +1,7 @@ 锘#ifndef HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE #define HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE -#include +#include #include #include #include @@ -16,7 +16,7 @@ class RenderableInstance { Pipeline * pipeline; MaterialInstance * mat_inst; - Renderable * render_obj; + Primitive * render_obj; uint32_t buffer_count; VkBuffer * buffer_list; @@ -26,9 +26,9 @@ class RenderableInstance private: - friend RenderableInstance *CreateRenderableInstance(Renderable *,MaterialInstance *,Pipeline *); + friend RenderableInstance *CreateRenderableInstance(Primitive *,MaterialInstance *,Pipeline *); - RenderableInstance(Renderable *,MaterialInstance *,Pipeline *,const uint32_t,VkBuffer *,VkDeviceSize *); + RenderableInstance(Primitive *,MaterialInstance *,Pipeline *,const uint32_t,VkBuffer *,VkDeviceSize *); public: @@ -40,7 +40,7 @@ public: VkPipelineLayout GetPipelineLayout (){return mat_inst->GetMaterial()->GetPipelineLayout();} Material * GetMaterial (){return mat_inst->GetMaterial();} MaterialInstance * GetMaterialInstance (){return mat_inst;} - Renderable * GetRenderable (){return render_obj;} + Primitive * GetRenderable (){return render_obj;} const AABB & GetBoundingBox ()const{return render_obj->GetBoundingBox();} const uint32_t GetBufferCount ()const{return buffer_count;} @@ -59,6 +59,6 @@ public: //instance support virtual const uint32_t GetInstanceCount ()const{return 1;} };//class RenderableInstance -RenderableInstance *CreateRenderableInstance(Renderable *,MaterialInstance *,Pipeline *); +RenderableInstance *CreateRenderableInstance(Primitive *,MaterialInstance *,Pipeline *); VK_NAMESPACE_END #endif//HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE diff --git a/inc/hgl/graph/font/TextLayout.h b/inc/hgl/graph/font/TextLayout.h index 28a05ccc..aa5a7724 100644 --- a/inc/hgl/graph/font/TextLayout.h +++ b/inc/hgl/graph/font/TextLayout.h @@ -11,7 +11,7 @@ namespace hgl namespace graph { class TileFont; - class TextRenderable; + class TextPrimitive; /** * 瀛楃灞炴э紝鍙簿纭埌瀛椾篃鍙簿纭埌娈佃惤鎴栨槸鍏ㄦ枃 @@ -112,7 +112,7 @@ namespace hgl ObjectList draw_chars_list; ///<鎵鏈夊瓧绗﹀睘鎬у垪琛 - template bool preprocess(TextRenderable *,TileFont *,const T *,const int); + template bool preprocess(TextPrimitive *,TileFont *,const T *,const int); protected: @@ -124,7 +124,7 @@ namespace hgl int sl_v_r2l(); int sl_v_l2r(); - template int SimpleLayout(TextRenderable *,TileFont *,const String &); ///<绠鏄撴帓鐗 + template int SimpleLayout(TextPrimitive *,TileFont *,const String &); ///<绠鏄撴帓鐗 // template int SimpleLayout(TileFont *,const StringList> &); ///<绠鏄撴帓鐗 @@ -142,7 +142,7 @@ namespace hgl protected: - TextRenderable *text_render_obj; + TextPrimitive *text_render_obj; MemBlock vertex; MemBlock tex_coord; @@ -167,8 +167,8 @@ namespace hgl virtual bool Init (); ///<鍒濆鍖栨帓鐗 - int SimpleLayout (TextRenderable *,TileFont *,const UTF16String &); ///<绠鏄撴帓鐗 - int SimpleLayout (TextRenderable *,TileFont *,const UTF32String &); ///<绠鏄撴帓鐗 + int SimpleLayout (TextPrimitive *,TileFont *,const UTF16String &); ///<绠鏄撴帓鐗 + int SimpleLayout (TextPrimitive *,TileFont *,const UTF32String &); ///<绠鏄撴帓鐗 // int SimpleLayout (TileFont *,const UTF16StringList &); ///<绠鏄撴帓鐗 // int SimpleLayout (TileFont *,const UTF32StringList &); ///<绠鏄撴帓鐗 diff --git a/inc/hgl/graph/font/TextRender.h b/inc/hgl/graph/font/TextRender.h index a719aff7..affacb06 100644 --- a/inc/hgl/graph/font/TextRender.h +++ b/inc/hgl/graph/font/TextRender.h @@ -11,7 +11,7 @@ namespace hgl class FontSource; class TileFont; class TextLayout; - class TextRenderable; + class TextPrimitive; class TextRender { @@ -33,7 +33,7 @@ namespace hgl Color4f color; GPUBuffer * ubo_color; - SortedSets tr_sets; + SortedSets tr_sets; private: @@ -53,14 +53,14 @@ namespace hgl public: - TextRenderable *CreateRenderable(); - TextRenderable *CreateRenderable(const UTF16String &str); + TextPrimitive *CreatePrimitive(); + TextPrimitive *CreatePrimitive(const UTF16String &str); - bool Layout(TextRenderable *tr,const UTF16String &str); + bool Layout(TextPrimitive *tr,const UTF16String &str); - RenderableInstance *CreateRenderableInstance(TextRenderable *text_render_obj); + RenderableInstance *CreateRenderableInstance(TextPrimitive *text_render_obj); - void Release(TextRenderable *); + void Release(TextPrimitive *); };//class TextRender /** diff --git a/inc/hgl/graph/font/TextRenderable.h b/inc/hgl/graph/font/TextRenderable.h deleted file mode 100644 index b645b68d..00000000 --- a/inc/hgl/graph/font/TextRenderable.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef HGL_GRAPH_TEXT_RENDERABLE_INCLUDE -#define HGL_GRAPH_TEXT_RENDERABLE_INCLUDE - -#include -namespace hgl -{ - namespace graph - { - /** - * 鏂囨湰鍙覆鏌撳璞 - */ - class TextRenderable:public Renderable - { - GPUDevice * device; - Material * mtl; - - uint max_count; ///<缂撳啿鍖烘渶澶у閲 - - VBO * vbo_position; - VBO * vbo_tex_coord; - - protected: - - friend class TextLayout; - friend class TextRender; - - SortedSets chars_sets; - - const SortedSets &GetCharsSets()const{return chars_sets;} - void SetCharsSets(const SortedSets &sl){chars_sets=sl;} - void ClearCharsSets(){chars_sets.Clear();} - - private: - - virtual ~TextRenderable(); - - public: - - TextRenderable(GPUDevice *,Material *,uint mc=1024); - - public: - - void SetCharCount (const uint); - - bool WriteVertex (const int16 *fp); - bool WriteTexCoord (const float *fp); - };//class TextRenderable:public Renderable - }//namespace graph -}//namespace hgl -#endif//HGL_GRAPH_TEXT_RENDERABLE_INCLUDE diff --git a/res b/res index 70b697f1..2f972741 160000 --- a/res +++ b/res @@ -1 +1 @@ -Subproject commit 70b697f13ef20e957d51efcb0ff8632f4615e3c0 +Subproject commit 2f9727410cbe53f9867c544d8b6bd9f8ecdb97bf diff --git a/src/SceneGraph/CMakeLists.txt b/src/SceneGraph/CMakeLists.txt index 49a6ab9d..78561043 100644 --- a/src/SceneGraph/CMakeLists.txt +++ b/src/SceneGraph/CMakeLists.txt @@ -61,10 +61,10 @@ SET(TILE_FONT_SOURCE ${SG_INCLUDE_PATH}/font/TileFont.h SET(FONT_LAYOUT_SOURCE ${SG_INCLUDE_PATH}/font/TextLayout.h font/TextLayout.cpp) -SET(TEXT_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/font/TextRenderable.h +SET(TEXT_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/font/TextPrimitive.h ${SG_INCLUDE_PATH}/font/TextRender.h font/TextRender.cpp - font/TextRenderable.cpp) + font/TextPrimitive.cpp) SOURCE_GROUP("Font" FILES ${FONT_MANAGE_SOURCE}) SOURCE_GROUP("Font\\Source" FILES ${FONT_SOURCE}) @@ -220,9 +220,9 @@ SET(VK_CMD_BUFFER_SOURCE ${SG_INCLUDE_PATH}/VKCommandBuffer.h SOURCE_GROUP("Vulkan\\Command Buffer" FILES ${VK_CMD_BUFFER_SOURCE}) -SET(VK_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/VKRenderable.h +SET(VK_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/VKPrimitive.h ${SG_INCLUDE_PATH}/VKRenderableInstance.h - Vulkan/VKRenderable.cpp + Vulkan/VKPrimitive.cpp Vulkan/VKRenderableInstance.cpp Vulkan/VKTileData.cpp Vulkan/VKTileFont.cpp) diff --git a/src/SceneGraph/InlineGeometry.cpp b/src/SceneGraph/InlineGeometry.cpp index ecd42f04..59f6c96d 100644 --- a/src/SceneGraph/InlineGeometry.cpp +++ b/src/SceneGraph/InlineGeometry.cpp @@ -12,7 +12,7 @@ namespace hgl { namespace graph { - Renderable *CreateRenderableRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci) + Primitive *CreateRenderableRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci) { RenderableCreater rc(db,vab); @@ -29,7 +29,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderableGBufferComposition(RenderResource *db,const VAB *vab) + Primitive *CreateRenderableGBufferComposition(RenderResource *db,const VAB *vab) { RectangleCreateInfo rci; @@ -38,7 +38,7 @@ namespace hgl return CreateRenderableRectangle(db,vab,&rci); } - Renderable *CreateRenderableRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci) + Primitive *CreateRenderableRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci) { RenderableCreater rc(db,vab); @@ -112,7 +112,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderableCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci) + Primitive *CreateRenderableCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci) { RenderableCreater rc(db,vab); @@ -160,7 +160,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderablePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci) + Primitive *CreateRenderablePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci) { RenderableCreater rc(db,vab); @@ -207,7 +207,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderablePlane(RenderResource *db,const VAB *vab,const PlaneCreateInfo *pci) + Primitive *CreateRenderablePlane(RenderResource *db,const VAB *vab,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 }; @@ -248,7 +248,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderableCube(RenderResource *db,const VAB *vab,const CubeCreateInfo *cci) + Primitive *CreateRenderableCube(RenderResource *db,const VAB *vab,const CubeCreateInfo *cci) { /** * 4 5 @@ -440,7 +440,7 @@ namespace hgl * @param numberSlices 鍒囩墖鏁 * @return 鍙覆鏌撴暟鎹 */ - Renderable *CreateRenderableSphere(RenderResource *db,const VAB *vab,const uint numberSlices) + Primitive *CreateRenderableSphere(RenderResource *db,const VAB *vab,const uint numberSlices) { RenderableCreater rc(db,vab); @@ -516,7 +516,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderableDome(RenderResource *db,const VAB *vab,const uint numberSlices) + Primitive *CreateRenderableDome(RenderResource *db,const VAB *vab,const uint numberSlices) { RenderableCreater rc(db,vab); @@ -637,7 +637,7 @@ namespace hgl } }//namespace - Renderable *CreateRenderableTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci) + Primitive *CreateRenderableTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci) { RenderableCreater rc(db,vab); @@ -793,7 +793,7 @@ namespace hgl } }//namespace - Renderable *CreateRenderableCylinder(RenderResource *db,const VAB *vab,const CylinderCreateInfo *cci) + Primitive *CreateRenderableCylinder(RenderResource *db,const VAB *vab,const CylinderCreateInfo *cci) { uint numberIndices = cci->numberSlices * 3 * 2 + cci->numberSlices * 6; @@ -1012,7 +1012,7 @@ namespace hgl } }//namespace - Renderable *CreateRenderableCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci) + Primitive *CreateRenderableCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci) { RenderableCreater rc(db,vab); @@ -1139,7 +1139,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderableAxis(RenderResource *db,const VAB *vab,const AxisCreateInfo *aci) + Primitive *CreateRenderableAxis(RenderResource *db,const VAB *vab,const AxisCreateInfo *aci) { if(!db||!vab||!aci)return(nullptr); @@ -1166,7 +1166,7 @@ namespace hgl return rc.Finish(); } - Renderable *CreateRenderableBoundingBox(RenderResource *db,const VAB *vab,const BoundingBoxCreateInfo *cci) + Primitive *CreateRenderableBoundingBox(RenderResource *db,const VAB *vab,const BoundingBoxCreateInfo *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/RenderList.cpp b/src/SceneGraph/RenderList.cpp index d6acfb3f..8d53b7ed 100644 --- a/src/SceneGraph/RenderList.cpp +++ b/src/SceneGraph/RenderList.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include #include #include @@ -151,7 +151,7 @@ namespace hgl //涓烘墍鏈夌殑鏉愯川缁戝畾 for(Material *mtl:material_sets) { - MaterialParameters *mp=mtl->GetMP(DescriptorSetsType::Renderable); + MaterialParameters *mp=mtl->GetMP(DescriptorSetsType::Primitive); if(mp) { @@ -219,7 +219,7 @@ namespace hgl MaterialParameters *mp; for(int i=(int)DescriptorSetsType::BEGIN_RANGE; - i<(int)DescriptorSetsType::Renderable; + i<(int)DescriptorSetsType::Primitive; i++) { mp=ri->GetMP((DescriptorSetsType)i); @@ -242,7 +242,7 @@ namespace hgl } { - mp=ri->GetMP(DescriptorSetsType::Renderable); + mp=ri->GetMP(DescriptorSetsType::Primitive); if(mp) { diff --git a/src/SceneGraph/RenderableCreater.cpp b/src/SceneGraph/RenderableCreater.cpp index 36ac8ebc..ba7d5d8b 100644 --- a/src/SceneGraph/RenderableCreater.cpp +++ b/src/SceneGraph/RenderableCreater.cpp @@ -105,14 +105,14 @@ namespace hgl return (uint32 *)ibo->Map(); } - Renderable *RenderableCreater::Finish() + Primitive *RenderableCreater::Finish() { const uint si_count=vab->GetVertexAttrCount(); if(ssb_map.GetCount()!=si_count) return(nullptr); - Renderable *render_obj=db->CreateRenderable(vertices_number); + Primitive *render_obj=db->CreatePrimitive(vertices_number); const auto *sp=ssb_map.GetDataList(); for(uint i=0;iGetVkDescriptorSet(); ++count; - if((DescriptorSetsType)i==DescriptorSetsType::Renderable) + if((DescriptorSetsType)i==DescriptorSetsType::Primitive) { dynamic_count=mp->GetCount(); diff --git a/src/SceneGraph/Vulkan/VKDeviceCreater.cpp b/src/SceneGraph/Vulkan/VKDeviceCreater.cpp index be6a15f5..e2760eed 100644 --- a/src/SceneGraph/Vulkan/VKDeviceCreater.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceCreater.cpp @@ -30,8 +30,9 @@ namespace #ifdef _DEBUG VK_EXT_DEBUG_MARKER_EXTENSION_NAME, #endif//_DEBUG - VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, +// VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME, + VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, // VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, // VK_EXT_HDR_METADATA_EXTENSION_NAME, // VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, diff --git a/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp b/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp index 8c07833f..51a5da12 100644 --- a/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp @@ -109,7 +109,7 @@ Material *GPUDevice::CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap * data->pipeline_layout_data=pld; data->mp.m=CreateMP(mds,pld,DescriptorSetsType::Material ); - data->mp.r=CreateMP(mds,pld,DescriptorSetsType::Renderable ); + data->mp.r=CreateMP(mds,pld,DescriptorSetsType::Primitive ); data->mp.g=CreateMP(mds,pld,DescriptorSetsType::Global ); return(new Material(data)); diff --git a/src/SceneGraph/Vulkan/VKRenderResource.cpp b/src/SceneGraph/Vulkan/VKRenderResource.cpp index 41fe1624..8e3693bc 100644 --- a/src/SceneGraph/Vulkan/VKRenderResource.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResource.cpp @@ -72,11 +72,11 @@ MaterialInstance *RenderResource::CreateMaterialInstance(const OSString &mtl_fil return CreateMaterialInstance(mtl,vab_cfg); } -Renderable *RenderResource::CreateRenderable(const uint32_t vertex_count) +Primitive *RenderResource::CreatePrimitive(const uint32_t vertex_count) { if(!vertex_count)return(nullptr); - Renderable *ro=new Renderable(vertex_count); + Primitive *ro=new Primitive(vertex_count); if(ro) Add(ro); @@ -84,7 +84,7 @@ Renderable *RenderResource::CreateRenderable(const uint32_t vertex_count) return ro; } -RenderableInstance *RenderResource::CreateRenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p) +RenderableInstance *RenderResource::CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p) { if(!p||!mi||!r) return(nullptr); diff --git a/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp b/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp index 2e6207c7..c894ddc3 100644 --- a/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp @@ -49,7 +49,7 @@ void LoadShaderDescriptor(const uint8 *data,ShaderDescriptor *sd_list,const uint sd->set_type=CheckDescriptorSetsType(sd->name); - if(sd->set_type==DescriptorSetsType::Renderable) + if(sd->set_type==DescriptorSetsType::Primitive) { if(sd->desc_type==VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER)sd->desc_type=VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;else if(sd->desc_type==VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)sd->desc_type=VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC; diff --git a/src/SceneGraph/Vulkan/VKRenderable.cpp b/src/SceneGraph/Vulkan/VKRenderable.cpp deleted file mode 100644 index 3f7bb9b6..00000000 --- a/src/SceneGraph/Vulkan/VKRenderable.cpp +++ /dev/null @@ -1,63 +0,0 @@ -锘#include -#include -#include -#include - -VK_NAMESPACE_BEGIN -//bool Renderable::Set(const int stage_input_binding,VAB *vab,VkDeviceSize offset) -//{ -// if(stage_input_binding<0||stage_input_binding>=buf_count||!vab)return(false); -// -// const VkVertexInputBindingDescription *desc=vertex_sm->GetDesc(stage_input_binding); -// const VkVertexInputAttributeDescription *attr=vertex_sm->GetAttr(stage_input_binding); -// -// if(vab->GetFormat()!=attr->format)return(false); -// if(vab->GetStride()!=desc->stride)return(false); -// -// //format淇℃伅鏉ヨ嚜浜巗hader锛屽疄闄呬腑鍙互涓嶄竴鏍枫備絾閭f牱闇瑕佷负姣忎竴涓牸寮忎骇鐢熶竴涓悓鏍穝hader鐨刴aterial instance锛屼笉鍚岀殑鏍煎紡鍙堥渶瑕佷笉鍚岀殑pipeline锛屾垜浠笉鏀寔杩欑琛屼负 -// -// buf_list[stage_input_binding]=vab->GetBuffer(); -// buf_offset[stage_input_binding]=offset; -// -// return(true); -//} - -bool Renderable::Set(const AnsiString &name,VBO *vbo,VkDeviceSize offset) -{ - if(!vbo)return(false); - if(buffer_list.KeyExist(name))return(false); - - VBOData bd; - - bd.buf=vbo; - bd.offset=offset; - - buffer_list.Add(name,bd); - return(true); -} - -VBO *Renderable::GetVBO(const AnsiString &name,VkDeviceSize *offset) -{ - if(!offset)return(nullptr); - if(name.IsEmpty())return(nullptr); - - VBOData bd; - - if(buffer_list.Get(name,bd)) - { - *offset=bd.offset; - return bd.buf; - } - - return(nullptr); -} - -VkBuffer Renderable::GetBuffer(const AnsiString &name,VkDeviceSize *offset) -{ - VBO *vbo=GetVBO(name,offset); - - if(vbo)return vbo->GetBuffer(); - - return(VK_NULL_HANDLE); -} -VK_NAMESPACE_END diff --git a/src/SceneGraph/Vulkan/VKRenderableInstance.cpp b/src/SceneGraph/Vulkan/VKRenderableInstance.cpp index 7a3e1da6..c14fa257 100644 --- a/src/SceneGraph/Vulkan/VKRenderableInstance.cpp +++ b/src/SceneGraph/Vulkan/VKRenderableInstance.cpp @@ -8,7 +8,7 @@ VK_NAMESPACE_BEGIN using namespace util; -RenderableInstance::RenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs) +RenderableInstance::RenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs) { render_obj=r; pipeline=p; @@ -32,7 +32,7 @@ RenderableInstance::~RenderableInstance() delete[] buffer_size; } -RenderableInstance *CreateRenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p) +RenderableInstance *CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p) { if(!r||!mi||!p)return(nullptr); diff --git a/src/SceneGraph/Vulkan/VKShaderResource.cpp b/src/SceneGraph/Vulkan/VKShaderResource.cpp index 3dbb0dc5..e6bc8f1d 100644 --- a/src/SceneGraph/Vulkan/VKShaderResource.cpp +++ b/src/SceneGraph/Vulkan/VKShaderResource.cpp @@ -11,7 +11,7 @@ VK_NAMESPACE_BEGIN { if(str[0]=='m')return DescriptorSetsType::Material; if(str[0]=='g')return DescriptorSetsType::Global; - if(str[0]=='r')return DescriptorSetsType::Renderable; + if(str[0]=='r')return DescriptorSetsType::Primitive; } return DescriptorSetsType::Value; diff --git a/src/SceneGraph/font/TextLayout.cpp b/src/SceneGraph/font/TextLayout.cpp index 89447539..6a70a591 100644 --- a/src/SceneGraph/font/TextLayout.cpp +++ b/src/SceneGraph/font/TextLayout.cpp @@ -1,6 +1,6 @@ 锘#include #include -#include +#include #include namespace hgl @@ -48,7 +48,7 @@ namespace hgl * 棰勫鐞嗘墍鏈夌殑瀛楃锛岃幏鍙栨墍鏈夊瓧绗︾殑瀹介珮锛屼互鍙婃槸鍚︽爣鐐圭鍙风瓑淇℃伅 */ template - bool TextLayout::preprocess(TextRenderable *tr,TileFont *tile_font,const T *str,const int str_length) + bool TextLayout::preprocess(TextPrimitive *tr,TileFont *tile_font,const T *str,const int str_length) { if(!tr ||!tile_font @@ -243,7 +243,7 @@ namespace hgl * 绠鏄撴枃鏈帓鐗堛傛棤浠讳綍鐗规畩澶勭悊锛屼笉鏀寔浠讳綍杞箟绗︼紝涓嶆敮鎸乗r\n */ template - int TextLayout::SimpleLayout(TextRenderable *tr,TileFont *tf,const String &str) + int TextLayout::SimpleLayout(TextPrimitive *tr,TileFont *tf,const String &str) { if(!tr) return(-1); @@ -292,8 +292,8 @@ namespace hgl return result; } - int TextLayout::SimpleLayout(TextRenderable *tr,TileFont *tf,const UTF16String &str){return this->SimpleLayout(tr,tf,str);} - int TextLayout::SimpleLayout(TextRenderable *tr,TileFont *tf,const UTF32String &str){return this->SimpleLayout(tr,tf,str);} + int TextLayout::SimpleLayout(TextPrimitive *tr,TileFont *tf,const UTF16String &str){return this->SimpleLayout(tr,tf,str);} + int TextLayout::SimpleLayout(TextPrimitive *tr,TileFont *tf,const UTF32String &str){return this->SimpleLayout(tr,tf,str);} //template //int TextLayout::SimpleLayout(TileFont *tf,const StringList> &sl) diff --git a/src/SceneGraph/font/TextRender.cpp b/src/SceneGraph/font/TextRender.cpp index 1fcebf81..9141142f 100644 --- a/src/SceneGraph/font/TextRender.cpp +++ b/src/SceneGraph/font/TextRender.cpp @@ -1,8 +1,7 @@ 锘#include -#include +#include #include #include -#include #include #include @@ -27,7 +26,7 @@ namespace hgl TextRender::~TextRender() { - for(TextRenderable *tr:tr_sets) + for(TextPrimitive *tr:tr_sets) { tile_font->Unregistry(tr->GetCharsSets().GetList()); delete tr; @@ -145,18 +144,18 @@ namespace hgl return(true); } - TextRenderable *TextRender::CreateRenderable() + TextPrimitive *TextRender::CreatePrimitive() { - TextRenderable *tr=new TextRenderable(device,material); + TextPrimitive *tr=new TextPrimitive(device,material); tr_sets.Add(tr); return tr; } - TextRenderable *TextRender::CreateRenderable(const UTF16String &str) + TextPrimitive *TextRender::CreatePrimitive(const UTF16String &str) { - TextRenderable *tr=CreateRenderable(); + TextPrimitive *tr=CreatePrimitive(); if(tl_engine->SimpleLayout(tr,tile_font,str)<=0) return(tr); @@ -164,7 +163,7 @@ namespace hgl return tr; } - bool TextRender::Layout(TextRenderable *tr,const UTF16String &str) + bool TextRender::Layout(TextPrimitive *tr,const UTF16String &str) { if(!tr) return(false); @@ -175,12 +174,12 @@ namespace hgl return true; } - RenderableInstance *TextRender::CreateRenderableInstance(TextRenderable *text_render_obj) + RenderableInstance *TextRender::CreateRenderableInstance(TextPrimitive *text_render_obj) { return db->CreateRenderableInstance(text_render_obj,material_instance,pipeline); } - void TextRender::Release(TextRenderable *tr) + void TextRender::Release(TextPrimitive *tr) { if(!tr)return; diff --git a/src/SceneGraph/font/TextRenderable.cpp b/src/SceneGraph/font/TextRenderable.cpp deleted file mode 100644 index b38819ec..00000000 --- a/src/SceneGraph/font/TextRenderable.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include - -namespace hgl -{ - namespace graph - { - TextRenderable::TextRenderable(GPUDevice *dev,Material *m,uint mc):Renderable(mc) - { - device=dev; - mtl=m; - - max_count=0; - - vbo_position=nullptr; - vbo_tex_coord=nullptr; - } - - TextRenderable::~TextRenderable() - { - SAFE_CLEAR(vbo_tex_coord); - SAFE_CLEAR(vbo_position); - } - - void TextRenderable::SetCharCount(const uint cc) - { - this->draw_count=cc; - if(cc<=max_count)return; - - max_count=power_to_2(cc); - - { - if(vbo_position) - delete vbo_position; - - vbo_position =device->CreateVBO(VF_V4I16,max_count); - Set(VAN::Position,vbo_position); - } - - { - if(vbo_tex_coord) - delete vbo_tex_coord; - - vbo_tex_coord =device->CreateVBO(VF_V4F,max_count); - Set(VAN::TexCoord,vbo_tex_coord); - } - } - - bool TextRenderable::WriteVertex (const int16 *fp){if(!fp)return(false);if(!vbo_position )return(false);return vbo_position ->Write(fp,draw_count*4*sizeof(int16));} - bool TextRenderable::WriteTexCoord (const float *fp){if(!fp)return(false);if(!vbo_tex_coord)return(false);return vbo_tex_coord ->Write(fp,draw_count*4*sizeof(float));} - }//namespace graph -}//namespace hgl