Set Base-class StdMaterial to Std2DMaterial/Std3DMaterial
This commit is contained in:
parent
8dc9846ae8
commit
0524c51feb
@ -10,16 +10,41 @@
|
|||||||
|
|
||||||
#define STD_MTL_FUNC NAMESPACE_USING using namespace hgl::graph::mtl::func;
|
#define STD_MTL_FUNC NAMESPACE_USING using namespace hgl::graph::mtl::func;
|
||||||
|
|
||||||
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
namespace graph
|
namespace graph
|
||||||
{
|
{
|
||||||
|
class ShaderCreateInfoVertex;
|
||||||
|
class ShaderCreateInfoGeometry;
|
||||||
|
class ShaderCreateInfoFragment;
|
||||||
|
|
||||||
namespace mtl
|
namespace mtl
|
||||||
{
|
{
|
||||||
namespace func
|
namespace func
|
||||||
{
|
{
|
||||||
}//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 mtl
|
||||||
}//namespace graph
|
}//namespace graph
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include"common/MFRectPrimitive.h"
|
#include"common/MFRectPrimitive.h"
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
Std2DMaterial::Std2DMaterial(const Material2DCreateConfig *c)
|
Std2DMaterial::Std2DMaterial(const Material2DCreateConfig *c)
|
||||||
{
|
{
|
||||||
mci=new MaterialCreateInfo(c);
|
mci=new MaterialCreateInfo(c);
|
||||||
|
@ -2,46 +2,28 @@
|
|||||||
|
|
||||||
#include<hgl/graph/mtl/StdMaterial.h>
|
#include<hgl/graph/mtl/StdMaterial.h>
|
||||||
|
|
||||||
namespace hgl
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
struct Material2DCreateConfig;
|
||||||
|
|
||||||
|
class Std2DMaterial:public StdMaterial
|
||||||
{
|
{
|
||||||
namespace graph
|
protected:
|
||||||
{
|
|
||||||
struct GPUDeviceAttribute;
|
|
||||||
|
|
||||||
class ShaderCreateInfoVertex;
|
const Material2DCreateConfig *cfg;
|
||||||
class ShaderCreateInfoGeometry;
|
|
||||||
class ShaderCreateInfoFragment;
|
|
||||||
|
|
||||||
namespace mtl
|
MaterialCreateInfo *mci;
|
||||||
{
|
|
||||||
class MaterialCreateInfo;
|
|
||||||
struct Material2DCreateConfig;
|
|
||||||
|
|
||||||
class Std2DMaterial
|
protected:
|
||||||
{
|
|
||||||
protected:
|
|
||||||
|
|
||||||
const Material2DCreateConfig *cfg;
|
virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override;
|
||||||
|
|
||||||
MaterialCreateInfo *mci;
|
public:
|
||||||
|
|
||||||
protected:
|
Std2DMaterial(const Material2DCreateConfig *);
|
||||||
|
virtual ~Std2DMaterial()=default;
|
||||||
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;
|
|
||||||
|
|
||||||
virtual MaterialCreateInfo *Create();
|
virtual MaterialCreateInfo *Create() override;
|
||||||
};//class Std2DMaterial
|
};//class Std2DMaterial
|
||||||
}//namespace mtl
|
|
||||||
}//namespace graph
|
STD_MTL_NAMESPACE_END
|
||||||
}//namespace hgl
|
|
||||||
|
@ -2,46 +2,28 @@
|
|||||||
|
|
||||||
#include<hgl/graph/mtl/StdMaterial.h>
|
#include<hgl/graph/mtl/StdMaterial.h>
|
||||||
|
|
||||||
namespace hgl
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
struct Material3DCreateConfig;
|
||||||
|
|
||||||
|
class Std3DMaterial:public StdMaterial
|
||||||
{
|
{
|
||||||
namespace graph
|
protected:
|
||||||
{
|
|
||||||
struct GPUDeviceAttribute;
|
|
||||||
|
|
||||||
class ShaderCreateInfoVertex;
|
const Material3DCreateConfig *cfg;
|
||||||
class ShaderCreateInfoGeometry;
|
|
||||||
class ShaderCreateInfoFragment;
|
|
||||||
|
|
||||||
namespace mtl
|
MaterialCreateInfo *mci;
|
||||||
{
|
|
||||||
class MaterialCreateInfo;
|
|
||||||
struct Material3DCreateConfig;
|
|
||||||
|
|
||||||
class Std3DMaterial
|
protected:
|
||||||
{
|
|
||||||
protected:
|
|
||||||
|
|
||||||
const Material3DCreateConfig *cfg;
|
virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override;
|
||||||
|
|
||||||
MaterialCreateInfo *mci;
|
public:
|
||||||
|
|
||||||
protected:
|
Std3DMaterial(const Material3DCreateConfig *);
|
||||||
|
virtual ~Std3DMaterial()=default;
|
||||||
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;
|
|
||||||
|
|
||||||
virtual MaterialCreateInfo *Create();
|
virtual MaterialCreateInfo *Create() override;
|
||||||
};//class Std3DMaterial
|
};//class Std3DMaterial
|
||||||
}//namespace mtl
|
|
||||||
}//namespace graph
|
STD_MTL_NAMESPACE_END
|
||||||
}//namespace hgl
|
|
Loading…
x
Reference in New Issue
Block a user