diff --git a/inc/hgl/graph/mtl/StdMaterial.h b/inc/hgl/graph/mtl/StdMaterial.h index e22d245b..4abe0f56 100644 --- a/inc/hgl/graph/mtl/StdMaterial.h +++ b/inc/hgl/graph/mtl/StdMaterial.h @@ -10,16 +10,41 @@ #define STD_MTL_FUNC NAMESPACE_USING using namespace hgl::graph::mtl::func; - namespace hgl { namespace graph { + class ShaderCreateInfoVertex; + class ShaderCreateInfoGeometry; + class ShaderCreateInfoFragment; + namespace mtl { namespace func { }//namespace func + + class MaterialCreateInfo; + + class StdMaterial + { + protected: + + virtual bool BeginCustomShader(){return true;/*some work before creating shader*/}; + + virtual bool CustomVertexShader(ShaderCreateInfoVertex *)=0; + virtual bool CustomGeometryShader(ShaderCreateInfoGeometry *){return false;} + virtual bool CustomFragmentShader(ShaderCreateInfoFragment *)=0; + + virtual bool EndCustomShader(){return true;/*some work after creating shader*/}; + + public: + + StdMaterial()=default; + virtual ~StdMaterial()=default; + + virtual MaterialCreateInfo *Create()=0; + };//class StdMaterial }//namespace mtl }//namespace graph }//namespace hgl diff --git a/src/ShaderGen/2d/Std2DMaterial.cpp b/src/ShaderGen/2d/Std2DMaterial.cpp index 563c44a7..f54b9cdb 100644 --- a/src/ShaderGen/2d/Std2DMaterial.cpp +++ b/src/ShaderGen/2d/Std2DMaterial.cpp @@ -6,6 +6,7 @@ #include"common/MFRectPrimitive.h" STD_MTL_NAMESPACE_BEGIN + Std2DMaterial::Std2DMaterial(const Material2DCreateConfig *c) { mci=new MaterialCreateInfo(c); diff --git a/src/ShaderGen/2d/Std2DMaterial.h b/src/ShaderGen/2d/Std2DMaterial.h index 5338fd58..7062aaeb 100644 --- a/src/ShaderGen/2d/Std2DMaterial.h +++ b/src/ShaderGen/2d/Std2DMaterial.h @@ -2,46 +2,28 @@ #include -namespace hgl +STD_MTL_NAMESPACE_BEGIN + +struct Material2DCreateConfig; + +class Std2DMaterial:public StdMaterial { - namespace graph - { - struct GPUDeviceAttribute; +protected: - class ShaderCreateInfoVertex; - class ShaderCreateInfoGeometry; - class ShaderCreateInfoFragment; + const Material2DCreateConfig *cfg; - namespace mtl - { - class MaterialCreateInfo; - struct Material2DCreateConfig; + MaterialCreateInfo *mci; - class Std2DMaterial - { - protected: +protected: - const Material2DCreateConfig *cfg; + virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override; - MaterialCreateInfo *mci; +public: - protected: - - virtual bool BeginCustomShader(){return true;/*some work before creating shader*/}; - - virtual bool CustomVertexShader(ShaderCreateInfoVertex *); - virtual bool CustomGeometryShader(ShaderCreateInfoGeometry *){return false;} - virtual bool CustomFragmentShader(ShaderCreateInfoFragment *)=0; - - virtual bool EndCustomShader(){return true;/*some work after creating shader*/}; - - public: - - Std2DMaterial(const Material2DCreateConfig *); - virtual ~Std2DMaterial()=default; + Std2DMaterial(const Material2DCreateConfig *); + virtual ~Std2DMaterial()=default; - virtual MaterialCreateInfo *Create(); - };//class Std2DMaterial - }//namespace mtl - }//namespace graph -}//namespace hgl + virtual MaterialCreateInfo *Create() override; +};//class Std2DMaterial + +STD_MTL_NAMESPACE_END diff --git a/src/ShaderGen/3d/Std3DMaterial.h b/src/ShaderGen/3d/Std3DMaterial.h index 646e3313..491a353c 100644 --- a/src/ShaderGen/3d/Std3DMaterial.h +++ b/src/ShaderGen/3d/Std3DMaterial.h @@ -2,46 +2,28 @@ #include -namespace hgl +STD_MTL_NAMESPACE_BEGIN + +struct Material3DCreateConfig; + +class Std3DMaterial:public StdMaterial { - namespace graph - { - struct GPUDeviceAttribute; +protected: - class ShaderCreateInfoVertex; - class ShaderCreateInfoGeometry; - class ShaderCreateInfoFragment; + const Material3DCreateConfig *cfg; - namespace mtl - { - class MaterialCreateInfo; - struct Material3DCreateConfig; + MaterialCreateInfo *mci; - class Std3DMaterial - { - protected: +protected: - const Material3DCreateConfig *cfg; + virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override; - MaterialCreateInfo *mci; +public: - protected: - - virtual bool BeginCustomShader(){return true;/*some work before creating shader*/}; - - virtual bool CustomVertexShader(ShaderCreateInfoVertex *); - virtual bool CustomGeometryShader(ShaderCreateInfoGeometry *){return false;} - virtual bool CustomFragmentShader(ShaderCreateInfoFragment *)=0; - - virtual bool EndCustomShader(){return true;/*some work after creating shader*/}; - - public: - - Std3DMaterial(const Material3DCreateConfig *); - virtual ~Std3DMaterial()=default; + Std3DMaterial(const Material3DCreateConfig *); + virtual ~Std3DMaterial()=default; - virtual MaterialCreateInfo *Create(); - };//class Std3DMaterial - }//namespace mtl - }//namespace graph -}//namespace hgl + virtual MaterialCreateInfo *Create() override; +};//class Std3DMaterial + +STD_MTL_NAMESPACE_END \ No newline at end of file