diff --git a/CMSceneGraph b/CMSceneGraph index b7789d3b..6e30c0c2 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit b7789d3b190855d3af0146b34af84f0247b5d242 +Subproject commit 6e30c0c2ca4056b0593ea0d1770bd7485c2b2d6c diff --git a/inc/hgl/shadergen/ShaderCreaterFragment.h b/inc/hgl/shadergen/ShaderCreaterFragment.h index 295b9e8a..6f90db14 100644 --- a/inc/hgl/shadergen/ShaderCreaterFragment.h +++ b/inc/hgl/shadergen/ShaderCreaterFragment.h @@ -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){} diff --git a/src/ShaderGen/ShaderCreaterFragment.cpp b/src/ShaderGen/ShaderCreaterFragment.cpp index 78f7405f..c22d2f9b 100644 --- a/src/ShaderGen/ShaderCreaterFragment.cpp +++ b/src/ShaderGen/ShaderCreaterFragment.cpp @@ -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;iname; + 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;iname; + final_shader+=";\n"; + + ++o; + } + + return(true); +} SHADERGEN_NAMESPACE_END \ No newline at end of file