From cd2f278e8474fcc929c061c56adb32de30351cb8 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Tue, 11 Oct 2022 19:16:06 +0800 Subject: [PATCH] renamed to VertexInputLayout instead of VertexAttributeBinding --- CMSceneGraph | 2 +- example/2dVector/roundbox.cpp | 6 +- example/Vulkan/Atmosphere.cpp | 2 +- example/Vulkan/Cubemap.cpp | 6 +- example/Vulkan/DeferredRender.cpp | 18 +++--- example/Vulkan/EquirectangularMap.cpp | 2 +- example/Vulkan/Geometry3D.cpp | 8 +-- example/Vulkan/InlineGeometryScene.cpp | 14 ++--- example/Vulkan/OffscreenRender.cpp | 4 +- example/Vulkan/RayPicking.cpp | 4 +- example/Vulkan/SceneTree.cpp | 2 +- example/Vulkan/SkyColor.cpp | 4 +- example/Vulkan/TerrainSimple.cpp | 6 +- inc/hgl/graph/InlineGeometry.h | 28 +++++----- inc/hgl/graph/PrimitiveCreater.h | 8 +-- inc/hgl/graph/VK.h | 6 +- inc/hgl/graph/VKDevice.h | 2 +- inc/hgl/graph/VKMaterialInstance.h | 6 +- inc/hgl/graph/VKRenderPass.h | 2 +- inc/hgl/graph/VKRenderResource.h | 4 +- inc/hgl/graph/VKShaderModule.h | 8 +-- src/SceneGraph/InlineGeometry.cpp | 58 ++++++++++---------- src/SceneGraph/PrimitiveCreater.cpp | 14 ++--- src/SceneGraph/Vulkan/VKDeviceMaterial.cpp | 2 +- src/SceneGraph/Vulkan/VKMaterialInstance.cpp | 12 ++-- src/SceneGraph/Vulkan/VKPrimitive.cpp | 10 ++-- src/SceneGraph/Vulkan/VKRenderPass.cpp | 10 ++-- src/SceneGraph/Vulkan/VKRenderResource.cpp | 8 +-- src/SceneGraph/Vulkan/VKRenderable.cpp | 12 ++-- src/SceneGraph/Vulkan/VKShaderModule.cpp | 16 +++--- src/SceneGraph/font/TextRender.cpp | 6 +- 31 files changed, 145 insertions(+), 145 deletions(-) diff --git a/CMSceneGraph b/CMSceneGraph index 6682f005..fba5b2de 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit 6682f0050a0ac5614f6c3f401a64289477eafb04 +Subproject commit fba5b2deea8784703ccdf7f6c18056178daefc3c diff --git a/example/2dVector/roundbox.cpp b/example/2dVector/roundbox.cpp index 45536e1b..b69581e4 100644 --- a/example/2dVector/roundbox.cpp +++ b/example/2dVector/roundbox.cpp @@ -54,15 +54,15 @@ private: bool InitMaterial() { //2D渲染Position坐标全部是使用整数,这里强制要求Position输入流使用RGBA16I格式 - VABConfigInfo vab_config; + VILConfig vil_config; VAConfig va_cfg; va_cfg.format=VF_V4I16; va_cfg.instance=false; - vab_config.Add("Position",va_cfg); + vil_config.Add("Position",va_cfg); - material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/RoundedBox"),&vab_config); + material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/RoundedBox"),&vil_config); if(!material_instance) return(false); diff --git a/example/Vulkan/Atmosphere.cpp b/example/Vulkan/Atmosphere.cpp index 8cd6a408..576eb145 100644 --- a/example/Vulkan/Atmosphere.cpp +++ b/example/Vulkan/Atmosphere.cpp @@ -81,7 +81,7 @@ private: bool InitScene() { - ro_sphere=inline_geometry::CreateSphere(db,material_instance->GetVAB(),128); + ro_sphere=inline_geometry::CreateSphere(db,material_instance->GetVIL(),128); render_root.CreateSubNode(scale(100),db->CreateRenderable(ro_sphere,material_instance,pipeline_solid)); diff --git a/example/Vulkan/Cubemap.cpp b/example/Vulkan/Cubemap.cpp index 40238cb7..1f3cd39e 100644 --- a/example/Vulkan/Cubemap.cpp +++ b/example/Vulkan/Cubemap.cpp @@ -128,17 +128,17 @@ private: aci.size=GetCameraInfo().zfar; - ro_axis=CreateAxis(db,axis_mi->GetVAB(),&aci); + ro_axis=CreateAxis(db,axis_mi->GetVIL(),&aci); } { struct CubeCreateInfo cci; - ro_cube=CreateCube(db,sky_mi->GetVAB(),&cci); + ro_cube=CreateCube(db,sky_mi->GetVIL(),&cci); } { - ro_sphere=CreateSphere(db,envmap_mi->GetVAB(),64); + ro_sphere=CreateSphere(db,envmap_mi->GetVIL(),64); } } diff --git a/example/Vulkan/DeferredRender.cpp b/example/Vulkan/DeferredRender.cpp index 5b192e33..19b94da1 100644 --- a/example/Vulkan/DeferredRender.cpp +++ b/example/Vulkan/DeferredRender.cpp @@ -339,22 +339,22 @@ private: return(true); } - void CreateRenderObject(const VAB *vab) + void CreateRenderObject(const VIL *vil) { using namespace inline_geometry; { struct PlaneCreateInfo pci; - ro_plane=CreatePlane(db,vab,&pci); + ro_plane=CreatePlane(db,vil,&pci); } { struct CubeCreateInfo cci; - ro_cube=CreateCube(db,vab,&cci); + ro_cube=CreateCube(db,vil,&cci); } { - ro_sphere=CreateSphere(db,vab,64); + ro_sphere=CreateSphere(db,vil,64); } { @@ -369,7 +369,7 @@ private: tci.uv_scale.x=4; tci.uv_scale.y=1; - ro_torus=CreateTorus(db,vab,&tci); + ro_torus=CreateTorus(db,vil,&tci); } { @@ -379,7 +379,7 @@ private: cci.radius=10; cci.numberSlices=32; - ro_cylinder=CreateCylinder(db,vab,&cci); + ro_cylinder=CreateCylinder(db,vil,&cci); } { @@ -390,13 +390,13 @@ private: cci.numberSlices=128; cci.numberStacks=32; - ro_cone=CreateCone(db,vab,&cci); + ro_cone=CreateCone(db,vil,&cci); } } bool InitCompositionRenderable() { - ro_gbc_plane=inline_geometry::CreateGBufferCompositionRectangle(db,sp_composition.material_instance->GetVAB()); + ro_gbc_plane=inline_geometry::CreateGBufferCompositionRectangle(db,sp_composition.material_instance->GetVIL()); if(!ro_gbc_plane)return(false); ro_gbc_plane_ri=db->CreateRenderable(ro_gbc_plane,sp_composition.material_instance,sp_composition.pipeline_fan); @@ -407,7 +407,7 @@ private: bool InitScene(SubpassParam *sp) { - CreateRenderObject(sp->material_instance->GetVAB()); + CreateRenderObject(sp->material_instance->GetVIL()); render_root.CreateSubNode( scale(100,100,1), db->CreateRenderable(ro_plane ,sp->material_instance,sp->pipeline_fan )); render_root.CreateSubNode( db->CreateRenderable(ro_torus ,sp->material_instance,sp->pipeline_triangles)); render_root.CreateSubNode( scale(20,20,20), db->CreateRenderable(ro_sphere ,sp->material_instance,sp->pipeline_triangles)); diff --git a/example/Vulkan/EquirectangularMap.cpp b/example/Vulkan/EquirectangularMap.cpp index 9a1a0f52..0dd0b5d7 100644 --- a/example/Vulkan/EquirectangularMap.cpp +++ b/example/Vulkan/EquirectangularMap.cpp @@ -64,7 +64,7 @@ private: void CreateRenderObject() { - ro_sphere=inline_geometry::CreateSphere(db,envmap_mi->GetVAB(),128); + ro_sphere=inline_geometry::CreateSphere(db,envmap_mi->GetVIL(),128); } bool InitUBO() diff --git a/example/Vulkan/Geometry3D.cpp b/example/Vulkan/Geometry3D.cpp index 388a3f0c..d8f40f5c 100644 --- a/example/Vulkan/Geometry3D.cpp +++ b/example/Vulkan/Geometry3D.cpp @@ -76,18 +76,18 @@ private: pgci.color.Set(0.5,0,0,1); pgci.side_color.Set(1,0,0,1); - const VAB *vab=material_instance->GetVAB(); + const VIL *vil=material_instance->GetVIL(); - ro_plane_grid[0]=CreatePlaneGrid(db,vab,&pgci); + ro_plane_grid[0]=CreatePlaneGrid(db,vil,&pgci); pgci.color.Set(0,0.5,0,1); pgci.side_color.Set(0,1,0,1); - ro_plane_grid[1]=CreatePlaneGrid(db,vab,&pgci); + ro_plane_grid[1]=CreatePlaneGrid(db,vil,&pgci); pgci.color.Set(0,0,0.5,1); pgci.side_color.Set(0,0,1,1); - ro_plane_grid[2]=CreatePlaneGrid(db,vab,&pgci); + ro_plane_grid[2]=CreatePlaneGrid(db,vil,&pgci); } bool InitScene() diff --git a/example/Vulkan/InlineGeometryScene.cpp b/example/Vulkan/InlineGeometryScene.cpp index d14b7bd7..8441722c 100644 --- a/example/Vulkan/InlineGeometryScene.cpp +++ b/example/Vulkan/InlineGeometryScene.cpp @@ -154,10 +154,10 @@ private: aci.size=200; - ro_axis=CreateAxis(db,axis_mi->GetVAB(),&aci); + ro_axis=CreateAxis(db,axis_mi->GetVIL(),&aci); } - const VAB *vab=material_instance->GetVAB(); + const VIL *vil=material_instance->GetVIL(); { struct CubeCreateInfo cci; @@ -166,11 +166,11 @@ private: cci.tex_coord=true; cci.color_type=CubeCreateInfo::ColorType::SameColor; cci.color[0]=Vector4f(1,1,1,1); - ro_cube=CreateCube(db,vab,&cci); + ro_cube=CreateCube(db,vil,&cci); } { - ro_sphere=CreateSphere(db,vab,64); + ro_sphere=CreateSphere(db,vil,64); } { @@ -185,7 +185,7 @@ private: tci.uv_scale.x=4; tci.uv_scale.y=1; - ro_torus=CreateTorus(db,vab,&tci); + ro_torus=CreateTorus(db,vil,&tci); } { @@ -195,7 +195,7 @@ private: cci.radius=10; cci.numberSlices=32; - ro_cylinder=CreateCylinder(db,vab,&cci); + ro_cylinder=CreateCylinder(db,vil,&cci); } { @@ -206,7 +206,7 @@ private: cci.numberSlices=128; cci.numberStacks=32; - ro_cone=CreateCone(db,vab,&cci); + ro_cone=CreateCone(db,vil,&cci); } } diff --git a/example/Vulkan/OffscreenRender.cpp b/example/Vulkan/OffscreenRender.cpp index db9bc412..75b5e56c 100644 --- a/example/Vulkan/OffscreenRender.cpp +++ b/example/Vulkan/OffscreenRender.cpp @@ -107,7 +107,7 @@ public: cci.center_color=Vector4f(1,1,1,1); cci.border_color=Vector4f(1,1,1,0); - Primitive *primitive=CreateCircle(db,os.material_instance->GetVAB(),&cci); + Primitive *primitive=CreateCircle(db,os.material_instance->GetVIL(),&cci); if(!primitive)return(false); os.renderable=db->CreateRenderable(primitive,os.material_instance,os.pipeline); @@ -145,7 +145,7 @@ public: cci.tex_coord=true; - Primitive *primitive=CreateCube(db,cube.material_instance->GetVAB(),&cci); + Primitive *primitive=CreateCube(db,cube.material_instance->GetVIL(),&cci); if(!primitive)return(false); cube.renderable=db->CreateRenderable(primitive,cube.material_instance,cube.pipeline); diff --git a/example/Vulkan/RayPicking.cpp b/example/Vulkan/RayPicking.cpp index f09ef1a6..554f127f 100644 --- a/example/Vulkan/RayPicking.cpp +++ b/example/Vulkan/RayPicking.cpp @@ -97,9 +97,9 @@ private: pgci.color.Set(0.25,0,0,1); pgci.side_color.Set(1,0,0,1); - const VAB *vab=material_instance->GetVAB(); + const VIL *vil=material_instance->GetVIL(); - ro_plane_grid=CreatePlaneGrid(db,vab,&pgci); + ro_plane_grid=CreatePlaneGrid(db,vil,&pgci); } { diff --git a/example/Vulkan/SceneTree.cpp b/example/Vulkan/SceneTree.cpp index ce009fa0..5ae55044 100644 --- a/example/Vulkan/SceneTree.cpp +++ b/example/Vulkan/SceneTree.cpp @@ -67,7 +67,7 @@ private: void CreateRenderObject() { - primitive=inline_geometry::CreateSphere(db,material_instance->GetVAB(),40); + primitive=inline_geometry::CreateSphere(db,material_instance->GetVIL(),40); } bool InitUBO() diff --git a/example/Vulkan/SkyColor.cpp b/example/Vulkan/SkyColor.cpp index 3a3d3eac..f85a0844 100644 --- a/example/Vulkan/SkyColor.cpp +++ b/example/Vulkan/SkyColor.cpp @@ -88,9 +88,9 @@ private: void CreateRenderObject() { - const VAB *vab=material_instance->GetVAB(); + const VIL *vil=material_instance->GetVIL(); - ro_skyphere=inline_geometry::CreateDome(db,vab,64); + ro_skyphere=inline_geometry::CreateDome(db,vil,64); } bool InitScene() diff --git a/example/Vulkan/TerrainSimple.cpp b/example/Vulkan/TerrainSimple.cpp index 5581762e..181ce2a8 100644 --- a/example/Vulkan/TerrainSimple.cpp +++ b/example/Vulkan/TerrainSimple.cpp @@ -28,7 +28,7 @@ constexpr uint32_t SCREEN_HEIGHT=720; /** * һ */ - Primitive *CreateRenderableTerrain(RenderResource *db,const VAB *vab,const TerrainCreateInfo *tci) + Primitive *CreateRenderableTerrain(RenderResource *db,const VIL *vil,const TerrainCreateInfo *tci) { } @@ -95,9 +95,9 @@ private: pgci.color.Set(0.75,0.75,0.75); pgci.side_color.Set(1,0,0,1); - const VAB *vab=material_instance->GetVAB(); + const VIL *vil=material_instance->GetVIL(); - renderable=CreatePlaneGrid(db,vab,&pgci); + renderable=CreatePlaneGrid(db,vil,&pgci); } bool InitScene() diff --git a/inc/hgl/graph/InlineGeometry.h b/inc/hgl/graph/InlineGeometry.h index 3bc6aa05..608c34f2 100644 --- a/inc/hgl/graph/InlineGeometry.h +++ b/inc/hgl/graph/InlineGeometry.h @@ -20,12 +20,12 @@ namespace hgl RectScope2f scope; };//struct RectangleCreateInfo - Primitive *CreateRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci); + Primitive *CreateRectangle(RenderResource *db,const VIL *vil,const RectangleCreateInfo *rci); /** * 创建延迟渲染用全屏平面 */ - Primitive *CreateGBufferCompositionRectangle(RenderResource *db,const VAB *vab); + Primitive *CreateGBufferCompositionRectangle(RenderResource *db,const VIL *vil); /** * 圆角矩形创建信息(扇形/线圈) @@ -36,7 +36,7 @@ namespace hgl uint32_t round_per; ///<圆角精度 };//struct RoundRectangleCreateInfo:public RectangleCreateInfo - Primitive *CreateRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci); + Primitive *CreateRoundRectangle(RenderResource *db,const VIL *vil,const RoundRectangleCreateInfo *rci); /** * 圆形创建信息 @@ -56,7 +56,7 @@ namespace hgl /** * 创建一个2D圆形(扇形/线圈) */ - Primitive *CreateCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci); + Primitive *CreateCircle(RenderResource *db,const VIL *vil,const CircleCreateInfo *cci); /** * 平面网格创建信息 @@ -75,7 +75,7 @@ namespace hgl /** * 创建一个平面网格(线条) */ - Primitive *CreatePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci); + Primitive *CreatePlaneGrid(RenderResource *db,const VIL *vil,const PlaneGridCreateInfo *pgci); struct PlaneCreateInfo { @@ -93,7 +93,7 @@ namespace hgl /** * 创建一个平面(三角形) */ - Primitive *CreatePlane(RenderResource *db,const VAB *vab,const PlaneCreateInfo *pci); + Primitive *CreatePlane(RenderResource *db,const VIL *vil,const PlaneCreateInfo *pci); struct CubeCreateInfo { @@ -129,7 +129,7 @@ namespace hgl /** * 创建一个立方体(三角形) */ - Primitive *CreateCube(RenderResource *db,const VAB *vab,const CubeCreateInfo *cci); + Primitive *CreateCube(RenderResource *db,const VIL *vil,const CubeCreateInfo *cci); struct BoundingBoxCreateInfo { @@ -160,17 +160,17 @@ namespace hgl /** * 创建一个绑定盒(线条) */ - Primitive *CreateBoundingBox(RenderResource *db,const VAB *vab,const BoundingBoxCreateInfo *cci); + Primitive *CreateBoundingBox(RenderResource *db,const VIL *vil,const BoundingBoxCreateInfo *cci); /** * 创建一个球心坐标为0,0,0,半径为1的球体(三角形) */ - Primitive *CreateSphere(RenderResource *db,const VAB *vab,const uint numberSlices); + Primitive *CreateSphere(RenderResource *db,const VIL *vil,const uint numberSlices); /** * 创建一个穹顶(三角形) */ - Primitive *CreateDome(RenderResource *db,const VAB *vab, const uint numberSlices); + Primitive *CreateDome(RenderResource *db,const VIL *vil, const uint numberSlices); struct TorusCreateInfo { @@ -186,7 +186,7 @@ namespace hgl /** * 创建一个圆环(三角形) */ - Primitive *CreateTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci); + Primitive *CreateTorus(RenderResource *db,const VIL *vil,const TorusCreateInfo *tci); struct CylinderCreateInfo { @@ -198,7 +198,7 @@ namespace hgl /** * 创建一个圆柱(三角形) */ - Primitive *CreateCylinder(RenderResource *db,const VAB *vab,const CylinderCreateInfo *cci); + Primitive *CreateCylinder(RenderResource *db,const VIL *vil,const CylinderCreateInfo *cci); struct ConeCreateInfo { @@ -211,7 +211,7 @@ namespace hgl /** * 创建一个圆锥(三角形) */ - Primitive *CreateCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci); + Primitive *CreateCone(RenderResource *db,const VIL *vil,const ConeCreateInfo *cci); struct AxisCreateInfo { @@ -232,7 +232,7 @@ namespace hgl /** * 创建一个坐标线(线条) */ - Primitive *CreateAxis(RenderResource *db,const VAB *vab,const AxisCreateInfo *aci); + Primitive *CreateAxis(RenderResource *db,const VIL *vil,const AxisCreateInfo *aci); }//namespace inline_geometry }//namespace graph };//namespace hgl diff --git a/inc/hgl/graph/PrimitiveCreater.h b/inc/hgl/graph/PrimitiveCreater.h index a257c1f4..3b3b9160 100644 --- a/inc/hgl/graph/PrimitiveCreater.h +++ b/inc/hgl/graph/PrimitiveCreater.h @@ -35,7 +35,7 @@ namespace hgl RenderResource *db; Material *mtl; - const VAB *vab; + const VIL *vil; protected: @@ -46,7 +46,7 @@ namespace hgl public: - PrimitiveCreater(RenderResource *sdb,const VAB *); + PrimitiveCreater(RenderResource *sdb,const VIL *); virtual ~PrimitiveCreater()=default; virtual bool Init(const uint32 vertices_count); ///<初始化,参数为顶点数量 @@ -56,7 +56,7 @@ namespace hgl template T * CreateVADA(const AnsiString &name) ///<创建一个顶点属性缓冲区以及访问器 { - const VkFormat format=vab->GetFormat(name); + const VkFormat format=vil->GetFormat(name); if(format!=T::GetVulkanFormat()) return(nullptr); @@ -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 Primitive * Finish(); ///<结束并创建可渲染对象 + virtual Primitive * Finish(); ///<结束并创建可渲染对象 };//class PrimitiveCreater }//namespace graph }//namespace hgl diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index 99ded141..53cc4ff2 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -125,10 +125,10 @@ public: CompOperatorMemcmp(const VAConfig &); }; -using VABConfigInfo=Map; +using VILConfig=Map; -class VertexAttributeBinding; -using VAB=VertexAttributeBinding; +class VertexInputLayout; +using VIL=VertexInputLayout; class Primitive; class Renderable; diff --git a/inc/hgl/graph/VKDevice.h b/inc/hgl/graph/VKDevice.h index e56010dd..1a267efb 100644 --- a/inc/hgl/graph/VKDevice.h +++ b/inc/hgl/graph/VKDevice.h @@ -229,7 +229,7 @@ public: //shader & material Material *CreateMaterial(const UTF8String &mtl_name,const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module,MaterialDescriptorSets *); Material *CreateMaterial(const UTF8String &mtl_name,const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module,MaterialDescriptorSets *); - MaterialInstance *CreateMI(Material *,const VABConfigInfo *vab_cfg=nullptr); + MaterialInstance *CreateMI(Material *,const VILConfig *vil_cfg=nullptr); public: //Command Buffer 相关 diff --git a/inc/hgl/graph/VKMaterialInstance.h b/inc/hgl/graph/VKMaterialInstance.h index f6008c8f..976f7bc2 100644 --- a/inc/hgl/graph/VKMaterialInstance.h +++ b/inc/hgl/graph/VKMaterialInstance.h @@ -8,7 +8,7 @@ class MaterialInstance { Material *material; - VAB *vab; + VIL *vil; MaterialParameters *mp_value; @@ -16,7 +16,7 @@ private: friend class GPUDevice; - MaterialInstance(Material *,VAB *,MaterialParameters *); + MaterialInstance(Material *,VIL *,MaterialParameters *); public: @@ -24,7 +24,7 @@ public: Material *GetMaterial(){return material;} - const VAB *GetVAB()const{return vab;} + const VIL *GetVIL()const{return vil;} MaterialParameters *GetMP(){return mp_value;} MaterialParameters *GetMP(const DescriptorSetsType &type); diff --git a/inc/hgl/graph/VKRenderPass.h b/inc/hgl/graph/VKRenderPass.h index 4bc48f4e..f8be2043 100644 --- a/inc/hgl/graph/VKRenderPass.h +++ b/inc/hgl/graph/VKRenderPass.h @@ -25,7 +25,7 @@ protected: ObjectList pipeline_list; - Pipeline *CreatePipeline(Material *,PipelineData *,const VAB *); + Pipeline *CreatePipeline(Material *,PipelineData *,const VIL *); private: diff --git a/inc/hgl/graph/VKRenderResource.h b/inc/hgl/graph/VKRenderResource.h index 1f0bb172..0b36e48d 100644 --- a/inc/hgl/graph/VKRenderResource.h +++ b/inc/hgl/graph/VKRenderResource.h @@ -90,8 +90,8 @@ public: //Material const ShaderModule *CreateShaderModule(const OSString &filename,ShaderResource *shader_resource); Material * CreateMaterial(const OSString &); - MaterialInstance * CreateMaterialInstance(Material *,const VABConfigInfo *vab_cfg=nullptr); - MaterialInstance * CreateMaterialInstance(const OSString &,const VABConfigInfo *vab_cfg=nullptr); + MaterialInstance * CreateMaterialInstance(Material *,const VILConfig *vil_cfg=nullptr); + MaterialInstance * CreateMaterialInstance(const OSString &,const VILConfig *vil_cfg=nullptr); Primitive * CreatePrimitive(const uint32_t vertex_count=0); diff --git a/inc/hgl/graph/VKShaderModule.h b/inc/hgl/graph/VKShaderModule.h index e102826f..1fabc45e 100644 --- a/inc/hgl/graph/VKShaderModule.h +++ b/inc/hgl/graph/VKShaderModule.h @@ -62,7 +62,7 @@ class VertexShaderModule:public ShaderModule private: - SortedSets vab_sets; + SortedSets vil_sets; public: @@ -87,9 +87,9 @@ public: public: - VAB * CreateVAB(const VABConfigInfo *format_map=nullptr); - bool Release(VAB *); - const uint32_t GetInstanceCount()const{return vab_sets.GetCount();} + VIL * CreateVIL(const VILConfig *format_map=nullptr); + bool Release(VIL *); + const uint32_t GetInstanceCount()const{return vil_sets.GetCount();} };//class VertexShaderModule:public ShaderModule VK_NAMESPACE_END #endif//HGL_GRAPH_VULKAN_SHADER_MODULE_INCLUDE diff --git a/src/SceneGraph/InlineGeometry.cpp b/src/SceneGraph/InlineGeometry.cpp index c0902aa6..93ce1768 100644 --- a/src/SceneGraph/InlineGeometry.cpp +++ b/src/SceneGraph/InlineGeometry.cpp @@ -14,9 +14,9 @@ namespace hgl { namespace inline_geometry { - Primitive *CreateRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci) + Primitive *CreateRectangle(RenderResource *db,const VIL *vil,const RectangleCreateInfo *rci) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); if(!rc.Init(4)) return(nullptr); @@ -31,18 +31,18 @@ namespace hgl return rc.Finish(); } - Primitive *CreateGBufferCompositionRectangle(RenderResource *db,const VAB *vab) + Primitive *CreateGBufferCompositionRectangle(RenderResource *db,const VIL *vil) { RectangleCreateInfo rci; rci.scope.Set(-1,-1,2,2); - return CreateRectangle(db,vab,&rci); + return CreateRectangle(db,vil,&rci); } - Primitive *CreateRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci) + Primitive *CreateRoundRectangle(RenderResource *db,const VIL *vil,const RoundRectangleCreateInfo *rci) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); if(rci->radius==0||rci->round_per<=1) //这是要画矩形 { @@ -114,9 +114,9 @@ namespace hgl return rc.Finish(); } - Primitive *CreateCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci) + Primitive *CreateCircle(RenderResource *db,const VIL *vil,const CircleCreateInfo *cci) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); uint edge; @@ -162,9 +162,9 @@ namespace hgl return rc.Finish(); } - Primitive *CreatePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci) + Primitive *CreatePlaneGrid(RenderResource *db,const VIL *vil,const PlaneGridCreateInfo *pgci) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); if(!rc.Init(((pgci->step.x+1)+(pgci->step.y+1))*2)) return(nullptr); @@ -209,14 +209,14 @@ namespace hgl return rc.Finish(); } - Primitive *CreatePlane(RenderResource *db,const VAB *vab,const PlaneCreateInfo *pci) + Primitive *CreatePlane(RenderResource *db,const VIL *vil,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 }; const Vector3f xy_normal(0.0f,0.0f,1.0f); const Vector3f xy_tangent(1.0f,0.0f,0.0f); - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); if(!rc.Init(4)) return(nullptr); @@ -250,7 +250,7 @@ namespace hgl return rc.Finish(); } - Primitive *CreateCube(RenderResource *db,const VAB *vab,const CubeCreateInfo *cci) + Primitive *CreateCube(RenderResource *db,const VIL *vil,const CubeCreateInfo *cci) { /** * 4 5 @@ -303,7 +303,7 @@ namespace hgl 16, 17, 18, 16, 18, 19, 20, 23, 22, 20, 22, 21}; - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); if(!rc.Init(24)) return(nullptr); @@ -442,9 +442,9 @@ namespace hgl * @param numberSlices 切片数 * @return 可渲染数据 */ - Primitive *CreateSphere(RenderResource *db,const VAB *vab,const uint numberSlices) + Primitive *CreateSphere(RenderResource *db,const VIL *vil,const uint numberSlices) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); uint numberParallels = (numberSlices+1) / 2; uint numberVertices = (numberParallels + 1) * (numberSlices + 1); @@ -518,9 +518,9 @@ namespace hgl return rc.Finish(); } - Primitive *CreateDome(RenderResource *db,const VAB *vab,const uint numberSlices) + Primitive *CreateDome(RenderResource *db,const VIL *vil,const uint numberSlices) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); uint i, j; @@ -639,9 +639,9 @@ namespace hgl } }//namespace - Primitive *CreateTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci) + Primitive *CreateTorus(RenderResource *db,const VIL *vil,const TorusCreateInfo *tci) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); // s, t = parametric values of the equations, in the range [0,1] float s = 0; @@ -795,14 +795,14 @@ namespace hgl } }//namespace - Primitive *CreateCylinder(RenderResource *db,const VAB *vab,const CylinderCreateInfo *cci) + Primitive *CreateCylinder(RenderResource *db,const VIL *vil,const CylinderCreateInfo *cci) { uint numberIndices = cci->numberSlices * 3 * 2 + cci->numberSlices * 6; if(numberIndices<=0) return(nullptr); - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); uint numberVertices = (cci->numberSlices + 2) * 2 + (cci->numberSlices + 1) * 2; @@ -1014,9 +1014,9 @@ namespace hgl } }//namespace - Primitive *CreateCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci) + Primitive *CreateCone(RenderResource *db,const VIL *vil,const ConeCreateInfo *cci) { - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); uint i, j; @@ -1141,11 +1141,11 @@ namespace hgl return rc.Finish(); } - Primitive *CreateAxis(RenderResource *db,const VAB *vab,const AxisCreateInfo *aci) + Primitive *CreateAxis(RenderResource *db,const VIL *vil,const AxisCreateInfo *aci) { - if(!db||!vab||!aci)return(nullptr); + if(!db||!vil||!aci)return(nullptr); - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); if(!rc.Init(6)) return(nullptr); @@ -1168,7 +1168,7 @@ namespace hgl return rc.Finish(); } - Primitive *CreateBoundingBox(RenderResource *db,const VAB *vab,const BoundingBoxCreateInfo *cci) + Primitive *CreateBoundingBox(RenderResource *db,const VIL *vil,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, @@ -1190,7 +1190,7 @@ namespace hgl 0,4, 1,5, 2,6, 3,7 }; - PrimitiveCreater rc(db,vab); + PrimitiveCreater rc(db,vil); if(!rc.Init(8)) return(nullptr); diff --git a/src/SceneGraph/PrimitiveCreater.cpp b/src/SceneGraph/PrimitiveCreater.cpp index 695db05f..b86789b6 100644 --- a/src/SceneGraph/PrimitiveCreater.cpp +++ b/src/SceneGraph/PrimitiveCreater.cpp @@ -5,10 +5,10 @@ namespace hgl { namespace graph { - PrimitiveCreater::PrimitiveCreater(RenderResource *sdb,const VAB *v) + PrimitiveCreater::PrimitiveCreater(RenderResource *sdb,const VIL *v) { db =sdb; - vab =v; + vil =v; vertices_number =0; ibo =nullptr; @@ -25,10 +25,10 @@ namespace hgl VAD *PrimitiveCreater::CreateVAD(const AnsiString &name) { - if(!vab)return(nullptr); + if(!vil)return(nullptr); if(name.IsEmpty())return(nullptr); - const auto *va=vab->GetVertexAttribute(name); + const auto *va=vil->GetConfig(name); if(!va) return(nullptr); @@ -58,7 +58,7 @@ namespace hgl bool PrimitiveCreater::WriteVAD(const AnsiString &name,const void *data,const uint32_t bytes) { - if(!vab)return(false); + if(!vil)return(false); if(name.IsEmpty())return(false); if(!data)return(false); if(!bytes)return(false); @@ -68,7 +68,7 @@ namespace hgl if(ssb_map.Get(name,ssb)) return false; - const auto *va=vab->GetVertexAttribute(name); + const auto *va=vil->GetConfig(name); if(!va) return(false); @@ -107,7 +107,7 @@ namespace hgl Primitive *PrimitiveCreater::Finish() { - const uint si_count=vab->GetVertexAttrCount(); + const uint si_count=vil->GetAttrCount(); if(ssb_map.GetCount()!=si_count) return(nullptr); diff --git a/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp b/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp index 51a5da12..ab5d9879 100644 --- a/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceMaterial.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include"VKPipelineLayoutData.h" VK_NAMESPACE_BEGIN diff --git a/src/SceneGraph/Vulkan/VKMaterialInstance.cpp b/src/SceneGraph/Vulkan/VKMaterialInstance.cpp index d634ea17..26848788 100644 --- a/src/SceneGraph/Vulkan/VKMaterialInstance.cpp +++ b/src/SceneGraph/Vulkan/VKMaterialInstance.cpp @@ -5,26 +5,26 @@ #include VK_NAMESPACE_BEGIN -MaterialInstance *GPUDevice::CreateMI(Material *mtl,const VABConfigInfo *vab_cfg) +MaterialInstance *GPUDevice::CreateMI(Material *mtl,const VILConfig *vil_cfg) { if(!mtl)return(nullptr); VertexShaderModule *vsm=mtl->GetVertexShaderModule(); - VAB *vab=vsm->CreateVAB(vab_cfg); + VIL *vil=vsm->CreateVIL(vil_cfg); - if(!vab)return(nullptr); + if(!vil)return(nullptr); MaterialParameters *mp=CreateMP(mtl,DescriptorSetsType::Value); - return(new MaterialInstance(mtl,vab,mp)); + return(new MaterialInstance(mtl,vil,mp)); } -MaterialInstance::MaterialInstance(Material *mtl,VAB *v,MaterialParameters *p) +MaterialInstance::MaterialInstance(Material *mtl,VIL *v,MaterialParameters *p) { material=mtl; - vab=v; + vil=v; mp_value=p; } diff --git a/src/SceneGraph/Vulkan/VKPrimitive.cpp b/src/SceneGraph/Vulkan/VKPrimitive.cpp index 6985d9d6..9e60effa 100644 --- a/src/SceneGraph/Vulkan/VKPrimitive.cpp +++ b/src/SceneGraph/Vulkan/VKPrimitive.cpp @@ -4,19 +4,19 @@ #include VK_NAMESPACE_BEGIN -//bool Renderable::Set(const int stage_input_binding,VAB *vab,VkDeviceSize offset) +//bool Renderable::Set(const int stage_input_binding,VIL *vil,VkDeviceSize offset) //{ -// if(stage_input_binding<0||stage_input_binding>=buf_count||!vab)return(false); +// if(stage_input_binding<0||stage_input_binding>=buf_count||!vil)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); +// if(vil->GetFormat()!=attr->format)return(false); +// if(vil->GetStride()!=desc->stride)return(false); // // //format信息来自于shader,实际中可以不一样。但那样需要为每一个格式产生一个同样shader的material instance,不同的格式又需要不同的pipeline,我们不支持这种行为 // -// buf_list[stage_input_binding]=vab->GetBuffer(); +// buf_list[stage_input_binding]=vil->GetBuffer(); // buf_offset[stage_input_binding]=offset; // // return(true); diff --git a/src/SceneGraph/Vulkan/VKRenderPass.cpp b/src/SceneGraph/Vulkan/VKRenderPass.cpp index f0e7895c..bfaffff0 100644 --- a/src/SceneGraph/Vulkan/VKRenderPass.cpp +++ b/src/SceneGraph/Vulkan/VKRenderPass.cpp @@ -23,12 +23,12 @@ RenderPass::~RenderPass() vkDestroyRenderPass(device,render_pass,nullptr); } -Pipeline *RenderPass::CreatePipeline(Material *mtl,PipelineData *pd,const VAB *vab) +Pipeline *RenderPass::CreatePipeline(Material *mtl,PipelineData *pd,const VIL *vil) { VkPipeline graphicsPipeline; pd->InitShaderStage(mtl->GetStageList()); - pd->InitVertexInputState(vab); + pd->InitVertexInputState(vil); pd->SetColorAttachments(color_formats.GetCount()); @@ -58,7 +58,7 @@ Pipeline *RenderPass::CreatePipeline(MaterialInstance *mi,const PipelineData *da PipelineData *pd=new PipelineData(data); - return CreatePipeline(mtl,pd,mi->GetVAB()); + return CreatePipeline(mtl,pd,mi->GetVIL()); } Pipeline *RenderPass::CreatePipeline(MaterialInstance *mi,const InlinePipeline &ip) @@ -80,7 +80,7 @@ Pipeline *RenderPass::CreatePipeline(MaterialInstance *mi,const InlinePipeline & pd->Set(prim,prim_restart); - Pipeline *p=CreatePipeline(mi->GetMaterial(),pd,mi->GetVAB()); + Pipeline *p=CreatePipeline(mi->GetMaterial(),pd,mi->GetVIL()); if(p) pipeline_list.Add(p); @@ -94,7 +94,7 @@ Pipeline *RenderPass::CreatePipeline(MaterialInstance *mi,const PipelineData *cp pd->Set(prim,prim_restart); - Pipeline *p=CreatePipeline(mi->GetMaterial(),pd,mi->GetVAB()); + Pipeline *p=CreatePipeline(mi->GetMaterial(),pd,mi->GetVIL()); if(p) pipeline_list.Add(p); diff --git a/src/SceneGraph/Vulkan/VKRenderResource.cpp b/src/SceneGraph/Vulkan/VKRenderResource.cpp index ce5d67c3..bc08a62e 100644 --- a/src/SceneGraph/Vulkan/VKRenderResource.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResource.cpp @@ -50,11 +50,11 @@ IndexBuffer *RenderResource::CreateIBO(IndexType index_type,uint32_t count,const return(buf); } -MaterialInstance *RenderResource::CreateMaterialInstance(Material *mtl,const VABConfigInfo *vab_cfg) +MaterialInstance *RenderResource::CreateMaterialInstance(Material *mtl,const VILConfig *vil_cfg) { if(!mtl)return(nullptr); - MaterialInstance *mi=device->CreateMI(mtl,vab_cfg); + MaterialInstance *mi=device->CreateMI(mtl,vil_cfg); if(mi) Add(mi); @@ -62,14 +62,14 @@ MaterialInstance *RenderResource::CreateMaterialInstance(Material *mtl,const VAB return mi; } -MaterialInstance *RenderResource::CreateMaterialInstance(const OSString &mtl_filename,const VABConfigInfo *vab_cfg) +MaterialInstance *RenderResource::CreateMaterialInstance(const OSString &mtl_filename,const VILConfig *vil_cfg) { Material *mtl=this->CreateMaterial(mtl_filename); if(!mtl) return(nullptr); - return CreateMaterialInstance(mtl,vab_cfg); + return CreateMaterialInstance(mtl,vil_cfg); } Primitive *RenderResource::CreatePrimitive(const uint32_t vertex_count) diff --git a/src/SceneGraph/Vulkan/VKRenderable.cpp b/src/SceneGraph/Vulkan/VKRenderable.cpp index da99c89c..673cda8d 100644 --- a/src/SceneGraph/Vulkan/VKRenderable.cpp +++ b/src/SceneGraph/Vulkan/VKRenderable.cpp @@ -36,8 +36,8 @@ Renderable *CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p) { if(!r||!mi||!p)return(nullptr); - const VAB *vab=mi->GetVAB(); - const int input_count=vab->GetVertexAttrCount(); + const VIL *vil=mi->GetVIL(); + const int input_count=vil->GetAttrCount(); const UTF8String &mtl_name=mi->GetMaterial()->GetName(); if(r->GetBufferCount() buffer_size(input_count); VBO *vbo; - const AnsiString ** name_list=vab->GetVertexNameList(); - const VkVertexInputBindingDescription * bind_list=vab->GetVertexBindingList(); - const VkVertexInputAttributeDescription * attr_list=vab->GetVertexAttributeList(); + const AnsiString ** name_list=vil->GetNameList(); + const VkVertexInputBindingDescription * bind_list=vil->GetBindingList(); + const VkVertexInputAttributeDescription * attr_list=vil->GetAttributeList(); for(int i=0;i -#include +#include #include VK_NAMESPACE_BEGIN @@ -60,7 +60,7 @@ VertexShaderModule::VertexShaderModule(VkDevice dev,VkPipelineShaderStageCreateI VertexShaderModule::~VertexShaderModule() { - if(vab_sets.GetCount()>0) + if(vil_sets.GetCount()>0) { //还有在用的,这是个错误 } @@ -69,7 +69,7 @@ VertexShaderModule::~VertexShaderModule() delete[] name_list; } -VAB *VertexShaderModule::CreateVAB(const VABConfigInfo *cfg) +VIL *VertexShaderModule::CreateVIL(const VILConfig *cfg) { VkVertexInputBindingDescription *binding_list=new VkVertexInputBindingDescription[attr_count]; VkVertexInputAttributeDescription *attribute_list=new VkVertexInputAttributeDescription[attr_count]; @@ -126,15 +126,15 @@ VAB *VertexShaderModule::CreateVAB(const VABConfigInfo *cfg) ++si; } - VAB *vab=new VAB(attr_count,name_list,type_list,binding_list,attribute_list); + VIL *vil=new VIL(attr_count,name_list,type_list,binding_list,attribute_list); - vab_sets.Add(vab); + vil_sets.Add(vil); - return(vab); + return(vil); } -bool VertexShaderModule::Release(VAB *vab) +bool VertexShaderModule::Release(VIL *vil) { - return vab_sets.Delete(vab); + return vil_sets.Delete(vil); } VK_NAMESPACE_END diff --git a/src/SceneGraph/font/TextRender.cpp b/src/SceneGraph/font/TextRender.cpp index c5c51664..fb9d51a4 100644 --- a/src/SceneGraph/font/TextRender.cpp +++ b/src/SceneGraph/font/TextRender.cpp @@ -84,15 +84,15 @@ namespace hgl //文本渲染Position坐标全部是使用整数,这里强制要求Position输入流使用RGBA16I格式 { - VABConfigInfo vab_config; + VILConfig vil_config; VAConfig va_cfg; va_cfg.format=VF_V4I16; va_cfg.instance=false; - vab_config.Add("Position",va_cfg); + vil_config.Add("Position",va_cfg); - material_instance=db->CreateMaterialInstance(material,&vab_config); + material_instance=db->CreateMaterialInstance(material,&vil_config); if(!material_instance)return(false); }