|
| ~DescriptorSetLayout () noexcept override=default |
|
virtual const Array< descriptor_layout_type > & | descriptors () const noexcept=0 |
|
const descriptor_layout_type & | descriptor (UInt32 binding) const override=0 |
| Returns the descriptor layout for the descriptor bound to the binding point provided with binding .- Parameters
-
binding | The binding point of the requested descriptor layout. |
- Returns
- The descriptor layout for the descriptor bound to the binding point provided with binding .
|
|
virtual UniquePtr< descriptor_set_type > | allocate (std::initializer_list< DescriptorBinding > bindings={ }) const |
|
virtual UniquePtr< descriptor_set_type > | allocate (Span< DescriptorBinding > bindings) const |
|
virtual UniquePtr< descriptor_set_type > | allocate (Generator< DescriptorBinding > bindings) const |
|
virtual UniquePtr< descriptor_set_type > | allocate (UInt32 descriptors, std::initializer_list< DescriptorBinding > bindings) const =0 |
|
virtual UniquePtr< descriptor_set_type > | allocate (UInt32 descriptors, Span< DescriptorBinding > bindings) const =0 |
|
virtual UniquePtr< descriptor_set_type > | allocate (UInt32 descriptors, Generator< DescriptorBinding > bindings) const =0 |
|
virtual Generator< UniquePtr< descriptor_set_type > > | allocate (UInt32 descriptorSets, std::initializer_list< std::initializer_list< DescriptorBinding > > bindings={ }) const |
|
virtual Generator< UniquePtr< descriptor_set_type > > | allocate (UInt32 descriptorSets, std::function< Generator< DescriptorBinding >(UInt32)> bindings) const |
|
virtual Generator< UniquePtr< descriptor_set_type > > | allocate (UInt32 descriptorSets, UInt32 descriptors, std::initializer_list< std::initializer_list< DescriptorBinding > > bindings={ }) const =0 |
|
virtual Generator< UniquePtr< descriptor_set_type > > | allocate (UInt32 descriptorSets, UInt32 descriptors, std::function< Generator< DescriptorBinding >(UInt32)> bindingFactory) const =0 |
|
virtual void | free (const descriptor_set_type &descriptorSet) const =0 |
|
void | free (const IDescriptorSet &descriptorSet) const |
| Marks a descriptor set as unused, so that it can be handed out again instead of allocating a new one.
|
|
| ~IDescriptorSetLayout () noexcept override=default |
|
Enumerable< const IDescriptorLayout & > | descriptors () const noexcept |
| Returns the layouts of the descriptors within the descriptor set.
|
|
virtual UInt32 | space () const noexcept=0 |
| Returns the space index of the descriptor set.
|
|
virtual ShaderStage | shaderStages () const noexcept=0 |
| Returns the shader stages, the descriptor set is used in.
|
|
virtual UInt32 | uniforms () const noexcept=0 |
| Returns the number of uniform/constant buffer descriptors within the descriptor set.
|
|
virtual UInt32 | storages () const noexcept=0 |
| Returns the number of structured and byte address buffer descriptors within the descriptor set.
|
|
virtual UInt32 | images () const noexcept=0 |
| Returns the number of image (i.e. texture) descriptors within the descriptor set.
|
|
virtual UInt32 | buffers () const noexcept=0 |
| Returns the number of texel buffer descriptors within the descriptor set.
|
|
virtual UInt32 | samplers () const noexcept=0 |
| Returns the number of dynamic sampler descriptors within the descriptor set.
|
|
virtual UInt32 | staticSamplers () const noexcept=0 |
| Returns the number of static or immutable sampler descriptors within the descriptor set.
|
|
virtual UInt32 | inputAttachments () const noexcept=0 |
| Returns the number of input attachment descriptors within the descriptor set.
|
|
UniquePtr< IDescriptorSet > | allocate (std::initializer_list< DescriptorBinding > bindings={ }) const |
| Allocates a new descriptor set or returns an instance of an unused descriptor set.
|
|
UniquePtr< IDescriptorSet > | allocate (Span< DescriptorBinding > bindings) const |
|
UniquePtr< IDescriptorSet > | allocate (Generator< DescriptorBinding > bindings) const |
|
UniquePtr< IDescriptorSet > | allocate (UInt32 descriptors, std::initializer_list< DescriptorBinding > bindings) const |
| Allocates a new descriptor set or returns an instance of an unused descriptor set.
|
|
UniquePtr< IDescriptorSet > | allocate (UInt32 descriptors, Span< DescriptorBinding > bindings) const |
|
UniquePtr< IDescriptorSet > | allocate (UInt32 descriptors, Generator< DescriptorBinding > bindings) const |
| Allocates an array of descriptor sets.
|
|
Generator< UniquePtr< IDescriptorSet > > | allocate (UInt32 descriptorSets, std::initializer_list< std::initializer_list< DescriptorBinding > > bindings={ }) const |
| Allocates an array of descriptor sets.
|
|
Generator< UniquePtr< IDescriptorSet > > | allocate (UInt32 descriptorSets, std::function< Generator< DescriptorBinding >(UInt32)> bindingFactory) const |
| Allocates an array of descriptor sets.
|
|
Generator< UniquePtr< IDescriptorSet > > | allocate (UInt32 descriptorSets, UInt32 descriptors, std::initializer_list< std::initializer_list< DescriptorBinding > > bindings={ }) const |
| Allocates an array of descriptor sets.
|
|
Generator< UniquePtr< IDescriptorSet > > | allocate (UInt32 descriptorSets, UInt32 descriptors, std::function< Generator< DescriptorBinding >(UInt32)> bindingFactory) const |
| Allocates an array of descriptor sets.
|
|
void | free (const IDescriptorSet &descriptorSet) const |
| Marks a descriptor set as unused, so that it can be handed out again instead of allocating a new one.
|
|
virtual | ~SharedObject () noexcept=default |
| Destroys the shared object.
|
|
template<typename TSelf > |
auto | shared_from_this (this TSelf &&self) noexcept |
| Returns a shared pointer to the current object instance.
|
|
template<typename TSelf > |
auto | weak_from_this (this TSelf &&self) noexcept -> WeakPtr< std::remove_reference_t< TSelf > > |
| Returns a weak pointer to the current object instance.
|
|
template<typename TDescriptorLayout, typename TDescriptorSet>
requires meta::implements<TDescriptorLayout,
IDescriptorLayout> && meta::implements<TDescriptorSet,
DescriptorSet<typename TDescriptorSet::buffer_type, typename TDescriptorSet::image_type, typename TDescriptorSet::sampler_type, typename TDescriptorSet::acceleration_structure_type>>
class LiteFX::Rendering::DescriptorSetLayout< TDescriptorLayout, TDescriptorSet >
Describes the layout of a descriptor set.
A descriptor set groups together multiple descriptors. This concept is identified by the set
keyword in GLSL and space
in HLSL.
For more information on buffer binding and resource management, refer to the remarks of the DescriptorSet interface.
- Template Parameters
-
TDescriptorLayout | The type of the descriptor layout. Must implement IDescriptorLayout. |
TDescriptorSet | The type of the descriptor set. Must implement DescriptorSet. |
- See also
- IDescriptorLayout, DescriptorSet