LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout > Class Template Referenceabstract

Represents a the layout of a RenderPipeline or a ComputePipeline. 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

virtual ~PipelineLayout () noexcept=default
 
virtual const descriptor_set_layout_typedescriptorSet (const UInt32 &space) const =0
 Returns the descriptor set layout for the descriptor set that is bound to the space provided by space . More...
 
virtual Array< const descriptor_set_layout_type * > descriptorSets () const noexcept=0
 
virtual const push_constants_layout_typepushConstants () const noexcept=0
 Returns the push constants layout, or nullptr, if the pipeline does not use any push constants. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IPipelineLayout
virtual ~IPipelineLayout () noexcept=default
 
virtual const IDescriptorSetLayoutdescriptorSet (const UInt32 &space) const =0
 Returns the descriptor set layout for the descriptor set that is bound to the space provided by space . More...
 
Array< const IDescriptorSetLayout * > descriptorSets () const noexcept
 Returns all descriptor set layouts, the pipeline has been initialized with. More...
 
virtual const IPushConstantsLayoutpushConstants () const noexcept=0
 Returns the push constants layout, or nullptr, if the pipeline does not use any push constants. More...
 

Detailed Description

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

Represents a the layout of a RenderPipeline or a ComputePipeline.

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()

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

Member Function Documentation

◆ descriptorSet()

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

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 Array< const descriptor_set_layout_type * > LiteFX::Rendering::PipelineLayout< TDescriptorSetLayout, TPushConstantsLayout >::descriptorSets ( ) const
pure virtualnoexcept

◆ pushConstants()

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

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.