added CreateUBODescriptor
This commit is contained in:
parent
45f50b3bc0
commit
cefea7229d
@ -135,6 +135,22 @@ bool MaterialCreateInfo::AddUBO(const uint32_t flag_bits,const DescriptorSetType
|
|||||||
return(result==shader_map.GetCount());
|
return(result==shader_map.GetCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
UBODescriptor *CreateUBODescriptor(const ShaderBufferSource &sbs,const uint32_t flag_bits)
|
||||||
|
{
|
||||||
|
UBODescriptor *ubo=new UBODescriptor;
|
||||||
|
|
||||||
|
ubo->type=sbs.struct_name;
|
||||||
|
|
||||||
|
hgl::strcpy(ubo->name,DESCRIPTOR_NAME_MAX_LENGTH,sbs.name);
|
||||||
|
|
||||||
|
ubo->stage_flag=flag_bits;
|
||||||
|
|
||||||
|
return ubo;
|
||||||
|
}
|
||||||
|
}//namespace
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置材质实例代码与数据长度
|
* 设置材质实例代码与数据长度
|
||||||
* @param glsl_codes 材质实例GLSL代码
|
* @param glsl_codes 材质实例GLSL代码
|
||||||
@ -160,11 +176,7 @@ bool MaterialCreateInfo::SetMaterialInstance(const AnsiString &glsl_codes,const
|
|||||||
mdi.AddStruct(MaterialInstanceStruct,mi_codes);
|
mdi.AddStruct(MaterialInstanceStruct,mi_codes);
|
||||||
mdi.AddStruct(SBS_MaterialInstance);
|
mdi.AddStruct(SBS_MaterialInstance);
|
||||||
|
|
||||||
mi_ubo=new UBODescriptor();
|
mi_ubo=CreateUBODescriptor(SBS_MaterialInstance,shader_stage_flag_bits);
|
||||||
|
|
||||||
mi_ubo->type=SBS_MaterialInstance.struct_name;
|
|
||||||
hgl::strcpy(mi_ubo->name,DESCRIPTOR_NAME_MAX_LENGTH,SBS_MaterialInstance.name);
|
|
||||||
mi_ubo->stage_flag=shader_stage_flag_bits;
|
|
||||||
|
|
||||||
mdi.AddUBO(shader_stage_flag_bits,DescriptorSetType::PerMaterial,mi_ubo);
|
mdi.AddUBO(shader_stage_flag_bits,DescriptorSetType::PerMaterial,mi_ubo);
|
||||||
|
|
||||||
@ -194,11 +206,7 @@ bool MaterialCreateInfo::SetLocalToWorld(const uint32_t shader_stage_flag_bits)
|
|||||||
|
|
||||||
mdi.AddStruct(SBS_LocalToWorld);
|
mdi.AddStruct(SBS_LocalToWorld);
|
||||||
|
|
||||||
l2w_ubo=new UBODescriptor();
|
l2w_ubo=CreateUBODescriptor(SBS_LocalToWorld,shader_stage_flag_bits);
|
||||||
|
|
||||||
l2w_ubo->type=SBS_LocalToWorld.struct_name;
|
|
||||||
hgl::strcpy(l2w_ubo->name,DESCRIPTOR_NAME_MAX_LENGTH,SBS_LocalToWorld.name);
|
|
||||||
l2w_ubo->stage_flag=shader_stage_flag_bits;
|
|
||||||
|
|
||||||
mdi.AddUBO(shader_stage_flag_bits,DescriptorSetType::PerFrame,l2w_ubo);
|
mdi.AddUBO(shader_stage_flag_bits,DescriptorSetType::PerFrame,l2w_ubo);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user