40 lines
829 B
C++
40 lines
829 B
C++
#include<hgl/graph/mtl/StdMaterial.h>
|
|
#include<hgl/shadergen/MaterialCreateInfo.h>
|
|
|
|
STD_MTL_NAMESPACE_BEGIN
|
|
|
|
StdMaterial::StdMaterial(const MaterialCreateConfig *mcc)
|
|
{
|
|
mci=new MaterialCreateInfo(mcc);
|
|
}
|
|
|
|
MaterialCreateInfo *StdMaterial::Create(const VulkanDevAttr *dev_attr)
|
|
{
|
|
mci->SetDevice(dev_attr);
|
|
|
|
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
|