used DESCRIPTOR_SET_TYPE_COUNT

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-03-20 13:35:04 +08:00
parent 3a378be660
commit 35a282ef5e
6 changed files with 15 additions and 10 deletions

@ -1 +1 @@
Subproject commit 4a7af92ac66d55d1e6bf3d7e384ab92797e0559a Subproject commit bcf085546059dab3776bb8aa520680169dbeb3d5

View File

@ -9,7 +9,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
using ShaderStageCreateInfoList=List<VkPipelineShaderStageCreateInfo>; using ShaderStageCreateInfoList=List<VkPipelineShaderStageCreateInfo>;
using MaterialParameterArray=MaterialParameters *[size_t(DescriptorSetType::RANGE_SIZE)]; using MaterialParameterArray=MaterialParameters *[DESCRIPTOR_SET_TYPE_COUNT];
struct MaterialData struct MaterialData
{ {

View File

@ -9,8 +9,8 @@ class MaterialDescriptorSets
{ {
UTF8String mtl_name; UTF8String mtl_name;
//ShaderDescriptorList sd_list_by_set_type[size_t(DescriptorSetType::RANGE_SIZE)]; //ShaderDescriptorList sd_list_by_set_type[DESCRIPTOR_SET_TYPE_COUNT];
bool set_has_desc[size_t(DescriptorSetType::RANGE_SIZE)]; bool set_has_desc[DESCRIPTOR_SET_TYPE_COUNT];
// Map<AnsiString,ShaderDescriptor *> sd_by_name; // Map<AnsiString,ShaderDescriptor *> sd_by_name;
Map<AnsiString,int> binding_map[VK_DESCRIPTOR_TYPE_RANGE_SIZE]; Map<AnsiString,int> binding_map[VK_DESCRIPTOR_TYPE_RANGE_SIZE];
@ -19,7 +19,7 @@ class MaterialDescriptorSets
private: private:
DescriptorSetLayoutCreateInfo dsl_ci[size_t(DescriptorSetType::RANGE_SIZE)]; DescriptorSetLayoutCreateInfo dsl_ci[DESCRIPTOR_SET_TYPE_COUNT];
public: public:

View File

@ -29,7 +29,7 @@ class MaterialDescriptorInfo
ShaderDescriptor *AddDescriptor(VkShaderStageFlagBits ssb,ShaderDescriptor *new_sd); ///<添加一个描述符如果它本身存在则返回false ShaderDescriptor *AddDescriptor(VkShaderStageFlagBits ssb,ShaderDescriptor *new_sd); ///<添加一个描述符如果它本身存在则返回false
}; };
using ShaderDescriptorSetArray=ShaderDescriptorSet[size_t(DescriptorSetType::RANGE_SIZE)]; using ShaderDescriptorSetArray=ShaderDescriptorSet[DESCRIPTOR_SET_TYPE_COUNT];
ShaderDescriptorSetArray desc_set_array; ShaderDescriptorSetArray desc_set_array;
@ -67,5 +67,10 @@ public:
const DescriptorSetType GetSetType(const AnsiString &)const; const DescriptorSetType GetSetType(const AnsiString &)const;
void Resort(); //排序产生set号与binding号 void Resort(); //排序产生set号与binding号
const bool hasSet(const DescriptorSetType &type)const
{
return desc_set_array[size_t(type)].count>0;
}
}; };
SHADERGEN_NAMESPACE_END SHADERGEN_NAMESPACE_END

View File

@ -50,7 +50,7 @@ MaterialDescriptorSets::MaterialDescriptorSets(const UTF8String &name,ShaderDesc
} }
} }
VkDescriptorSetLayoutBinding *dsl_bind[size_t(DescriptorSetType::RANGE_SIZE)]; VkDescriptorSetLayoutBinding *dsl_bind[DESCRIPTOR_SET_TYPE_COUNT];
{ {
ENUM_CLASS_FOR(DescriptorSetType,int,i) ENUM_CLASS_FOR(DescriptorSetType,int,i)

View File

@ -9,10 +9,10 @@ struct PipelineLayoutData
{ {
VkDevice device; VkDevice device;
int binding_count[size_t(DescriptorSetType::RANGE_SIZE)]; int binding_count[DESCRIPTOR_SET_TYPE_COUNT];
VkDescriptorSetLayout layouts[size_t(DescriptorSetType::RANGE_SIZE)]; VkDescriptorSetLayout layouts[DESCRIPTOR_SET_TYPE_COUNT];
VkDescriptorSetLayout fin_dsl[size_t(DescriptorSetType::RANGE_SIZE)]; VkDescriptorSetLayout fin_dsl[DESCRIPTOR_SET_TYPE_COUNT];
uint32_t fin_dsl_count; uint32_t fin_dsl_count;
VkPipelineLayout pipeline_layout; VkPipelineLayout pipeline_layout;