added GetBindingMap at MaterialDescriptorManager and MaterialParameters

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-03-25 23:11:43 +08:00
parent 18a4212935
commit fefdc19674
2 changed files with 10 additions and 1 deletions

View File

@ -5,11 +5,14 @@
#include<hgl/graph/VKShaderDescriptorSet.h>
VK_NAMESPACE_BEGIN
using BindingMap=Map<AnsiString,int>;
using BindingMapArray=BindingMap[VK_DESCRIPTOR_TYPE_RANGE_SIZE];
class MaterialDescriptorManager
{
UTF8String mtl_name;
Map<AnsiString,int> binding_map[DESCRIPTOR_SET_TYPE_COUNT][VK_DESCRIPTOR_TYPE_RANGE_SIZE];
BindingMapArray binding_map[DESCRIPTOR_SET_TYPE_COUNT];
private:
@ -32,6 +35,11 @@ public:
return dsl_ci[size_t(set_type)].bindingCount;
}
const BindingMapArray &GetBindingMap(const DescriptorSetType &set_type)const
{
return binding_map[size_t(set_type)];
}
const int GetBinding(const DescriptorSetType &set_type,const VkDescriptorType &desc_type,const AnsiString &name)const;
const int GetUBO (const DescriptorSetType &set_type,const AnsiString &name,bool dynamic)const{return GetBinding(set_type,dynamic?VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,name);}

View File

@ -31,6 +31,7 @@ public:
const VkDescriptorSet GetVkDescriptorSet ()const{return descriptor_set->GetDescriptorSet();}
const uint32_t GetDescriptorCount ()const{return desc_manager->GetBindCount(set_type);} ///<获取总共需要绑定的描述符数量
const BindingMapArray & GetBindingMap ()const{return desc_manager->GetBindingMap(set_type);}
const uint32_t GetDynamicCount ()const //返回动态ubo/ssbo总量
{