LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX::Rendering::IDescriptorSet Class Referenceabstract

The interface for a descriptor set. More...

#include <rendering_api.hpp>

Inherited by LiteFX::Rendering::DescriptorSet< IDirectX12Buffer, IDirectX12Image, IDirectX12Sampler, IDirectX12AccelerationStructure >, LiteFX::Rendering::DescriptorSet< IVulkanBuffer, IVulkanImage, IVulkanSampler, IVulkanAccelerationStructure >, and LiteFX::Rendering::DescriptorSet< TBuffer, TImage, TSampler, TAccelerationStructure >.

Public Member Functions

virtual ~IDescriptorSet () noexcept=default
 
void update (UInt32 binding, const IBuffer &buffer, UInt32 bufferElement=0, UInt32 elements=0, UInt32 firstDescriptor=0) const
 Updates one or more buffer descriptors within the current descriptor set.
 
void update (UInt32 binding, const IImage &texture, UInt32 descriptor=0, UInt32 firstLevel=0, UInt32 levels=0, UInt32 firstLayer=0, UInt32 layers=0) const
 Updates one or more texture descriptors within the current descriptor set.
 
void update (UInt32 binding, const ISampler &sampler, UInt32 descriptor=0) const
 Updates one or more sampler descriptors within the current descriptor set.
 
void update (UInt32 binding, const IAccelerationStructure &accelerationStructure, UInt32 descriptor=0) const
 Updates an acceleration structure within the current descriptor set.
 

Protected Member Functions

 IDescriptorSet () noexcept=default
 
 IDescriptorSet (const IDescriptorSet &)=default
 
 IDescriptorSet (IDescriptorSet &&) noexcept=default
 
IDescriptorSetoperator= (const IDescriptorSet &)=default
 
IDescriptorSetoperator= (IDescriptorSet &&) noexcept=default
 

Detailed Description

The interface for a descriptor set.

Constructor & Destructor Documentation

◆ IDescriptorSet() [1/3]

LiteFX::Rendering::IDescriptorSet::IDescriptorSet ( )
protecteddefaultnoexcept

◆ IDescriptorSet() [2/3]

LiteFX::Rendering::IDescriptorSet::IDescriptorSet ( const IDescriptorSet & )
protecteddefault

◆ IDescriptorSet() [3/3]

LiteFX::Rendering::IDescriptorSet::IDescriptorSet ( IDescriptorSet && )
protecteddefaultnoexcept

◆ ~IDescriptorSet()

virtual LiteFX::Rendering::IDescriptorSet::~IDescriptorSet ( )
virtualdefaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

IDescriptorSet & LiteFX::Rendering::IDescriptorSet::operator= ( const IDescriptorSet & )
protecteddefault

◆ operator=() [2/2]

IDescriptorSet & LiteFX::Rendering::IDescriptorSet::operator= ( IDescriptorSet && )
protecteddefaultnoexcept

◆ update() [1/4]

void LiteFX::Rendering::IDescriptorSet::update ( UInt32 binding,
const IAccelerationStructure & accelerationStructure,
UInt32 descriptor = 0 ) const
inline

Updates an acceleration structure within the current descriptor set.

Parameters
bindingThe acceleration structure binding point.
accelerationStructureThe acceleration structure to write to the descriptor set.
descriptorThe index of the descriptor in the descriptor array to bind the acceleration structure to.

◆ update() [2/4]

void LiteFX::Rendering::IDescriptorSet::update ( UInt32 binding,
const IBuffer & buffer,
UInt32 bufferElement = 0,
UInt32 elements = 0,
UInt32 firstDescriptor = 0 ) const
inline

Updates one or more buffer descriptors within the current descriptor set.

Parameters
bindingThe buffer binding point.
bufferThe buffer to write to the descriptor set.
bufferElementThe index of the first element in the buffer to bind to the descriptor set.
elementsThe number of elements from the buffer to bind to the descriptor set. A value of 0 binds all available elements, starting at bufferElement .
firstDescriptorThe index of the first descriptor in the descriptor array to update.

◆ update() [3/4]

void LiteFX::Rendering::IDescriptorSet::update ( UInt32 binding,
const IImage & texture,
UInt32 descriptor = 0,
UInt32 firstLevel = 0,
UInt32 levels = 0,
UInt32 firstLayer = 0,
UInt32 layers = 0 ) const
inline

Updates one or more texture descriptors within the current descriptor set.

The exact representation of the level and layer parameters depends on the dimension of the provided texture, as well as the type of the descriptor identified by the binding parameter.

If the texture itself is not an array (i.e. the number of layers equals 1), the parameters firstLayer and layers are ignored.

The descriptor type dictates, how mip-maps can be provided. If the descriptor type identifies a writable texture, the firstLevel parameter specifies the mip-map level to write to (or read from). Multiple levels are not allowed in this case, so the levels parameter is ignored. Instead, you have to bind them to separate descriptors. Furthermore, the firstLayer and layers parameter can be used to specify the number of depth or W-slices of a writable 3D texture or the side(s) of a cube map.

Parameters
bindingThe texture binding point.
textureThe texture to write to the descriptor set.
descriptorThe index of the descriptor in the descriptor array to bind the texture to.
firstLevelThe index of the first mip-map level to bind.
levelsThe number of mip-map levels to bind. A value of 0 binds all available levels, starting at firstLevel .
firstLayerThe index of the first layer to bind.
layersThe number of layers to bind. A value of 0 binds all available layers, starting at firstLayer .

◆ update() [4/4]

void LiteFX::Rendering::IDescriptorSet::update ( UInt32 binding,
const ISampler & sampler,
UInt32 descriptor = 0 ) const
inline

Updates one or more sampler descriptors within the current descriptor set.

Parameters
bindingThe sampler binding point.
samplerThe sampler to write to the descriptor set.
descriptorThe index of the descriptor in the descriptor array to bind the sampler to.