RenderCmdBuffer中记录的DescriptorBinding改为按SetType分类为多个

This commit is contained in:
2025-06-06 23:39:20 +08:00
parent 5e541e2f46
commit 55204779ba
3 changed files with 26 additions and 5 deletions

View File

@@ -50,6 +50,8 @@ public:
};//class VulkanCmdBuffer
class DescriptorBinding;
using DescriptorBindingPtr=DescriptorBinding *;
using DescriptorBindingArray=DescriptorBindingPtr[size_t(DescriptorSetType::RANGE_SIZE)];
class RenderCmdBuffer:public VulkanCmdBuffer
{
@@ -61,7 +63,7 @@ class RenderCmdBuffer:public VulkanCmdBuffer
RenderPassBeginInfo rp_begin;
VkPipelineLayout pipeline_layout;
DescriptorBinding *desc_binding=nullptr;
DescriptorBindingArray desc_binding{};
private:
@@ -72,11 +74,11 @@ public:
RenderCmdBuffer(const VulkanDevAttr *attr,VkCommandBuffer cb);
~RenderCmdBuffer();
void SetDescriptorBinding(DescriptorBinding *db) { desc_binding=db; }
bool SetDescriptorBinding(DescriptorBinding *);
bool End() override
{
desc_binding=nullptr;
hgl_zero(desc_binding);
return VulkanCmdBuffer::End();
}

View File

@@ -24,6 +24,10 @@ class DescriptorBinding
Map<AnsiString,DeviceBuffer *> ssbo_map;
Map<AnsiString,Texture *> texture_map;
public:
const DescriptorSetType GetType()const{return set_type;}
public:
DescriptorBinding(const DescriptorSetType &dst)