MaterialCreateInfo增加AddUBOStruct封装
This commit is contained in:
parent
784e7f0e0b
commit
18d391f01e
2
CMCore
2
CMCore
@ -1 +1 @@
|
||||
Subproject commit 10108953ebff000823b072be9e4c632471520945
|
||||
Subproject commit 86ac0c37fcf6c4c4cb82446b89767561c9349517
|
@ -81,11 +81,11 @@ namespace hgl::graph
|
||||
bool SetLocalToWorld(const uint32_t shader_stage_flag_bits);
|
||||
|
||||
bool AddStruct(const AnsiString &ubo_typename,const AnsiString &codes);
|
||||
bool AddStruct(const ShaderBufferSource &ss){return AddStruct(ss.struct_name,ss.codes);}
|
||||
|
||||
bool AddUBO(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const AnsiString &struct_name,const AnsiString &name);
|
||||
bool AddUBO(const uint32_t flag_bits,const DescriptorSetType &set_type,const AnsiString &struct_name,const AnsiString &name);
|
||||
bool AddUBO(const uint32_t flag_bits,const DescriptorSetType &set_type,const ShaderBufferSource &ss){return AddUBO(flag_bits,set_type,ss.struct_name,ss.name);}
|
||||
|
||||
bool AddUBOStruct(const uint32_t flag_bits,const ShaderBufferSource &ss);
|
||||
|
||||
bool AddSampler(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name);
|
||||
|
||||
|
@ -17,9 +17,7 @@ bool Std2DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
||||
if(cfg->local_to_world
|
||||
||cfg->material_instance)
|
||||
{
|
||||
mci->AddStruct(SBS_LocalToWorld);
|
||||
|
||||
mci->AddUBO(VK_SHADER_STAGE_ALL_GRAPHICS,DescriptorSetType::PerFrame,SBS_LocalToWorld);
|
||||
mci->AddUBOStruct(VK_SHADER_STAGE_ALL_GRAPHICS,SBS_LocalToWorld);
|
||||
|
||||
vsc->AddAssign();
|
||||
}
|
||||
@ -43,11 +41,7 @@ bool Std2DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
||||
|
||||
if(cfg->coordinate_system==CoordinateSystem2D::Ortho)
|
||||
{
|
||||
mci->AddStruct(SBS_ViewportInfo);
|
||||
|
||||
mci->AddUBO(VK_SHADER_STAGE_ALL_GRAPHICS,
|
||||
DescriptorSetType::RenderTarget,
|
||||
SBS_ViewportInfo);
|
||||
mci->AddUBOStruct(VK_SHADER_STAGE_ALL_GRAPHICS,SBS_ViewportInfo);
|
||||
}
|
||||
|
||||
return(true);
|
||||
|
@ -13,20 +13,14 @@ bool Std3DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
||||
|
||||
if(cfg->camera||cfg->local_to_world||cfg->material_instance)
|
||||
{
|
||||
mci->AddStruct(SBS_LocalToWorld);
|
||||
|
||||
mci->AddUBO(VK_SHADER_STAGE_ALL_GRAPHICS,DescriptorSetType::PerFrame,SBS_LocalToWorld);
|
||||
mci->AddUBOStruct(VK_SHADER_STAGE_ALL_GRAPHICS,SBS_LocalToWorld);
|
||||
|
||||
vsc->AddAssign();
|
||||
}
|
||||
|
||||
if(cfg->camera)
|
||||
{
|
||||
mci->AddStruct(SBS_CameraInfo);
|
||||
|
||||
mci->AddUBO(VK_SHADER_STAGE_ALL_GRAPHICS,
|
||||
DescriptorSetType::Camera,
|
||||
SBS_CameraInfo);
|
||||
mci->AddUBOStruct(VK_SHADER_STAGE_ALL_GRAPHICS,SBS_CameraInfo);
|
||||
}
|
||||
|
||||
if(cfg->local_to_world)
|
||||
@ -58,11 +52,7 @@ bool Std3DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
|
||||
vsc->AddFunction(func::GetNormalVS);
|
||||
}
|
||||
|
||||
mci->AddStruct(SBS_ViewportInfo);
|
||||
|
||||
mci->AddUBO(VK_SHADER_STAGE_ALL_GRAPHICS,
|
||||
DescriptorSetType::RenderTarget,
|
||||
SBS_ViewportInfo);
|
||||
mci->AddUBOStruct(VK_SHADER_STAGE_ALL_GRAPHICS,SBS_ViewportInfo);
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
@ -93,6 +93,14 @@ bool MaterialCreateInfo::AddUBO(const uint32_t flag_bits,const DescriptorSetType
|
||||
return(result==shader_map.GetCount());
|
||||
}
|
||||
|
||||
bool MaterialCreateInfo::AddUBOStruct(const uint32_t flag_bits,const ShaderBufferSource &ss)
|
||||
{
|
||||
if(!AddStruct(ss.struct_name,ss.codes))
|
||||
return(false);
|
||||
|
||||
return AddUBO(flag_bits,ss.set_type,ss.struct_name,ss.name);
|
||||
}
|
||||
|
||||
bool MaterialCreateInfo::AddSampler(const VkShaderStageFlagBits flag_bit,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name)
|
||||
{
|
||||
if(!shader_map.ContainsKey(flag_bit))
|
||||
|
Loading…
x
Reference in New Issue
Block a user