From 5ba705cd6b92821e254df4821dc0669920bfd2f8 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Wed, 15 Mar 2023 14:55:10 +0800 Subject: [PATCH] updated layout of codes --- src/ShaderGen/MaterialCreater.cpp | 19 ++++++++----------- src/ShaderGen/ShaderCreater.cpp | 24 ++++++++++++++---------- src/ShaderGen/ShaderCreaterVertex.cpp | 11 ++++++----- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/ShaderGen/MaterialCreater.cpp b/src/ShaderGen/MaterialCreater.cpp index 390518f1..b7dffafb 100644 --- a/src/ShaderGen/MaterialCreater.cpp +++ b/src/ShaderGen/MaterialCreater.cpp @@ -101,22 +101,19 @@ bool MaterialCreater::CreateShader() if(shader_map.IsEmpty()) return(false); - //mdm.Resort(); + mdm.Resort(); ShaderCreater *sc,*last=nullptr; - //for(int i=0;iCreateShader(last); + sc->CreateShader(last); - // last=sc; - //} - - //vert->CreateShader(nullptr); - frag->CreateShader(vert); + last=sc; + } return(true); } diff --git a/src/ShaderGen/ShaderCreater.cpp b/src/ShaderGen/ShaderCreater.cpp index cd2f9ebe..42bc4771 100644 --- a/src/ShaderGen/ShaderCreater.cpp +++ b/src/ShaderGen/ShaderCreater.cpp @@ -238,21 +238,25 @@ bool ShaderCreater::CreateShader(ShaderCreater *last_sc) if(!ProcStruct()) return(false); - //if(!ProcUBO()) - // return(false); - ////if(!ProcSSBO()) - // //return(false); - //if(!ProcConst()) - // return(false); - //if(!ProcSampler()) - // return(false); + if(!ProcUBO()) + return(false); + //if(!ProcSSBO()) + //return(false); + if(!ProcConst()) + return(false); + if(!ProcSampler()) + return(false); ProcOutput(); - final_shader+="\n"; - final_shader+=main_codes; +#ifdef _DEBUG + + LOG_INFO(AnsiString(GetShaderStageName(shader_stage))+" shader: \n"+final_shader); + +#endif//_DEBUG + return(true); } diff --git a/src/ShaderGen/ShaderCreaterVertex.cpp b/src/ShaderGen/ShaderCreaterVertex.cpp index efb4e2d5..cbf4ee3e 100644 --- a/src/ShaderGen/ShaderCreaterVertex.cpp +++ b/src/ShaderGen/ShaderCreaterVertex.cpp @@ -32,17 +32,20 @@ int ShaderCreaterVertex::AddInput(const AnsiString &type,const AnsiString &name) bool ShaderCreaterVertex::ProcInput(ShaderCreater *) { - const auto &io=sdm->GetShaderStageIO(); + const auto &input=sdm->GetShaderStageIO().input; - if(io.input.IsEmpty()) + if(input.IsEmpty()) { //no input ? this isn't a bug. //maybe position info from UBO/SBBO/Texture. return(true); } + if(!input.IsEmpty()) { - for(auto *ss:io.input) + final_shader+="\n"; + + for(auto *ss:input) { final_shader+="layout(location="; final_shader+=UTF8String::numberOf(ss->location); @@ -51,8 +54,6 @@ bool ShaderCreaterVertex::ProcInput(ShaderCreater *) final_shader+=" "+UTF8String(ss->name); final_shader+=";\n"; } - - final_shader+="\n"; } return(true);