Set Base-class StdMaterial to Std2DMaterial/Std3DMaterial

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-10-08 10:04:58 +08:00
parent 8dc9846ae8
commit 0524c51feb
4 changed files with 61 additions and 71 deletions

View File

@ -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

View File

@ -6,6 +6,7 @@
#include"common/MFRectPrimitive.h"
STD_MTL_NAMESPACE_BEGIN
Std2DMaterial::Std2DMaterial(const Material2DCreateConfig *c)
{
mci=new MaterialCreateInfo(c);

View File

@ -2,46 +2,28 @@
#include<hgl/graph/mtl/StdMaterial.h>
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

View File

@ -2,46 +2,28 @@
#include<hgl/graph/mtl/StdMaterial.h>
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