removed DescriptorSetType::MaterialInstance
This commit is contained in:
parent
c15fbf8252
commit
bba00534ba
@ -1 +1 @@
|
|||||||
Subproject commit 28e59c2777ed5e0535ec0ba6b77577aa3a9b148f
|
Subproject commit 32472ad33cf7a8f36a9aadb90ef84b406c585f1c
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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()
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user