diff --git a/inc/hgl/graph/VKMaterialDescriptorManager.h b/inc/hgl/graph/VKMaterialDescriptorManager.h index 331890df..5e420e9b 100644 --- a/inc/hgl/graph/VKMaterialDescriptorManager.h +++ b/inc/hgl/graph/VKMaterialDescriptorManager.h @@ -5,11 +5,14 @@ #include VK_NAMESPACE_BEGIN +using BindingMap=Map; +using BindingMapArray=BindingMap[VK_DESCRIPTOR_TYPE_RANGE_SIZE]; + class MaterialDescriptorManager { UTF8String mtl_name; - Map 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);} diff --git a/inc/hgl/graph/VKMaterialParameters.h b/inc/hgl/graph/VKMaterialParameters.h index 6b575bd0..dc478f12 100644 --- a/inc/hgl/graph/VKMaterialParameters.h +++ b/inc/hgl/graph/VKMaterialParameters.h @@ -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总量 {