LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout > Class Template Referenceabstract

Represents a the layout of a RenderPipeline, ComputePipeline or RayTracingPipeline. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IPipelineLayout.

Public Types

using descriptor_set_layout_type = TDescriptorSetLayout
 
using push_constants_layout_type = TPushConstantsLayout
 

Public Member Functions

 ~PipelineLayout () noexcept override=default
 
const descriptor_set_layout_typedescriptorSet (UInt32 space) const override=0
 Returns the descriptor set layout for the descriptor set that is bound to the space provided by space .
Parameters
spaceThe space to request the descriptor set layout for.
Returns
The descriptor set layout for the descriptor set that is bound to the space provided by space .

 
virtual const Array< SharedPtr< const descriptor_set_layout_type > > & descriptorSets () const =0
 
const push_constants_layout_typepushConstants () const noexcept override=0
 Returns the push constants layout, or nullptr, if the pipeline does not use any push constants.
Returns
The push constants layout, or nullptr, if the pipeline does not use any push constants.

 
- Public Member Functions inherited from LiteFX::Rendering::IPipelineLayout
 ~IPipelineLayout () noexcept override=default
 
Enumerable< SharedPtr< const IDescriptorSetLayout > > descriptorSets () const
 Returns all descriptor set layouts, the pipeline has been initialized with.
 
- Public Member Functions inherited from LiteFX::SharedObject
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.
 

Protected Member Functions

 PipelineLayout () noexcept=default
 
 PipelineLayout (const PipelineLayout &)=default
 
 PipelineLayout (PipelineLayout &&) noexcept=default
 
PipelineLayoutoperator= (const PipelineLayout &)=default
 
PipelineLayoutoperator= (PipelineLayout &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::Rendering::IPipelineLayout
 IPipelineLayout () noexcept=default
 
 IPipelineLayout (const IPipelineLayout &)=default
 
 IPipelineLayout (IPipelineLayout &&) noexcept=default
 
IPipelineLayoutoperator= (const IPipelineLayout &)=default
 
IPipelineLayoutoperator= (IPipelineLayout &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::SharedObject
 SharedObject () noexcept=default
 Initializes a new shared object.
 
 SharedObject (SharedObject &&) noexcept=default
 
 SharedObject (const SharedObject &)=default
 
SharedObjectoperator= (SharedObject &&) noexcept=default
 
SharedObjectoperator= (const SharedObject &)=default
 

Additional Inherited Members

- Static Protected Member Functions inherited from LiteFX::SharedObject
template<typename T , typename... TArgs>
static auto create (TArgs &&... args) -> SharedPtr< T >
 Generic factory method used to create instances of the shared object.
 

Detailed Description

template<typename TDescriptorSetLayout, typename TPushConstantsLayout>
requires meta::implements<TDescriptorSetLayout, DescriptorSetLayout<typename TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSetLayout::descriptor_set_type>> && meta::implements<TPushConstantsLayout, PushConstantsLayout<typename TPushConstantsLayout::push_constants_range_type>>
class LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >

Represents a the layout of a RenderPipeline, ComputePipeline or RayTracingPipeline.

Template Parameters
TDescriptorSetLayoutThe type of the descriptor set layout. Must implement DescriptorSetLayout.
TPushConstantsLayoutThe type of the push constants layout. Must implement PushConstantsLayout.

Member Typedef Documentation

◆ descriptor_set_layout_type

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
using LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::descriptor_set_layout_type = TDescriptorSetLayout

◆ push_constants_layout_type

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
using LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::push_constants_layout_type = TPushConstantsLayout

Constructor & Destructor Documentation

◆ PipelineLayout() [1/3]

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::PipelineLayout ( )
protecteddefaultnoexcept

◆ PipelineLayout() [2/3]

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::PipelineLayout ( const PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout > & )
protecteddefault

◆ PipelineLayout() [3/3]

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::PipelineLayout ( PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout > && )
protecteddefaultnoexcept

◆ ~PipelineLayout()

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::~PipelineLayout ( )
overridedefaultnoexcept

Member Function Documentation

◆ descriptorSet()

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
const descriptor_set_layout_type & LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::descriptorSet ( UInt32 space) const
overridepure virtual

Returns the descriptor set layout for the descriptor set that is bound to the space provided by space .

Parameters
spaceThe space to request the descriptor set layout for.
Returns
The descriptor set layout for the descriptor set that is bound to the space provided by space .

Implements LiteFX::Rendering::IPipelineLayout.

Implemented in LiteFX::Rendering::Backends::DirectX12PipelineLayout, and LiteFX::Rendering::Backends::VulkanPipelineLayout.

◆ descriptorSets()

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
virtual const Array< SharedPtr< const descriptor_set_layout_type > > & LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::descriptorSets ( ) const
pure virtual

◆ operator=() [1/2]

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
PipelineLayout & LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::operator= ( const PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout > & )
protecteddefault

◆ operator=() [2/2]

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
PipelineLayout & LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::operator= ( PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout > && )
protecteddefaultnoexcept

◆ pushConstants()

template<typename TDescriptorSetLayout , typename TPushConstantsLayout >
const push_constants_layout_type * LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::pushConstants ( ) const
overridepure virtualnoexcept

Returns the push constants layout, or nullptr, if the pipeline does not use any push constants.

Returns
The push constants layout, or nullptr, if the pipeline does not use any push constants.

Implements LiteFX::Rendering::IPipelineLayout.

Implemented in LiteFX::Rendering::Backends::DirectX12PipelineLayout, and LiteFX::Rendering::Backends::VulkanPipelineLayout.