removed DescriptorSetType::MaterialInstance

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-09-26 14:50:38 +08:00
parent c15fbf8252
commit bba00534ba
6 changed files with 14 additions and 12 deletions

@ -1 +1 @@
Subproject commit 28e59c2777ed5e0535ec0ba6b77577aa3a9b148f Subproject commit 32472ad33cf7a8f36a9aadb90ef84b406c585f1c

View File

@ -39,6 +39,7 @@ private:
Texture2D * texture =nullptr; Texture2D * texture =nullptr;
Sampler * sampler =nullptr; Sampler * sampler =nullptr;
Material * material =nullptr;
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
Renderable * render_obj =nullptr; Renderable * render_obj =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -54,13 +55,13 @@ private:
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreateRectTexture2D(&cfg); AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreateRectTexture2D(&cfg);
material_instance=db->CreateMaterialInstance(mci); material=db->CreateMaterial(mci);
if(!material_instance) if(!material)
return(false); return(false);
// pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d")); // pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d"));
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D,Prim::SolidRectangles); //等同上一行为Framework重载默认使用swapchain的render target pipeline=CreatePipeline(material,InlinePipeline::Solid2D,Prim::SolidRectangles); //等同上一行为Framework重载默认使用swapchain的render target
if(!pipeline) if(!pipeline)
return(false); return(false);
@ -70,12 +71,14 @@ private:
sampler=db->CreateSampler(); sampler=db->CreateSampler();
if(!material_instance->BindImageSampler(DescriptorSetType::PerMaterial, ///<描述符合集 if(!material->BindImageSampler( DescriptorSetType::PerMaterial, ///<描述符合集
mtl::SamplerName::Color, ///<采样器名称 mtl::SamplerName::Color, ///<采样器名称
texture, ///<纹理 texture, ///<纹理
sampler)) ///<采样器 sampler)) ///<采样器
return(false); return(false);
material_instance=db->CreateMaterialInstance(material);
return(true); return(true);
} }

View File

@ -34,7 +34,6 @@ public:
#define MP_TYPE_IS(name) const bool is##name()const{return set_type==DescriptorSetType::name;} #define MP_TYPE_IS(name) const bool is##name()const{return set_type==DescriptorSetType::name;}
MP_TYPE_IS(Instance) MP_TYPE_IS(Instance)
MP_TYPE_IS(MaterialInstance)
MP_TYPE_IS(PerMaterial) MP_TYPE_IS(PerMaterial)
MP_TYPE_IS(PerFrame) MP_TYPE_IS(PerFrame)
MP_TYPE_IS(Global) MP_TYPE_IS(Global)

View File

@ -36,7 +36,7 @@ void RenderAssignBuffer::Bind(MaterialInstance *mi)const
Material *mtl=mi->GetMaterial(); Material *mtl=mi->GetMaterial();
mtl->BindUBO(DescriptorSetType::PerFrame,mtl::SBS_LocalToWorld.name,ubo_l2w); mtl->BindUBO(DescriptorSetType::PerFrame,mtl::SBS_LocalToWorld.name,ubo_l2w);
mtl->BindUBO(DescriptorSetType::MaterialInstance,mtl::SBS_MaterialInstance.name,ubo_mi); mtl->BindUBO(DescriptorSetType::PerMaterial,mtl::SBS_MaterialInstance.name,ubo_mi);
} }
void RenderAssignBuffer::Clear() void RenderAssignBuffer::Clear()

View File

@ -166,7 +166,7 @@ bool MaterialCreateInfo::SetMaterialInstance(const AnsiString &glsl_codes,const
hgl::strcpy(mi_ubo->name,DESCRIPTOR_NAME_MAX_LENGTH,SBS_MaterialInstance.name); hgl::strcpy(mi_ubo->name,DESCRIPTOR_NAME_MAX_LENGTH,SBS_MaterialInstance.name);
mi_ubo->stage_flag=shader_stage_flag_bits; mi_ubo->stage_flag=shader_stage_flag_bits;
mdi.AddUBO(shader_stage_flag_bits,DescriptorSetType::MaterialInstance,mi_ubo); mdi.AddUBO(shader_stage_flag_bits,DescriptorSetType::PerMaterial,mi_ubo);
const AnsiString MI_MAX_COUNT=AnsiString::numberOf(mi_max_count); const AnsiString MI_MAX_COUNT=AnsiString::numberOf(mi_max_count);

View File

@ -155,7 +155,7 @@ bool ShaderCreateInfo::ProcSubpassInput()
void ShaderCreateInfo::SetMaterialInstance(UBODescriptor *ubo,const AnsiString &mi) void ShaderCreateInfo::SetMaterialInstance(UBODescriptor *ubo,const AnsiString &mi)
{ {
sdm->AddUBO(DescriptorSetType::MaterialInstance,ubo); sdm->AddUBO(DescriptorSetType::PerMaterial,ubo);
sdm->AddStruct(mtl::MaterialInstanceStruct); sdm->AddStruct(mtl::MaterialInstanceStruct);
if(shader_stage==VK_SHADER_STAGE_VERTEX_BIT) if(shader_stage==VK_SHADER_STAGE_VERTEX_BIT)