Class DescriptorSetManager

Inheritance Relationships

Derived Type

Class Documentation

class DescriptorSetManager

Manages descriptor set bindings for a shader.

Binds resources (buffers, textures, images) to shader descriptor sets by name. Tracks invalidation and supports multi-buffering.

Subclassed by portal::renderer::vulkan::VulkanDescriptorSetManager

Public Functions

virtual ~DescriptorSetManager() = default
virtual void set_input(StringId name, const Reference<UniformBufferSet> &buffer) = 0

Binds uniform buffer set.

virtual void set_input(StringId name, const Reference<UniformBuffer> &buffer) = 0

Binds uniform buffer.

virtual void set_input(StringId name, const Reference<StorageBufferSet> &buffer) = 0

Binds storage buffer set.

virtual void set_input(StringId name, const Reference<StorageBuffer> &buffer) = 0

Binds storage buffer.

virtual void set_input(StringId name, const Reference<Texture> &texture) = 0

Binds texture.

virtual void set_input(StringId name, const Reference<Image> &image) = 0

Binds image.

virtual void set_input(StringId name, const Reference<ImageView> &image) = 0

Binds image view.

template<typename T>
inline Reference<T> get_input(const StringId name)

Gets bound input resource (typed)

Template Parameters:

TResource type

Parameters:

name – Binding name

Returns:

Resource reference

virtual Reference<RendererResource> get_input(StringId name) = 0

Gets bound input resource.

Parameters:

name – Binding name

Returns:

Resource reference

virtual bool is_invalidated(size_t set, size_t binding_index) const = 0

Checks if binding is invalidated.

Parameters:
  • set – Descriptor set index

  • binding_index – Binding index

Returns:

True if invalidated

virtual void invalidate_and_update(size_t frame_index) = 0
virtual bool validate() = 0

Validates all bindings are set.

virtual void bake() = 0

Finalizes descriptor sets for rendering.