LiteFX  0.1.1.2021
Computer Graphics Engine
LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule > Class Template Referenceabstract

Represents a the layout of a IRenderPipeline. More...

#include <rendering.hpp>

Public Types

using descriptor_set_layout_type = TDescriptorSetLayout
 
using shader_program_type = TShaderProgram
 
using descriptor_set_type = TDescriptorSet
 

Public Member Functions

virtual ~IRenderPipelineLayout () noexcept=default
 
virtual const TShaderProgram & program () const noexcept=0
 Returns the shader program, the pipeline uses for drawing. More...
 
virtual const TDescriptorSetLayout & layout (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 TDescriptorSetLayout * > layouts () const noexcept=0
 Returns all descriptor set layouts, the pipeline has been initialized with. More...
 

Detailed Description

template<typename TDescriptorSetLayout, typename TShaderProgram, typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
class LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >

Represents a the layout of a IRenderPipeline.

Template Parameters
TDescriptorSetLayoutThe type of the descriptor set layout. Must implement IDescriptorSetLayout.
TShaderProgramThe type of the shader program. Must implement IShaderProgram.

Member Typedef Documentation

◆ descriptor_set_layout_type

template<typename TDescriptorSetLayout , typename TShaderProgram , typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
using LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >::descriptor_set_layout_type = TDescriptorSetLayout

◆ descriptor_set_type

template<typename TDescriptorSetLayout , typename TShaderProgram , typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
using LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >::descriptor_set_type = TDescriptorSet

◆ shader_program_type

template<typename TDescriptorSetLayout , typename TShaderProgram , typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
using LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >::shader_program_type = TShaderProgram

Constructor & Destructor Documentation

◆ ~IRenderPipelineLayout()

template<typename TDescriptorSetLayout , typename TShaderProgram , typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
virtual LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >::~IRenderPipelineLayout ( )
virtualdefaultnoexcept

Member Function Documentation

◆ layout()

template<typename TDescriptorSetLayout , typename TShaderProgram , typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
virtual const TDescriptorSetLayout& LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >::layout ( const UInt32 space) const
pure 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 .

Implemented in LiteFX::Rendering::Backends::VulkanRenderPipelineLayout, and LiteFX::Rendering::Backends::DirectX12RenderPipelineLayout.

◆ layouts()

template<typename TDescriptorSetLayout , typename TShaderProgram , typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
virtual Array<const TDescriptorSetLayout*> LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >::layouts ( ) const
pure virtualnoexcept

Returns all descriptor set layouts, the pipeline has been initialized with.

Returns
All descriptor set layouts, the pipeline has been initialized with.

Implemented in LiteFX::Rendering::Backends::VulkanRenderPipelineLayout, and LiteFX::Rendering::Backends::DirectX12RenderPipelineLayout.

◆ program()

template<typename TDescriptorSetLayout , typename TShaderProgram , typename TDescriptorLayout = TDescriptorSetLayout::descriptor_layout_type, typename TDescriptorSet = TDescriptorSetLayout::descriptor_set_type, typename TShaderModule = TShaderProgram::shader_module_type>
virtual const TShaderProgram& LiteFX::Rendering::IRenderPipelineLayout< TDescriptorSetLayout, TShaderProgram, TDescriptorLayout, TDescriptorSet, TShaderModule >::program ( ) const
pure virtualnoexcept

Returns the shader program, the pipeline uses for drawing.

Returns
The shader program, the pipeline uses for drawing.

Implemented in LiteFX::Rendering::Backends::VulkanRenderPipelineLayout, and LiteFX::Rendering::Backends::DirectX12RenderPipelineLayout.