Added ProcOutput() at ShaderCreaterFragment

This commit is contained in:
2023-03-10 01:47:01 +08:00
parent 6ee832c39f
commit 68b24903bb
3 changed files with 32 additions and 3 deletions

View File

@@ -10,6 +10,8 @@ enum class MaterialType
class ShaderCreaterFragment:public ShaderCreater
{
bool ProcOutput() override;
public:
ShaderCreaterFragment(MaterialDescriptorManager *m):ShaderCreater(VK_SHADER_STAGE_FRAGMENT_BIT,m){}

View File

@@ -9,15 +9,42 @@ void ShaderCreaterFragment::UseDefaultMain()
const auto &output_list=sdm.GetShaderStageIO().output;
const uint count=output_list.GetCount();
ShaderStage **o=output_list.GetData();
for(uint i=0;i<count;i++)
{
shader_codes+="\t";
shader_codes+=output_list[i]->name;
shader_codes+=(*o)->name;
shader_codes+="=Get";
shader_codes+=output_list[i]->name;
shader_codes+=(*o)->name;
shader_codes+="();\n";
++o;
}
shader_codes+="}";
}
bool ShaderCreaterFragment::ProcOutput()
{
const auto &output_list=sdm.GetShaderStageIO().output;
const uint count=output_list.GetCount();
ShaderStage **o=output_list.GetData();
for(uint i=0;i<count;i++)
{
final_shader+="layout(location=";
final_shader+=AnsiString::numberOf(i);
final_shader+=") out ";
final_shader+=GetShaderStageTypeName(*o);
final_shader+=" ";
final_shader+=(*o)->name;
final_shader+=";\n";
++o;
}
return(true);
}
SHADERGEN_NAMESPACE_END