added GetCount() at MaterialDescriptorInfo class.

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-03-21 14:15:33 +08:00
parent 9302cbc3ef
commit 8c8a218a3a
2 changed files with 12 additions and 0 deletions

View File

@ -14,6 +14,7 @@ SHADERGEN_NAMESPACE_BEGIN
*/ */
class MaterialDescriptorInfo class MaterialDescriptorInfo
{ {
uint descriptor_count;
ShaderDescriptorSetArray desc_set_array; ShaderDescriptorSetArray desc_set_array;
Map<AnsiString,AnsiString> struct_map; Map<AnsiString,AnsiString> struct_map;
@ -51,6 +52,11 @@ public:
void Resort(); //排序产生set号与binding号 void Resort(); //排序产生set号与binding号
const uint GetCount()const
{
return descriptor_count;
}
const ShaderDescriptorSetArray &Get()const const ShaderDescriptorSetArray &Get()const
{ {
return desc_set_array; return desc_set_array;

View File

@ -14,6 +14,8 @@ MaterialDescriptorInfo::MaterialDescriptorInfo()
p.set=-1; p.set=-1;
p.count=0; p.count=0;
} }
descriptor_count=0;
} }
const DescriptorSetType MaterialDescriptorInfo::GetSetType(const AnsiString &name)const const DescriptorSetType MaterialDescriptorInfo::GetSetType(const AnsiString &name)const
@ -73,6 +75,8 @@ SamplerDescriptor *MaterialDescriptorInfo::GetSampler(const AnsiString &name)
void MaterialDescriptorInfo::Resort() void MaterialDescriptorInfo::Resort()
{ {
descriptor_count=0;
//重新生成set/binding //重新生成set/binding
{ {
int set=0; int set=0;
@ -81,6 +85,8 @@ void MaterialDescriptorInfo::Resort()
{ {
if(p.count>0) if(p.count>0)
{ {
descriptor_count+=p.count;
p.set=set; p.set=set;
auto *sdp=p.descriptor_map.GetDataList(); auto *sdp=p.descriptor_map.GetDataList();