added g_desc_sets/ri_desc_sets, CreateMIDescriptorSets/GetGlobalDescriptorSets/GetRIDescriptorSets

This commit is contained in:
2021-06-15 21:20:57 +08:00
parent 9118ba8e9f
commit 0f42ab3987
5 changed files with 16 additions and 10 deletions

View File

@@ -86,16 +86,13 @@ private:
render_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline);
{
SceneNode *sn=render_root.CreateSubNode(scale(0.5,0.5));
sn->RIList.Add(render_instance);
}
render_root.CreateSubNode(scale(0.5,0.5),render_instance);
render_root.RefreshMatrix();
SceneTreeToRenderList st2rl(device);
st2rl.Expend(&render_list,&render_root,&cam);
st2rl.Expend(&render_list,cam.info,&render_root);
return(true);
}

View File

@@ -23,6 +23,9 @@ class Material
DescriptorSetLayoutCreater *dsl_creater;
DescriptorSets *g_desc_sets;
DescriptorSets *ri_desc_sets;
VertexAttributeBinding *vab;
public:
@@ -60,7 +63,10 @@ public:
const VkPipelineShaderStageCreateInfo * GetStages ()const{return shader_stage_list->GetData();}
const VkPipelineLayout GetPipelineLayout ()const;
DescriptorSets * CreateDescriptorSets ()const;
DescriptorSets * CreateMIDescriptorSets ()const;
DescriptorSets * GetGlobalDescriptorSets (){return g_desc_sets;}
DescriptorSets * GetRIDescriptorSets (){return ri_desc_sets;}
const VertexAttributeBinding * GetVAB ()const{return vab;}
const uint32_t GetVertexAttrCount ()const{return vab->GetVertexAttrCount();}

View File

@@ -166,7 +166,7 @@ namespace hgl
bool SceneTreeToRenderList::Expend(RenderList *rl,const CameraInfo &ci,SceneNode *sn)
{
if(!device)return(false);
if(!rl||sn)return(false);
if(!rl||!sn)return(false);
camera_info=ci;

View File

@@ -104,10 +104,13 @@ Material::Material(const UTF8String &name,ShaderModuleMap *smm,List<VkPipelineSh
vertex_sm=nullptr;
vab=nullptr;
}
ri_desc_sets=dsl_creater->Create(DescriptorSetsType::RenderableInstance);
}
Material::~Material()
{
SAFE_CLEAR(ri_desc_sets);
delete dsl_creater;
if(vab)
@@ -150,8 +153,8 @@ const VkPipelineLayout Material::GetPipelineLayout()const
return dsl_creater->GetPipelineLayout();
}
DescriptorSets *Material::CreateDescriptorSets()const
DescriptorSets *Material::CreateMIDescriptorSets()const
{
return dsl_creater->Create();
return dsl_creater->Create(DescriptorSetsType::MaterialInstance);
}
VK_NAMESPACE_END

View File

@@ -70,7 +70,7 @@ void MaterialInstance::Update()
MaterialInstance *Material::CreateInstance()
{
DescriptorSets *ds=CreateDescriptorSets();
DescriptorSets *ds=CreateMIDescriptorSets();
if(!ds)return(nullptr);