moved Create to StdMaterial from Std2DMaterial and Std3DMaterial
This commit is contained in:
parent
695f1a22a8
commit
9a5cead33e
@ -27,9 +27,14 @@ namespace hgl
|
|||||||
}//namespace func
|
}//namespace func
|
||||||
|
|
||||||
class MaterialCreateInfo;
|
class MaterialCreateInfo;
|
||||||
|
struct MaterialCreateConfig;
|
||||||
|
|
||||||
class StdMaterial
|
class StdMaterial
|
||||||
{
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
MaterialCreateInfo *mci;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual bool BeginCustomShader(){return true;/*some work before creating shader*/};
|
virtual bool BeginCustomShader(){return true;/*some work before creating shader*/};
|
||||||
@ -42,10 +47,10 @@ namespace hgl
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
StdMaterial()=default;
|
StdMaterial(const MaterialCreateConfig *);
|
||||||
virtual ~StdMaterial()=default;
|
virtual ~StdMaterial()=default;
|
||||||
|
|
||||||
virtual MaterialCreateInfo *Create()=0;
|
virtual MaterialCreateInfo *Create();
|
||||||
};//class StdMaterial
|
};//class StdMaterial
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,14 +6,6 @@
|
|||||||
#include"common/MFRectPrimitive.h"
|
#include"common/MFRectPrimitive.h"
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
Std2DMaterial::Std2DMaterial(const Material2DCreateConfig *c)
|
|
||||||
{
|
|
||||||
mci=new MaterialCreateInfo(c);
|
|
||||||
|
|
||||||
cfg=c;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Std2DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
bool Std2DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
||||||
{
|
{
|
||||||
RANGE_CHECK_RETURN_FALSE(cfg->coordinate_system)
|
RANGE_CHECK_RETURN_FALSE(cfg->coordinate_system)
|
||||||
@ -50,30 +42,4 @@ bool Std2DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
|||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialCreateInfo *Std2DMaterial::Create()
|
|
||||||
{
|
|
||||||
if(!BeginCustomShader())
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(mci->hasVertex())
|
|
||||||
if(!CustomVertexShader(mci->GetVS()))
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(mci->hasGeometry())
|
|
||||||
if(!CustomGeometryShader(mci->GetGS()))
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(mci->hasFragment())
|
|
||||||
if(!CustomFragmentShader(mci->GetFS()))
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(!EndCustomShader())
|
|
||||||
return(false);
|
|
||||||
|
|
||||||
if(!mci->CreateShader())
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
return(mci);
|
|
||||||
}
|
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
||||||
|
@ -1,29 +1,24 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include<hgl/graph/mtl/StdMaterial.h>
|
#include<hgl/graph/mtl/StdMaterial.h>
|
||||||
|
#include<hgl/graph/mtl/Material2DCreateConfig.h>
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
struct Material2DCreateConfig;
|
|
||||||
|
|
||||||
class Std2DMaterial:public StdMaterial
|
class Std2DMaterial:public StdMaterial
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const Material2DCreateConfig *cfg;
|
const Material2DCreateConfig *cfg;
|
||||||
|
|
||||||
MaterialCreateInfo *mci;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override;
|
virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Std2DMaterial(const Material2DCreateConfig *);
|
Std2DMaterial(const Material2DCreateConfig *c):StdMaterial(c){cfg=c;}
|
||||||
virtual ~Std2DMaterial()=default;
|
virtual ~Std2DMaterial()=default;
|
||||||
|
|
||||||
virtual MaterialCreateInfo *Create() override;
|
|
||||||
};//class Std2DMaterial
|
};//class Std2DMaterial
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
||||||
|
@ -7,13 +7,6 @@
|
|||||||
#include"common/MFRectPrimitive.h"
|
#include"common/MFRectPrimitive.h"
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
Std3DMaterial::Std3DMaterial(const Material3DCreateConfig *c)
|
|
||||||
{
|
|
||||||
mci=new MaterialCreateInfo(c);
|
|
||||||
|
|
||||||
cfg=c;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Std3DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
bool Std3DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
||||||
{
|
{
|
||||||
vsc->AddInput(cfg->position_format,VAN::Position);
|
vsc->AddInput(cfg->position_format,VAN::Position);
|
||||||
@ -50,30 +43,4 @@ bool Std3DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
|||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialCreateInfo *Std3DMaterial::Create()
|
|
||||||
{
|
|
||||||
if(!BeginCustomShader())
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(mci->hasVertex())
|
|
||||||
if(!CustomVertexShader(mci->GetVS()))
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(mci->hasGeometry())
|
|
||||||
if(!CustomGeometryShader(mci->GetGS()))
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(mci->hasFragment())
|
|
||||||
if(!CustomFragmentShader(mci->GetFS()))
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
if(!EndCustomShader())
|
|
||||||
return(false);
|
|
||||||
|
|
||||||
if(!mci->CreateShader())
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
return(mci);
|
|
||||||
}
|
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
||||||
|
@ -1,29 +1,24 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include<hgl/graph/mtl/StdMaterial.h>
|
#include<hgl/graph/mtl/StdMaterial.h>
|
||||||
|
#include<hgl/graph/mtl/Material3DCreateConfig.h>
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
struct Material3DCreateConfig;
|
|
||||||
|
|
||||||
class Std3DMaterial:public StdMaterial
|
class Std3DMaterial:public StdMaterial
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const Material3DCreateConfig *cfg;
|
const Material3DCreateConfig *cfg;
|
||||||
|
|
||||||
MaterialCreateInfo *mci;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override;
|
virtual bool CustomVertexShader(ShaderCreateInfoVertex *) override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Std3DMaterial(const Material3DCreateConfig *);
|
Std3DMaterial(const Material3DCreateConfig *c):StdMaterial(c){cfg=c;}
|
||||||
virtual ~Std3DMaterial()=default;
|
virtual ~Std3DMaterial()=default;
|
||||||
|
|
||||||
virtual MaterialCreateInfo *Create() override;
|
|
||||||
};//class Std3DMaterial
|
};//class Std3DMaterial
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
@ -1,9 +1,37 @@
|
|||||||
#include<hgl/graph/mtl/StdMaterial.h>
|
#include<hgl/graph/mtl/StdMaterial.h>
|
||||||
|
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
namespace
|
StdMaterial::StdMaterial(const MaterialCreateConfig *mcc)
|
||||||
{
|
{
|
||||||
}//namespace
|
mci=new MaterialCreateInfo(mcc);
|
||||||
|
}
|
||||||
|
|
||||||
|
MaterialCreateInfo *StdMaterial::Create()
|
||||||
|
{
|
||||||
|
if(!BeginCustomShader())
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
if(mci->hasVertex())
|
||||||
|
if(!CustomVertexShader(mci->GetVS()))
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
if(mci->hasGeometry())
|
||||||
|
if(!CustomGeometryShader(mci->GetGS()))
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
if(mci->hasFragment())
|
||||||
|
if(!CustomFragmentShader(mci->GetFS()))
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
if(!EndCustomShader())
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
if(!mci->CreateShader())
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
return(mci);
|
||||||
|
}
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
||||||
|
Loading…
x
Reference in New Issue
Block a user