![]() |
LiteFX 0.3.1.2022
Computer Graphics Engine
|
Implements a DirectX 12 DescriptorSetLayout. More...
#include <dx12.hpp>
Inherits LiteFX::Rendering::DescriptorSetLayout< DirectX12DescriptorLayout, DirectX12DescriptorSet >.
Classes | |
class | DirectX12DescriptorSetLayoutImpl |
Public Member Functions | |
DirectX12DescriptorSetLayout (const DirectX12Device &device, Array< UniquePtr< DirectX12DescriptorLayout > > &&descriptorLayouts, const UInt32 &space, const ShaderStage &stages) | |
Initializes a DirectX 12 descriptor set layout. More... | |
DirectX12DescriptorSetLayout (DirectX12DescriptorSetLayout &&)=delete | |
DirectX12DescriptorSetLayout (const DirectX12DescriptorSetLayout &)=delete | |
virtual | ~DirectX12DescriptorSetLayout () noexcept |
virtual const UInt32 & | rootParameterIndex () const noexcept |
Returns the index of the descriptor set root parameter. More... | |
virtual UInt32 | descriptorOffsetForBinding (const UInt32 &binding) const |
Returns the index of the first descriptor for a certain binding. The offset is relative to the heap for the descriptor (i.e. sampler for sampler descriptors and CBV/SRV/UAV for other descriptors). More... | |
virtual const DirectX12Device & | device () const noexcept |
Returns the parent device. More... | |
virtual Array< const DirectX12DescriptorLayout * > | descriptors () const noexcept override |
virtual const DirectX12DescriptorLayout & | descriptor (const UInt32 &binding) const override |
Returns the descriptor layout for the descriptor bound to the binding point provided with binding . More... | |
virtual const UInt32 & | space () const noexcept override |
Returns the space index of the descriptor set. More... | |
virtual const ShaderStage & | shaderStages () const noexcept override |
Returns the shader stages, the descriptor set is used in. More... | |
virtual UInt32 | uniforms () const noexcept override |
Returns the number of uniform/constant buffer descriptors within the descriptor set. More... | |
virtual UInt32 | storages () const noexcept override |
Returns the number of structured and byte address buffer descriptors within the descriptor set. More... | |
virtual UInt32 | images () const noexcept override |
Returns the number of image (i.e. texture) descriptors within the descriptor set. More... | |
virtual UInt32 | buffers () const noexcept override |
Returns the number of texel buffer descriptors within the descriptor set. More... | |
virtual UInt32 | samplers () const noexcept override |
Returns the number of dynamic sampler descriptors within the descriptor set. More... | |
virtual UInt32 | staticSamplers () const noexcept override |
Returns the number of static or immutable sampler descriptors within the descriptor set. More... | |
virtual UInt32 | inputAttachments () const noexcept override |
Returns the number of input attachment descriptors within the descriptor set. More... | |
virtual UniquePtr< DirectX12DescriptorSet > | allocate (const UInt32 &descriptors=0) const override |
virtual Array< UniquePtr< DirectX12DescriptorSet > > | allocateMultiple (const UInt32 &descriptorSets, const UInt32 &descriptors=0) const override |
virtual void | free (const DirectX12DescriptorSet &descriptorSet) const noexcept override |
![]() | |
virtual | ~DescriptorSetLayout () noexcept=default |
virtual Array< const descriptor_layout_type * > | descriptors () const noexcept=0 |
virtual const descriptor_layout_type & | descriptor (const UInt32 &binding) const=0 |
Returns the descriptor layout for the descriptor bound to the binding point provided with binding . More... | |
virtual UniquePtr< descriptor_set_type > | allocate (const UInt32 &descriptors=0) const=0 |
virtual Array< UniquePtr< descriptor_set_type > > | allocateMultiple (const UInt32 &descriptorSets, const UInt32 &descriptors=0) const=0 |
virtual void | free (const descriptor_set_type &descriptorSet) const noexcept=0 |
![]() | |
virtual | ~IDescriptorSetLayout () noexcept=default |
Array< const IDescriptorLayout * > | descriptors () const noexcept |
Returns the layouts of the descriptors within the descriptor set. More... | |
virtual const IDescriptorLayout & | descriptor (const UInt32 &binding) const =0 |
Returns the descriptor layout for the descriptor bound to the binding point provided with binding . More... | |
virtual const UInt32 & | space () const noexcept=0 |
Returns the space index of the descriptor set. More... | |
virtual const ShaderStage & | shaderStages () const noexcept=0 |
Returns the shader stages, the descriptor set is used in. More... | |
virtual UInt32 | uniforms () const noexcept=0 |
Returns the number of uniform/constant buffer descriptors within the descriptor set. More... | |
virtual UInt32 | storages () const noexcept=0 |
Returns the number of structured and byte address buffer descriptors within the descriptor set. More... | |
virtual UInt32 | images () const noexcept=0 |
Returns the number of image (i.e. texture) descriptors within the descriptor set. More... | |
virtual UInt32 | buffers () const noexcept=0 |
Returns the number of texel buffer descriptors within the descriptor set. More... | |
virtual UInt32 | samplers () const noexcept=0 |
Returns the number of dynamic sampler descriptors within the descriptor set. More... | |
virtual UInt32 | staticSamplers () const noexcept=0 |
Returns the number of static or immutable sampler descriptors within the descriptor set. More... | |
virtual UInt32 | inputAttachments () const noexcept=0 |
Returns the number of input attachment descriptors within the descriptor set. More... | |
UniquePtr< IDescriptorSet > | allocate (const UInt32 &descriptors=0) const |
Allocates a new descriptor set or returns an instance of an unused descriptor set. More... | |
Array< UniquePtr< IDescriptorSet > > | allocateMultiple (const UInt32 &descriptorSets, const UInt32 &descriptors=0) const |
Allocates an array of descriptor sets. More... | |
void | free (const IDescriptorSet &descriptorSet) const noexcept |
Marks a descriptor set as unused, so that it can be handed out again instead of allocating a new one. More... | |
Protected Member Functions | |
virtual UInt32 & | rootParameterIndex () noexcept |
Returns a reference of the index of the descriptor set root parameter. More... | |
virtual bool | isRuntimeArray () const noexcept |
Returns true , if the descriptor set contains an (unbounded) runtime array. More... | |
Friends | |
class | DirectX12PipelineLayout |
Additional Inherited Members | |
![]() | |
using | descriptor_layout_type = DirectX12DescriptorLayout |
using | descriptor_set_type = DirectX12DescriptorSet |
Implements a DirectX 12 DescriptorSetLayout.
|
explicit |
Initializes a DirectX 12 descriptor set layout.
device | The device, the descriptor set layout is created on. |
descriptorLayouts | The descriptor layouts of the descriptors within the descriptor set. |
space | The space or set id of the descriptor set. |
stages | The shader stages, the descriptor sets are bound to. |
|
delete |
|
delete |
|
virtualdefaultnoexcept |
|
overridevirtual |
|
overridevirtual |
|
overridevirtualnoexcept |
Returns the number of texel buffer descriptors within the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
overridevirtual |
Returns the descriptor layout for the descriptor bound to the binding point provided with binding .
Implements LiteFX::Rendering::DescriptorSetLayout< DirectX12DescriptorLayout, DirectX12DescriptorSet >.
|
virtual |
Returns the index of the first descriptor for a certain binding. The offset is relative to the heap for the descriptor (i.e. sampler for sampler descriptors and CBV/SRV/UAV for other descriptors).
binding | The binding of the descriptor. |
ArgumentOutOfRangeException | Thrown, if the descriptor set does not contain a descriptor bound to the binding point specified by binding . |
|
overridevirtualnoexcept |
|
virtualnoexcept |
Returns the parent device.
|
overridevirtualnoexcept |
|
overridevirtualnoexcept |
Returns the number of image (i.e. texture) descriptors within the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
overridevirtualnoexcept |
Returns the number of input attachment descriptors within the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
protectedvirtualnoexcept |
Returns true
, if the descriptor set contains an (unbounded) runtime array.
A descriptor set is a runtime array, if it contains exactly one descriptor, which is an unbounded array, i.e. which has a descriptor count of -1
(or 0xFFFFFFFF
).
true
, if the descriptor set contains an (unbounded) runtime array and false
otherwise.
|
virtualnoexcept |
Returns the index of the descriptor set root parameter.
|
protectedvirtualnoexcept |
Returns a reference of the index of the descriptor set root parameter.
|
overridevirtualnoexcept |
Returns the number of dynamic sampler descriptors within the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
overridevirtualnoexcept |
Returns the shader stages, the descriptor set is used in.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
overridevirtualnoexcept |
Returns the space index of the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
overridevirtualnoexcept |
Returns the number of static or immutable sampler descriptors within the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
overridevirtualnoexcept |
Returns the number of structured and byte address buffer descriptors within the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
overridevirtualnoexcept |
Returns the number of uniform/constant buffer descriptors within the descriptor set.
Implements LiteFX::Rendering::IDescriptorSetLayout.
|
friend |