use List<const char *> instead of AnsiStringList in ShaderCreateInfo::function_list
This commit is contained in:
parent
ece7912f3c
commit
1d866abb48
@ -34,7 +34,7 @@ protected:
|
|||||||
|
|
||||||
AnsiString mi_codes;
|
AnsiString mi_codes;
|
||||||
|
|
||||||
AnsiStringList function_list;
|
List<const char *> function_list;
|
||||||
AnsiString main_function;
|
AnsiString main_function;
|
||||||
|
|
||||||
AnsiString final_shader;
|
AnsiString final_shader;
|
||||||
@ -79,10 +79,12 @@ public:
|
|||||||
int AddOutput(const graph::VAT &type,const AnsiString &name,Interpolation inter=Interpolation::Smooth);
|
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);
|
int AddOutput(const AnsiString &type,const AnsiString &name,Interpolation inter=Interpolation::Smooth);
|
||||||
|
|
||||||
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);}
|
void AddFunction(const AnsiString *str){function_list.Add(str->c_str());}
|
||||||
|
|
||||||
void SetMaterialInstance(UBODescriptor *,const AnsiString &);
|
void SetMaterialInstance(UBODescriptor *,const AnsiString &);
|
||||||
|
void AddMaterialInstanceOutput();
|
||||||
|
|
||||||
void SetLocalToWorld(UBODescriptor *);
|
void SetLocalToWorld(UBODescriptor *);
|
||||||
|
|
||||||
void SetMain(const AnsiString &str){main_function=str;}
|
void SetMain(const AnsiString &str){main_function=str;}
|
||||||
|
@ -256,7 +256,7 @@ bool MaterialCreateInfo::CreateShader()
|
|||||||
|
|
||||||
if(sc->GetShaderStage()<mi_shader_stage)
|
if(sc->GetShaderStage()<mi_shader_stage)
|
||||||
{
|
{
|
||||||
sc->AddOutput(VAT_UINT,mtl::func::MaterialInstanceID,Interpolation::Flat);
|
sc->AddMaterialInstanceOutput();
|
||||||
|
|
||||||
sc->AddFunction(MF_HandoverMI);
|
sc->AddFunction(MF_HandoverMI);
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,6 @@ bool ShaderCreateInfo::ProcDefine()
|
|||||||
AnsiString m;
|
AnsiString m;
|
||||||
AnsiString v;
|
AnsiString v;
|
||||||
|
|
||||||
|
|
||||||
for(uint i=0;i<count;i++)
|
for(uint i=0;i<count;i++)
|
||||||
{
|
{
|
||||||
m=define_macro_list.GetString(i);
|
m=define_macro_list.GetString(i);
|
||||||
@ -174,6 +173,11 @@ void ShaderCreateInfo::SetMaterialInstance(UBODescriptor *ubo,const AnsiString &
|
|||||||
mi_codes=mi;
|
mi_codes=mi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ShaderCreateInfo::AddMaterialInstanceOutput()
|
||||||
|
{
|
||||||
|
AddOutput(VAT_UINT,mtl::func::MaterialInstanceID,Interpolation::Flat);
|
||||||
|
}
|
||||||
|
|
||||||
void ShaderCreateInfo::SetLocalToWorld(UBODescriptor *ubo)
|
void ShaderCreateInfo::SetLocalToWorld(UBODescriptor *ubo)
|
||||||
{
|
{
|
||||||
sdm->AddUBO(DescriptorSetType::PerFrame,ubo);
|
sdm->AddUBO(DescriptorSetType::PerFrame,ubo);
|
||||||
@ -423,10 +427,8 @@ bool ShaderCreateInfo::CreateShader(ShaderCreateInfo *last_sc)
|
|||||||
|
|
||||||
ProcOutput();
|
ProcOutput();
|
||||||
|
|
||||||
for(int i=0;i<function_list.GetCount();i++)
|
for(const char *str:function_list)
|
||||||
{
|
final_shader+=str;
|
||||||
final_shader+=function_list[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
final_shader+=main_function;
|
final_shader+=main_function;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user