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