diff --git a/CMCore b/CMCore index b6ee9c81..3b1a62eb 160000 --- a/CMCore +++ b/CMCore @@ -1 +1 @@ -Subproject commit b6ee9c816fee718275fa031e0af4b12bf41276bb +Subproject commit 3b1a62eb78ed7cf3d6d186b8b7e4c7d4b57eba18 diff --git a/example/Vulkan/first_triangle.cpp b/example/Vulkan/first_triangle.cpp index 4d1e9d29..4deb9db6 100644 --- a/example/Vulkan/first_triangle.cpp +++ b/example/Vulkan/first_triangle.cpp @@ -12,7 +12,6 @@ using namespace hgl; using namespace hgl::graph; -using namespace hgl::shadergen; constexpr uint32_t SCREEN_WIDTH=1280; constexpr uint32_t SCREEN_HEIGHT=720; diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index a7c4e697..b17d0306 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -33,11 +33,11 @@ using namespace hgl; using namespace hgl::io; using namespace hgl::graph; -namespace glsl_compiler +namespace hgl{namespace graph { - bool Init(); - void Close(); -}//namespace glsl_compiler + bool InitShaderCompiler(); + void CloseShaderCompiler(); +}}//namespace hgl::graph class VulkanApplicationFramework:WindowEvent { @@ -72,7 +72,7 @@ public: virtual ~VulkanApplicationFramework() { - glsl_compiler::Close(); + CloseShaderCompiler(); win->Unjoin(this); @@ -86,7 +86,7 @@ public: virtual bool Init(int w,int h) { - if(!glsl_compiler::Init()) + if(!InitShaderCompiler()) return(false); clear_color.Set(0,0,0,1); diff --git a/inc/hgl/graph/VKRenderResource.h b/inc/hgl/graph/VKRenderResource.h index 219a987d..137cda47 100644 --- a/inc/hgl/graph/VKRenderResource.h +++ b/inc/hgl/graph/VKRenderResource.h @@ -91,11 +91,11 @@ public: //Material const ShaderModule *CreateShaderModule(const OSString &filename,VkShaderStageFlagBits shader_stage,const uint32_t *spv_data,const size_t spv_size); Material * CreateMaterial(const OSString &); - Material * CreateMaterial(const hgl::shadergen::MaterialCreateInfo *); + Material * CreateMaterial(const MaterialCreateInfo *); MaterialInstance * CreateMaterialInstance(Material *,const VILConfig *vil_cfg=nullptr); MaterialInstance * CreateMaterialInstance(const OSString &,const VILConfig *vil_cfg=nullptr); - MaterialInstance * CreateMaterialInstance(const hgl::shadergen::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr); + MaterialInstance * CreateMaterialInstance(const MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr); Primitive * CreatePrimitive(const uint32_t vertex_count=0); diff --git a/inc/hgl/shadergen/MaterialCreateInfo.h b/inc/hgl/shadergen/MaterialCreateInfo.h index e1b6ea51..cd0eb108 100644 --- a/inc/hgl/shadergen/MaterialCreateInfo.h +++ b/inc/hgl/shadergen/MaterialCreateInfo.h @@ -7,7 +7,7 @@ #include #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ class MaterialCreateInfo { AnsiString shader_name; @@ -60,4 +60,4 @@ public: const MaterialDescriptorInfo &GetMDI()const{return mdm;} };//class MaterialCreateInfo -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/inc/hgl/shadergen/MaterialDescriptorInfo.h b/inc/hgl/shadergen/MaterialDescriptorInfo.h index 90e4a9db..c3123c73 100644 --- a/inc/hgl/shadergen/MaterialDescriptorInfo.h +++ b/inc/hgl/shadergen/MaterialDescriptorInfo.h @@ -1,13 +1,9 @@ #pragma once #include -#include #include -using namespace hgl; -using namespace hgl::graph; - -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ /** * 材质描述符管理

* 该类使用于SHADER生成前,用于统计编号set/binding @@ -66,5 +62,5 @@ public: { return desc_set_array[size_t(type)].count>0; } -}; -SHADERGEN_NAMESPACE_END +};//class MaterialDescriptorInfo +}}//namespace hgl::graph diff --git a/inc/hgl/shadergen/ShaderCreateInfo.h b/inc/hgl/shadergen/ShaderCreateInfo.h index 71e7e31d..a6749fad 100644 --- a/inc/hgl/shadergen/ShaderCreateInfo.h +++ b/inc/hgl/shadergen/ShaderCreateInfo.h @@ -1,15 +1,12 @@ #ifndef HGL_SHADER_CREATE_INFO_INCLUDE #define HGL_SHADER_CREATE_INFO_INCLUDE -#include #include +#include -namespace glsl_compiler +namespace hgl{namespace graph { - struct SPVData; -} - -SHADERGEN_NAMESPACE_BEGIN +struct SPVData; class MaterialDescriptorInfo; class ShaderDescriptorInfo; @@ -30,7 +27,7 @@ protected: AnsiString final_shader; - glsl_compiler::SPVData *spv_data; + SPVData *spv_data; protected: @@ -72,8 +69,8 @@ public: bool CreateShader(ShaderCreateInfo *); - const uint32_t *GetSPVData()const; + const uint32 *GetSPVData()const; const size_t GetSPVSize()const; };//class ShaderCreateInfo -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph #endif//HGL_SHADER_CREATE_INFO_INCLUDE diff --git a/inc/hgl/shadergen/ShaderCreateInfoFragment.h b/inc/hgl/shadergen/ShaderCreateInfoFragment.h index 8848f30e..e036b599 100644 --- a/inc/hgl/shadergen/ShaderCreateInfoFragment.h +++ b/inc/hgl/shadergen/ShaderCreateInfoFragment.h @@ -2,7 +2,7 @@ #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ enum class MaterialType { Color, ///<ɫ @@ -19,4 +19,4 @@ public: void UseDefaultMain(); }; -SHADERGEN_NAMESPACE_END \ No newline at end of file +}}//namespace hgl::graph \ No newline at end of file diff --git a/inc/hgl/shadergen/ShaderCreateInfoGeometry.h b/inc/hgl/shadergen/ShaderCreateInfoGeometry.h index ee89faae..cec45bc0 100644 --- a/inc/hgl/shadergen/ShaderCreateInfoGeometry.h +++ b/inc/hgl/shadergen/ShaderCreateInfoGeometry.h @@ -2,7 +2,7 @@ #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ class ShaderCreateInfoGeometry:public ShaderCreateInfo { public: @@ -10,4 +10,4 @@ public: ShaderCreateInfoGeometry(MaterialDescriptorInfo *m):ShaderCreateInfo(VK_SHADER_STAGE_GEOMETRY_BIT,m){} ~ShaderCreateInfoGeometry()=default; }; -SHADERGEN_NAMESPACE_END \ No newline at end of file +}}//namespace hgl::graph \ No newline at end of file diff --git a/inc/hgl/shadergen/ShaderCreateInfoMap.h b/inc/hgl/shadergen/ShaderCreateInfoMap.h index 84f5f18d..b02f64bb 100644 --- a/inc/hgl/shadergen/ShaderCreateInfoMap.h +++ b/inc/hgl/shadergen/ShaderCreateInfoMap.h @@ -2,7 +2,7 @@ #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ class ShaderCreateInfoMap:public ObjectMap { public: @@ -22,4 +22,4 @@ public: return(true); } }; -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/inc/hgl/shadergen/ShaderCreateInfoVertex.h b/inc/hgl/shadergen/ShaderCreateInfoVertex.h index 30f353c9..c694cf95 100644 --- a/inc/hgl/shadergen/ShaderCreateInfoVertex.h +++ b/inc/hgl/shadergen/ShaderCreateInfoVertex.h @@ -4,7 +4,7 @@ #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ class ShaderCreateInfoVertex:public ShaderCreateInfo { bool ProcInput(ShaderCreateInfo *) override; @@ -17,4 +17,4 @@ public: int AddInput(const graph::VAT &type,const AnsiString &name); int AddInput(const AnsiString &type,const AnsiString &name); }; -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/inc/hgl/shadergen/ShaderDescriptorInfo.h b/inc/hgl/shadergen/ShaderDescriptorInfo.h index 404f3caf..a1fb7977 100644 --- a/inc/hgl/shadergen/ShaderDescriptorInfo.h +++ b/inc/hgl/shadergen/ShaderDescriptorInfo.h @@ -1,14 +1,13 @@ #pragma once -#include #include #include #include #include #include -SHADERGEN_NAMESPACE_BEGIN - +namespace hgl{namespace graph +{ using UBODescriptorList=List; using SamplerDescriptorList=List; using ConstValueDescriptorList=ObjectList; @@ -72,4 +71,4 @@ public: void DebugOutput(int); #endif//_DEBUG };//class ShaderDescriptorInfo -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/inc/hgl/shadergen/ShaderGenNamespace.h b/inc/hgl/shadergen/ShaderGenNamespace.h deleted file mode 100644 index 1230db29..00000000 --- a/inc/hgl/shadergen/ShaderGenNamespace.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef HGL_SHADER_GEN_COMMON_INCLUDE -#define HGL_SHADER_GEN_COMMON_INCLUDE - -#include -#include - -#define SHADERGEN_NAMESPACE_BEGIN namespace hgl{namespace shadergen{ -#define SHADERGEN_NAMESPACE_END }} -#define SHADERGEN_NAMESPACE_USING using namespace hgl::shadergen; - -SHADERGEN_NAMESPACE_BEGIN -SHADERGEN_NAMESPACE_END -#endif//HGL_SHADER_GEN_COMMON_INCLUDE diff --git a/inc/hgl/shadergen/StandardMaterial.h b/inc/hgl/shadergen/StandardMaterial.h index 8aae322e..f75a8fe0 100644 --- a/inc/hgl/shadergen/StandardMaterial.h +++ b/inc/hgl/shadergen/StandardMaterial.h @@ -1,7 +1,7 @@ #include #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ using ParamPreciseFlagBits=uint8; using PPFB=ParamPreciseFlagBits; @@ -101,4 +101,4 @@ public: hgl_zero(*this); } };//struct Standard2DMaterial:public StandardMaterial -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/src/SceneGraph/Vulkan/VKPipelineLayoutData.cpp b/src/SceneGraph/Vulkan/VKPipelineLayoutData.cpp index 985aa3cf..6b5a249a 100644 --- a/src/SceneGraph/Vulkan/VKPipelineLayoutData.cpp +++ b/src/SceneGraph/Vulkan/VKPipelineLayoutData.cpp @@ -69,9 +69,6 @@ PipelineLayoutData *GPUDevice::CreatePipelineLayoutData(const MaterialDescriptor PipelineLayoutData::~PipelineLayoutData() { - if(!pipeline_layout) - return; - vkDestroyPipelineLayout(device,pipeline_layout,nullptr); ENUM_CLASS_FOR(DescriptorSetType,int,i) diff --git a/src/SceneGraph/Vulkan/VKRenderResource.cpp b/src/SceneGraph/Vulkan/VKRenderResource.cpp index 3fb6348e..6319d05c 100644 --- a/src/SceneGraph/Vulkan/VKRenderResource.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResource.cpp @@ -72,7 +72,7 @@ MaterialInstance *RenderResource::CreateMaterialInstance(const OSString &mtl_fil return CreateMaterialInstance(mtl,vil_cfg); } -MaterialInstance *RenderResource::CreateMaterialInstance(const hgl::shadergen::MaterialCreateInfo *mci,const VILConfig *vil_cfg) +MaterialInstance *RenderResource::CreateMaterialInstance(const MaterialCreateInfo *mci,const VILConfig *vil_cfg) { Material *mtl=this->CreateMaterial(mci); diff --git a/src/ShaderGen/CMakeLists.txt b/src/ShaderGen/CMakeLists.txt index 624c86a4..e73fce9b 100644 --- a/src/ShaderGen/CMakeLists.txt +++ b/src/ShaderGen/CMakeLists.txt @@ -21,8 +21,7 @@ SET(MATERIAL_CREATE_INFO_SOURCE_FILES MaterialCreateInfo.cpp) SOURCE_GROUP("Material Create Info" FILES ${MATERIAL_CREATE_INFO_HEADER_FILES} ${MATERIAL_CREATE_INFO_SOURCE_FILES}) -SET(SHADERGEN_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderGenNamespace.h - ${SHADERGEN_INCLUDE_PATH}/ShaderDescriptorInfo.h +SET(SHADERGEN_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderDescriptorInfo.h ${SHADERGEN_INCLUDE_PATH}/MaterialDescriptorInfo.h) SET(SHADERGEN_SOURCE_FILES diff --git a/src/ShaderGen/MaterialCreateInfo.cpp b/src/ShaderGen/MaterialCreateInfo.cpp index 7409ccce..87f169ec 100644 --- a/src/ShaderGen/MaterialCreateInfo.cpp +++ b/src/ShaderGen/MaterialCreateInfo.cpp @@ -4,7 +4,7 @@ using namespace hgl; using namespace hgl::graph; -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ MaterialCreateInfo::MaterialCreateInfo(const AnsiString &n,const uint rc,const bool rd,const uint32 ss) { shader_name=n; @@ -119,4 +119,4 @@ bool MaterialCreateInfo::CreateShader() return(true); } -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/src/ShaderGen/MaterialDescriptorInfo.cpp b/src/ShaderGen/MaterialDescriptorInfo.cpp index fbae964c..d455f345 100644 --- a/src/ShaderGen/MaterialDescriptorInfo.cpp +++ b/src/ShaderGen/MaterialDescriptorInfo.cpp @@ -1,6 +1,6 @@ #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ MaterialDescriptorInfo::MaterialDescriptorInfo() { int set_type=(int)DescriptorSetType::BEGIN_RANGE; @@ -103,4 +103,4 @@ void MaterialDescriptorInfo::Resort() } } } -SHADERGEN_NAMESPACE_END \ No newline at end of file +}}//namespace hgl::graph \ No newline at end of file diff --git a/src/ShaderGen/ShaderCreateInfo.cpp b/src/ShaderGen/ShaderCreateInfo.cpp index 560328a3..f69804e1 100644 --- a/src/ShaderGen/ShaderCreateInfo.cpp +++ b/src/ShaderGen/ShaderCreateInfo.cpp @@ -2,7 +2,7 @@ #include #include"GLSLCompiler.h" -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ ShaderCreateInfo::ShaderCreateInfo(VkShaderStageFlagBits ss,MaterialDescriptorInfo *m) { shader_stage=ss; @@ -15,7 +15,7 @@ ShaderCreateInfo::ShaderCreateInfo(VkShaderStageFlagBits ss,MaterialDescriptorIn ShaderCreateInfo::~ShaderCreateInfo() { if(spv_data) - glsl_compiler::Free(spv_data); + FreeSPVData(spv_data); delete sdm; } @@ -274,7 +274,7 @@ bool ShaderCreateInfo::CreateShader(ShaderCreateInfo *last_sc) bool ShaderCreateInfo::CompileToSPV() { - spv_data=glsl_compiler::Compile(shader_stage,final_shader.c_str()); + spv_data=CompileShader(shader_stage,final_shader.c_str()); if(!spv_data) return(false); @@ -282,7 +282,7 @@ bool ShaderCreateInfo::CompileToSPV() return(true); } -const uint32_t *ShaderCreateInfo::GetSPVData()const +const uint32 *ShaderCreateInfo::GetSPVData()const { return spv_data?spv_data->spv_data:nullptr; } @@ -291,4 +291,4 @@ const size_t ShaderCreateInfo::GetSPVSize()const { return spv_data?spv_data->spv_length:0; } -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/src/ShaderGen/ShaderCreateInfoFragment.cpp b/src/ShaderGen/ShaderCreateInfoFragment.cpp index 64224eb9..09f8ff74 100644 --- a/src/ShaderGen/ShaderCreateInfoFragment.cpp +++ b/src/ShaderGen/ShaderCreateInfoFragment.cpp @@ -1,7 +1,7 @@ #include #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ using namespace hgl::graph; @@ -48,4 +48,4 @@ bool ShaderCreateInfoFragment::ProcOutput() return(true); } -SHADERGEN_NAMESPACE_END \ No newline at end of file +}}//namespace hgl::graph \ No newline at end of file diff --git a/src/ShaderGen/ShaderCreateInfoVertex.cpp b/src/ShaderGen/ShaderCreateInfoVertex.cpp index b1bcd755..f34ae562 100644 --- a/src/ShaderGen/ShaderCreateInfoVertex.cpp +++ b/src/ShaderGen/ShaderCreateInfoVertex.cpp @@ -4,7 +4,7 @@ #include #include"GLSLCompiler.h" -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ using namespace hgl; using namespace hgl::graph; @@ -60,4 +60,4 @@ bool ShaderCreateInfoVertex::ProcInput(ShaderCreateInfo *) return(true); } -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph diff --git a/src/ShaderGen/ShaderDescriptorInfo.cpp b/src/ShaderGen/ShaderDescriptorInfo.cpp index ac20b51e..bb94e9c8 100644 --- a/src/ShaderGen/ShaderDescriptorInfo.cpp +++ b/src/ShaderGen/ShaderDescriptorInfo.cpp @@ -1,6 +1,6 @@ #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ ShaderDescriptorInfo::ShaderDescriptorInfo(VkShaderStageFlagBits flag_bit) { stage_flag=flag_bit; @@ -155,4 +155,4 @@ void ShaderDescriptorInfo::DebugOutput(int index) } } #endif//_DEBUG -SHADERGEN_NAMESPACE_END \ No newline at end of file +}}//namespace hgl::graph \ No newline at end of file diff --git a/src/ShaderGen/StandardMaterial.cpp b/src/ShaderGen/StandardMaterial.cpp index 016a6ae2..1b313d55 100644 --- a/src/ShaderGen/StandardMaterial.cpp +++ b/src/ShaderGen/StandardMaterial.cpp @@ -1,7 +1,7 @@ #include -SHADERGEN_NAMESPACE_BEGIN +namespace hgl{namespace graph{ -SHADERGEN_NAMESPACE_END +}}//namespace hgl::graph