From 1d866abb485f297026e596c3120b3c91441288a0 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sat, 7 Oct 2023 23:35:22 +0800 Subject: [PATCH] use List instead of AnsiStringList in ShaderCreateInfo::function_list --- inc/hgl/shadergen/ShaderCreateInfo.h | 8 +++++--- src/ShaderGen/MaterialCreateInfo.cpp | 2 +- src/ShaderGen/ShaderCreateInfo.cpp | 12 +++++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/inc/hgl/shadergen/ShaderCreateInfo.h b/inc/hgl/shadergen/ShaderCreateInfo.h index 0333f1a7..4823a941 100644 --- a/inc/hgl/shadergen/ShaderCreateInfo.h +++ b/inc/hgl/shadergen/ShaderCreateInfo.h @@ -34,7 +34,7 @@ protected: AnsiString mi_codes; - AnsiStringList function_list; + List function_list; AnsiString main_function; AnsiString final_shader; @@ -79,10 +79,12 @@ public: int AddOutput(const graph::VAT &type,const AnsiString &name,Interpolation inter=Interpolation::Smooth); int AddOutput(const AnsiString &type,const AnsiString &name,Interpolation inter=Interpolation::Smooth); - void AddFunction(const AnsiString &str){function_list.Add(str);} - void AddFunction(const AnsiString *str){function_list.Add(*str);} + void AddFunction(const char *str){function_list.Add(str);} + void AddFunction(const AnsiString *str){function_list.Add(str->c_str());} void SetMaterialInstance(UBODescriptor *,const AnsiString &); + void AddMaterialInstanceOutput(); + void SetLocalToWorld(UBODescriptor *); void SetMain(const AnsiString &str){main_function=str;} diff --git a/src/ShaderGen/MaterialCreateInfo.cpp b/src/ShaderGen/MaterialCreateInfo.cpp index c4daba9b..20820740 100644 --- a/src/ShaderGen/MaterialCreateInfo.cpp +++ b/src/ShaderGen/MaterialCreateInfo.cpp @@ -256,7 +256,7 @@ bool MaterialCreateInfo::CreateShader() if(sc->GetShaderStage()AddOutput(VAT_UINT,mtl::func::MaterialInstanceID,Interpolation::Flat); + sc->AddMaterialInstanceOutput(); sc->AddFunction(MF_HandoverMI); } diff --git a/src/ShaderGen/ShaderCreateInfo.cpp b/src/ShaderGen/ShaderCreateInfo.cpp index 61c813fa..6862b064 100644 --- a/src/ShaderGen/ShaderCreateInfo.cpp +++ b/src/ShaderGen/ShaderCreateInfo.cpp @@ -79,7 +79,6 @@ bool ShaderCreateInfo::ProcDefine() AnsiString m; AnsiString v; - for(uint i=0;iAddUBO(DescriptorSetType::PerFrame,ubo); @@ -423,10 +427,8 @@ bool ShaderCreateInfo::CreateShader(ShaderCreateInfo *last_sc) ProcOutput(); - for(int i=0;i