renamed DescriptorSetsType to DescriptorSetType
This commit is contained in:
parent
15a9c8cb38
commit
2b70ee07c8
@ -64,7 +64,7 @@ private:
|
|||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
{
|
{
|
||||||
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetsType::Global);
|
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetType::Global);
|
||||||
|
|
||||||
if(!mp_global)
|
if(!mp_global)
|
||||||
return(false);
|
return(false);
|
||||||
|
@ -76,7 +76,7 @@ private:
|
|||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
{
|
{
|
||||||
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetsType::Global);
|
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetType::Global);
|
||||||
|
|
||||||
if(!mp_global)
|
if(!mp_global)
|
||||||
return(false);
|
return(false);
|
||||||
|
@ -68,7 +68,7 @@ private:
|
|||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
{
|
{
|
||||||
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetsType::Global);
|
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetType::Global);
|
||||||
|
|
||||||
if(!mp_global)
|
if(!mp_global)
|
||||||
return(false);
|
return(false);
|
||||||
|
@ -72,12 +72,12 @@ private:
|
|||||||
sampler=db->CreateSampler();
|
sampler=db->CreateSampler();
|
||||||
|
|
||||||
{
|
{
|
||||||
MaterialParameters *mp_texture=material_instance->GetMP(DescriptorSetsType::Material);
|
MaterialParameters *mp_texture=material_instance->GetMP(DescriptorSetType::Value);
|
||||||
|
|
||||||
if(!mp_texture)
|
if(!mp_texture)
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
if(!mp_texture->BindSampler("m_tex",texture,sampler))return(false);
|
if(!mp_texture->BindSampler("tex",texture,sampler))return(false);
|
||||||
|
|
||||||
mp_texture->Update();
|
mp_texture->Update();
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ private:
|
|||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
{
|
{
|
||||||
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetsType::Global);
|
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetType::Global);
|
||||||
|
|
||||||
if(!mp_global)
|
if(!mp_global)
|
||||||
return(false);
|
return(false);
|
||||||
|
@ -71,7 +71,7 @@ private:
|
|||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
{
|
{
|
||||||
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetsType::Global);
|
MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetType::Global);
|
||||||
|
|
||||||
if(!mp_global)
|
if(!mp_global)
|
||||||
return(false);
|
return(false);
|
||||||
|
@ -39,7 +39,7 @@ namespace hgl
|
|||||||
MVPArrayBuffer *mvp_array;
|
MVPArrayBuffer *mvp_array;
|
||||||
List<RenderableInstance *> ri_list;
|
List<RenderableInstance *> ri_list;
|
||||||
|
|
||||||
VkDescriptorSet ds_list[(size_t)DescriptorSetsType::RANGE_SIZE];
|
VkDescriptorSet ds_list[(size_t)DescriptorSetType::RANGE_SIZE];
|
||||||
DescriptorSets *renderable_desc_sets;
|
DescriptorSets *renderable_desc_sets;
|
||||||
|
|
||||||
uint32_t ubo_offset;
|
uint32_t ubo_offset;
|
||||||
@ -54,7 +54,7 @@ namespace hgl
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
Pipeline * last_pipeline;
|
Pipeline * last_pipeline;
|
||||||
MaterialParameters *last_mp[(size_t)DescriptorSetsType::RANGE_SIZE];
|
MaterialParameters *last_mp[(size_t)DescriptorSetType::RANGE_SIZE];
|
||||||
uint32_t last_vbo;
|
uint32_t last_vbo;
|
||||||
|
|
||||||
void Render(RenderableInstance *);
|
void Render(RenderableInstance *);
|
||||||
|
@ -54,7 +54,7 @@ class RenderPass;
|
|||||||
class GPUFence;
|
class GPUFence;
|
||||||
class GPUSemaphore;
|
class GPUSemaphore;
|
||||||
|
|
||||||
enum class DescriptorSetsType
|
enum class DescriptorSetType
|
||||||
{
|
{
|
||||||
//设计使其对应shader中的sets
|
//设计使其对应shader中的sets
|
||||||
|
|
||||||
|
@ -48,12 +48,12 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
MaterialParameters * CreateMP (const DescriptorSetsType &type)const;
|
MaterialParameters * CreateMP (const DescriptorSetType &type)const;
|
||||||
MaterialParameters * GetMP (const DescriptorSetsType &type)
|
MaterialParameters * GetMP (const DescriptorSetType &type)
|
||||||
{
|
{
|
||||||
if(type==DescriptorSetsType::Material )return mp_m;else
|
if(type==DescriptorSetType::Material )return mp_m;else
|
||||||
if(type==DescriptorSetsType::Renderable )return mp_r;else
|
if(type==DescriptorSetType::Renderable )return mp_r;else
|
||||||
if(type==DescriptorSetsType::Global )return mp_g;else
|
if(type==DescriptorSetType::Global )return mp_g;else
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public:
|
|||||||
Material *GetMaterial(){return material;}
|
Material *GetMaterial(){return material;}
|
||||||
|
|
||||||
MaterialParameters *GetMP(){return mp_value;}
|
MaterialParameters *GetMP(){return mp_value;}
|
||||||
MaterialParameters *GetMP(const DescriptorSetsType &type);
|
MaterialParameters *GetMP(const DescriptorSetType &type);
|
||||||
};//class MaterialInstance
|
};//class MaterialInstance
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
#endif//HGL_GRAPH_VULKAN_MATERIAL_INSTANCE_INCLUDE
|
#endif//HGL_GRAPH_VULKAN_MATERIAL_INSTANCE_INCLUDE
|
||||||
|
@ -9,7 +9,7 @@ class MaterialParameters
|
|||||||
{
|
{
|
||||||
const ShaderModuleMap *shader_map;
|
const ShaderModuleMap *shader_map;
|
||||||
|
|
||||||
DescriptorSetsType ds_type;
|
DescriptorSetType ds_type;
|
||||||
|
|
||||||
DescriptorSets *descriptor_sets;
|
DescriptorSets *descriptor_sets;
|
||||||
|
|
||||||
@ -17,17 +17,17 @@ private:
|
|||||||
|
|
||||||
friend class Material;
|
friend class Material;
|
||||||
|
|
||||||
MaterialParameters(const ShaderModuleMap *,const DescriptorSetsType &type,DescriptorSets *);
|
MaterialParameters(const ShaderModuleMap *,const DescriptorSetType &type,DescriptorSets *);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
const DescriptorSetsType GetType (){return ds_type;}
|
const DescriptorSetType GetType (){return ds_type;}
|
||||||
DescriptorSets * GetDescriptorSet (){return descriptor_sets;}
|
DescriptorSets * GetDescriptorSet (){return descriptor_sets;}
|
||||||
const VkDescriptorSet GetVkDescriptorSet ()const{return descriptor_sets->GetDescriptorSet();}
|
const VkDescriptorSet GetVkDescriptorSet ()const{return descriptor_sets->GetDescriptorSet();}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
#define MP_TYPE_IS(name) const bool is##name()const{return ds_type==DescriptorSetsType::name;}
|
#define MP_TYPE_IS(name) const bool is##name()const{return ds_type==DescriptorSetType::name;}
|
||||||
MP_TYPE_IS(Material)
|
MP_TYPE_IS(Material)
|
||||||
// MP_TYPE_IS(Texture)
|
// MP_TYPE_IS(Texture)
|
||||||
MP_TYPE_IS(Value)
|
MP_TYPE_IS(Value)
|
||||||
|
@ -52,7 +52,7 @@ public:
|
|||||||
|
|
||||||
const uint32_t GetBufferHash ()const{return buffer_hash;}
|
const uint32_t GetBufferHash ()const{return buffer_hash;}
|
||||||
|
|
||||||
MaterialParameters *GetMP (const DescriptorSetsType &type){return mat_inst->GetMP(type);}
|
MaterialParameters *GetMP (const DescriptorSetType &type){return mat_inst->GetMP(type);}
|
||||||
};//class RenderableInstance
|
};//class RenderableInstance
|
||||||
|
|
||||||
RenderableInstance *CreateRenderableInstance(Renderable *,MaterialInstance *,Pipeline *);
|
RenderableInstance *CreateRenderableInstance(Renderable *,MaterialInstance *,Pipeline *);
|
||||||
|
@ -37,12 +37,12 @@ int Comparator<RenderNodePointer>::compare(const RenderNodePointer &obj_one,cons
|
|||||||
|
|
||||||
//比较材质实例
|
//比较材质实例
|
||||||
{
|
{
|
||||||
for(int i =(int)hgl::graph::DescriptorSetsType::BEGIN_RANGE;
|
for(int i =(int)hgl::graph::DescriptorSetType::BEGIN_RANGE;
|
||||||
i<=(int)hgl::graph::DescriptorSetsType::END_RANGE;
|
i<=(int)hgl::graph::DescriptorSetType::END_RANGE;
|
||||||
i++)
|
i++)
|
||||||
{
|
{
|
||||||
off=ri_one->GetMP((hgl::graph::DescriptorSetsType)i)
|
off=ri_one->GetMP((hgl::graph::DescriptorSetType)i)
|
||||||
-ri_two->GetMP((hgl::graph::DescriptorSetsType)i);
|
-ri_two->GetMP((hgl::graph::DescriptorSetType)i);
|
||||||
|
|
||||||
if(off)
|
if(off)
|
||||||
return off;
|
return off;
|
||||||
@ -149,7 +149,7 @@ namespace hgl
|
|||||||
//为所有的材质绑定
|
//为所有的材质绑定
|
||||||
for(Material *mtl:material_sets)
|
for(Material *mtl:material_sets)
|
||||||
{
|
{
|
||||||
MaterialParameters *mp=mtl->GetMP(DescriptorSetsType::Renderable);
|
MaterialParameters *mp=mtl->GetMP(DescriptorSetType::Renderable);
|
||||||
|
|
||||||
if(mp)
|
if(mp)
|
||||||
mp->BindUBO("r_scene_info",mvp_array->GetBuffer(),false);
|
mp->BindUBO("r_scene_info",mvp_array->GetBuffer(),false);
|
||||||
@ -212,11 +212,11 @@ namespace hgl
|
|||||||
int ds_count=0;
|
int ds_count=0;
|
||||||
MaterialParameters *mp;
|
MaterialParameters *mp;
|
||||||
|
|
||||||
for(int i=(int)DescriptorSetsType::BEGIN_RANGE;
|
for(int i=(int)DescriptorSetType::BEGIN_RANGE;
|
||||||
i<(int)DescriptorSetsType::Renderable;
|
i<(int)DescriptorSetType::Renderable;
|
||||||
i++)
|
i++)
|
||||||
{
|
{
|
||||||
mp=ri->GetMP((DescriptorSetsType)i);
|
mp=ri->GetMP((DescriptorSetType)i);
|
||||||
|
|
||||||
if(last_mp[i]!=mp)
|
if(last_mp[i]!=mp)
|
||||||
{
|
{
|
||||||
@ -231,7 +231,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
mp=ri->GetMP(DescriptorSetsType::Renderable);
|
mp=ri->GetMP(DescriptorSetType::Renderable);
|
||||||
|
|
||||||
if(mp)
|
if(mp)
|
||||||
{
|
{
|
||||||
|
@ -109,11 +109,11 @@ bool RenderCmdBuffer::BindDescriptorSets(RenderableInstance *ri)
|
|||||||
uint32_t count=0;
|
uint32_t count=0;
|
||||||
|
|
||||||
MaterialParameters *mp;
|
MaterialParameters *mp;
|
||||||
VkDescriptorSet ds[(size_t)DescriptorSetsType::RANGE_SIZE];
|
VkDescriptorSet ds[(size_t)DescriptorSetType::RANGE_SIZE];
|
||||||
|
|
||||||
ENUM_CLASS_FOR(DescriptorSetsType,int,i)
|
ENUM_CLASS_FOR(DescriptorSetType,int,i)
|
||||||
{
|
{
|
||||||
mp=ri->GetMP((DescriptorSetsType)i);
|
mp=ri->GetMP((DescriptorSetType)i);
|
||||||
|
|
||||||
if(mp)
|
if(mp)
|
||||||
{
|
{
|
||||||
|
@ -22,10 +22,10 @@ void DescriptorSetLayoutCreater::Bind(const ShaderDescriptorList *sd_list,VkDesc
|
|||||||
{
|
{
|
||||||
if(!sd_list||sd_list->GetCount()<=0)return;
|
if(!sd_list||sd_list->GetCount()<=0)return;
|
||||||
|
|
||||||
uint32_t binding_count[size_t(DescriptorSetsType::RANGE_SIZE)],
|
uint32_t binding_count[size_t(DescriptorSetType::RANGE_SIZE)],
|
||||||
old_count[size_t(DescriptorSetsType::RANGE_SIZE)],
|
old_count[size_t(DescriptorSetType::RANGE_SIZE)],
|
||||||
fin_count[size_t(DescriptorSetsType::RANGE_SIZE)];
|
fin_count[size_t(DescriptorSetType::RANGE_SIZE)];
|
||||||
VkDescriptorSetLayoutBinding *p[size_t(DescriptorSetsType::RANGE_SIZE)];
|
VkDescriptorSetLayoutBinding *p[size_t(DescriptorSetType::RANGE_SIZE)];
|
||||||
|
|
||||||
hgl_zero(binding_count);
|
hgl_zero(binding_count);
|
||||||
hgl_zero(old_count);
|
hgl_zero(old_count);
|
||||||
@ -39,7 +39,7 @@ void DescriptorSetLayoutCreater::Bind(const ShaderDescriptorList *sd_list,VkDesc
|
|||||||
++binding_count[sd.set];
|
++binding_count[sd.set];
|
||||||
}
|
}
|
||||||
|
|
||||||
ENUM_CLASS_FOR(DescriptorSetsType,int,i)
|
ENUM_CLASS_FOR(DescriptorSetType,int,i)
|
||||||
if(binding_count[i]>0)
|
if(binding_count[i]>0)
|
||||||
{
|
{
|
||||||
old_count[i]=sds[i].binding_list.GetCount();
|
old_count[i]=sds[i].binding_list.GetCount();
|
||||||
@ -67,7 +67,7 @@ void DescriptorSetLayoutCreater::Bind(const ShaderDescriptorList *sd_list,VkDesc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ENUM_CLASS_FOR(DescriptorSetsType,int,i)
|
ENUM_CLASS_FOR(DescriptorSetType,int,i)
|
||||||
if(binding_count[i]>0)
|
if(binding_count[i]>0)
|
||||||
sds[i].binding_list.SetCount(old_count[i]+fin_count[i]);
|
sds[i].binding_list.SetCount(old_count[i]+fin_count[i]);
|
||||||
}
|
}
|
||||||
@ -76,7 +76,7 @@ bool DescriptorSetLayoutCreater::CreatePipelineLayout()
|
|||||||
{
|
{
|
||||||
fin_dsl_count=0;
|
fin_dsl_count=0;
|
||||||
|
|
||||||
ENUM_CLASS_FOR(DescriptorSetsType,int,i)
|
ENUM_CLASS_FOR(DescriptorSetType,int,i)
|
||||||
{
|
{
|
||||||
const int count=sds[i].binding_list.GetCount();
|
const int count=sds[i].binding_list.GetCount();
|
||||||
|
|
||||||
@ -120,12 +120,12 @@ bool DescriptorSetLayoutCreater::CreatePipelineLayout()
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
DescriptorSets *DescriptorSetLayoutCreater::Create(const DescriptorSetsType &type)const
|
DescriptorSets *DescriptorSetLayoutCreater::Create(const DescriptorSetType &type)const
|
||||||
{
|
{
|
||||||
if(!pipeline_layout)
|
if(!pipeline_layout)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
ENUM_CLASS_RANGE_ERROR_RETURN_NULLPTR(DescriptorSetsType,type);
|
ENUM_CLASS_RANGE_ERROR_RETURN_NULLPTR(DescriptorSetType,type);
|
||||||
|
|
||||||
const uint32_t count=sds[(size_t)type].binding_list.GetCount();
|
const uint32_t count=sds[(size_t)type].binding_list.GetCount();
|
||||||
|
|
||||||
|
@ -24,9 +24,9 @@ class DescriptorSetLayoutCreater
|
|||||||
VkDescriptorSetLayout layout;
|
VkDescriptorSetLayout layout;
|
||||||
};
|
};
|
||||||
|
|
||||||
ShaderDescriptorSet sds[size_t(DescriptorSetsType::RANGE_SIZE)];
|
ShaderDescriptorSet sds[size_t(DescriptorSetType::RANGE_SIZE)];
|
||||||
|
|
||||||
VkDescriptorSetLayout fin_dsl[size_t(DescriptorSetsType::RANGE_SIZE)];
|
VkDescriptorSetLayout fin_dsl[size_t(DescriptorSetType::RANGE_SIZE)];
|
||||||
uint32_t fin_dsl_count;
|
uint32_t fin_dsl_count;
|
||||||
|
|
||||||
VkPipelineLayout pipeline_layout=VK_NULL_HANDLE;
|
VkPipelineLayout pipeline_layout=VK_NULL_HANDLE;
|
||||||
@ -35,7 +35,7 @@ public:
|
|||||||
|
|
||||||
DescriptorSetLayoutCreater(VkDevice dev,VkDescriptorPool dp)
|
DescriptorSetLayoutCreater(VkDevice dev,VkDescriptorPool dp)
|
||||||
{
|
{
|
||||||
ENUM_CLASS_FOR(DescriptorSetsType,int,i)
|
ENUM_CLASS_FOR(DescriptorSetType,int,i)
|
||||||
sds[i].layout=nullptr;
|
sds[i].layout=nullptr;
|
||||||
|
|
||||||
hgl_zero(fin_dsl);
|
hgl_zero(fin_dsl);
|
||||||
@ -83,6 +83,6 @@ public:
|
|||||||
|
|
||||||
const VkPipelineLayout GetPipelineLayout()const{return pipeline_layout;}
|
const VkPipelineLayout GetPipelineLayout()const{return pipeline_layout;}
|
||||||
|
|
||||||
DescriptorSets *Create(const DescriptorSetsType &type)const;
|
DescriptorSets *Create(const DescriptorSetType &type)const;
|
||||||
};//class DescriptorSetLayoutCreater
|
};//class DescriptorSetLayoutCreater
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
@ -22,9 +22,9 @@ Material::Material(const UTF8String &name,ShaderModuleMap *smm,List<VkPipelineSh
|
|||||||
vab=nullptr;
|
vab=nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_m=CreateMP(DescriptorSetsType::Material);
|
mp_m=CreateMP(DescriptorSetType::Material);
|
||||||
mp_r=CreateMP(DescriptorSetsType::Renderable);
|
mp_r=CreateMP(DescriptorSetType::Renderable);
|
||||||
mp_g=CreateMP(DescriptorSetsType::Global);
|
mp_g=CreateMP(DescriptorSetType::Global);
|
||||||
}
|
}
|
||||||
|
|
||||||
Material::~Material()
|
Material::~Material()
|
||||||
@ -50,7 +50,7 @@ const VkPipelineLayout Material::GetPipelineLayout()const
|
|||||||
return dsl_creater->GetPipelineLayout();
|
return dsl_creater->GetPipelineLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialParameters *Material::CreateMP(const DescriptorSetsType &type)const
|
MaterialParameters *Material::CreateMP(const DescriptorSetType &type)const
|
||||||
{
|
{
|
||||||
DescriptorSets *ds=dsl_creater->Create(type);
|
DescriptorSets *ds=dsl_creater->Create(type);
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
MaterialInstance *Material::CreateInstance()
|
MaterialInstance *Material::CreateInstance()
|
||||||
{
|
{
|
||||||
MaterialParameters *mp=CreateMP(DescriptorSetsType::Value);
|
MaterialParameters *mp=CreateMP(DescriptorSetType::Value);
|
||||||
|
|
||||||
return(new MaterialInstance(this,mp));
|
return(new MaterialInstance(this,mp));
|
||||||
}
|
}
|
||||||
@ -22,12 +22,12 @@ MaterialInstance::~MaterialInstance()
|
|||||||
SAFE_CLEAR(mp_value);
|
SAFE_CLEAR(mp_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialParameters *MaterialInstance::GetMP(const DescriptorSetsType &type)
|
MaterialParameters *MaterialInstance::GetMP(const DescriptorSetType &type)
|
||||||
{
|
{
|
||||||
//if(type==DescriptorSetsType::Texture
|
//if(type==DescriptorSetType::Texture
|
||||||
// return mp_texture;
|
// return mp_texture;
|
||||||
|
|
||||||
if(type==DescriptorSetsType::Value)
|
if(type==DescriptorSetType::Value)
|
||||||
return mp_value;
|
return mp_value;
|
||||||
|
|
||||||
return material->GetMP(type);
|
return material->GetMP(type);
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include<hgl/graph/VKDescriptorSets.h>
|
#include<hgl/graph/VKDescriptorSets.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
MaterialParameters::MaterialParameters(const ShaderModuleMap *smm,const DescriptorSetsType &type,DescriptorSets *ds)
|
MaterialParameters::MaterialParameters(const ShaderModuleMap *smm,const DescriptorSetType &type,DescriptorSets *ds)
|
||||||
{
|
{
|
||||||
shader_map=smm;
|
shader_map=smm;
|
||||||
ds_type=type;
|
ds_type=type;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user