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