2023-03-21 21:01:16 +08:00
|
|
|
|
#include<hgl/graph/mtl/StdMaterial.h>
|
2023-03-22 02:41:19 +08:00
|
|
|
|
#include<hgl/graph/mtl/2d/VertexColor2D.h>
|
2023-03-21 21:01:16 +08:00
|
|
|
|
#include<hgl/graph/VKMaterial.h>
|
|
|
|
|
#include<hgl/graph/VKDevice.h>
|
|
|
|
|
#include<hgl/shadergen/MaterialCreateInfo.h>
|
|
|
|
|
|
|
|
|
|
STD_MTL_NAMESPACE_BEGIN
|
2023-03-22 02:41:19 +08:00
|
|
|
|
MaterialCreateInfo *CreateVertexColor2D(const CoordinateSystem2D &cs)
|
2023-03-21 21:01:16 +08:00
|
|
|
|
{
|
2023-03-22 02:41:19 +08:00
|
|
|
|
AnsiString mtl_name="VertexColor2D";
|
|
|
|
|
|
|
|
|
|
if(cs==CoordinateSystem2D::NDC)mtl_name+="NDC";else
|
|
|
|
|
if(cs==CoordinateSystem2D::ZeroToOne)mtl_name+="ZeroToOne";else
|
|
|
|
|
if(cs==CoordinateSystem2D::Ortho)mtl_name+="Ortho";else
|
|
|
|
|
return(nullptr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MaterialCreateInfo *mci=new MaterialCreateInfo( mtl_name, ///<名称
|
2023-03-21 21:01:16 +08:00
|
|
|
|
1, ///<最终一个RT输出
|
|
|
|
|
false); ///<无深度输出
|
|
|
|
|
|
2023-03-22 02:41:19 +08:00
|
|
|
|
if(cs==CoordinateSystem2D::Ortho)
|
|
|
|
|
{
|
|
|
|
|
mci->AddStruct(GlobalShaderUBO::ViewportInfo,"");
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-21 21:01:16 +08:00
|
|
|
|
//vertex部分
|
|
|
|
|
{
|
|
|
|
|
ShaderCreateInfoVertex *vsc=mci->GetVS();
|
|
|
|
|
|
|
|
|
|
vsc->AddInput(VAT_VEC2,VAN::Position);
|
|
|
|
|
vsc->AddInput(VAT_VEC4,VAN::Color);
|
|
|
|
|
|
|
|
|
|
vsc->AddOutput(VAT_VEC4,"Color");
|
|
|
|
|
|
|
|
|
|
vsc->SetShaderCodes(R"(
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
Output.Color=Color;
|
|
|
|
|
|
|
|
|
|
gl_Position=vec4(Position,0,1);
|
|
|
|
|
})");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//fragment部分
|
|
|
|
|
{
|
|
|
|
|
ShaderCreateInfoFragment *fsc=mci->GetFS();
|
|
|
|
|
|
|
|
|
|
fsc->AddOutput(VAT_VEC4,"Color");
|
|
|
|
|
|
|
|
|
|
fsc->SetShaderCodes(R"(
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
Color=Input.Color;
|
|
|
|
|
})");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(mci->CreateShader())
|
|
|
|
|
return mci;
|
|
|
|
|
|
|
|
|
|
delete mci;
|
|
|
|
|
return(nullptr);
|
|
|
|
|
}
|
|
|
|
|
STD_MTL_NAMESPACE_END
|