LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram > Class Template Referenceabstract

Represents a pipeline state. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IPipeline, and LiteFX::Rendering::StateResource.

Inherited by LiteFX::Rendering::ComputePipeline< TPipelineLayout, TShaderProgram >, and LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >.

Public Types

using shader_program_type = TShaderProgram
 
using pipeline_layout_type = TPipelineLayout
 

Public Member Functions

virtual ~Pipeline () noexcept=default
 
virtual SharedPtr< const shader_program_typeprogram () const noexcept=0
 
virtual SharedPtr< const pipeline_layout_typelayout () const noexcept=0
 
- Public Member Functions inherited from LiteFX::Rendering::IPipeline
virtual ~IPipeline () noexcept=default
 
SharedPtr< const IShaderProgramprogram () const noexcept
 Returns the shader program used by the pipeline. More...
 
SharedPtr< const IPipelineLayoutlayout () const noexcept
 Returns the layout of the render pipeline. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IStateResource
virtual ~IStateResource () noexcept=default
 
virtual const Stringname () const noexcept=0
 Returns the name of the resource. More...
 
- Public Member Functions inherited from LiteFX::Rendering::StateResource
 StateResource (StringView name)
 Initializes a new state resource instance. More...
 
 StateResource (StateResource &&)=delete
 
 StateResource (const StateResource &)=delete
 
virtual ~StateResource () noexcept
 
virtual const Stringname () const noexcept override
 Returns the name of the resource. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LiteFX::Rendering::StateResource
 StateResource () noexcept
 
Stringname () noexcept
 

Detailed Description

template<typename TPipelineLayout, typename TShaderProgram>
requires rtti::implements<TPipelineLayout, PipelineLayout<typename TPipelineLayout::descriptor_set_layout_type, typename TPipelineLayout::push_constants_layout_type>> && rtti::implements<TShaderProgram, ShaderProgram<typename TShaderProgram::shader_module_type>>
class LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >

Represents a pipeline state.

Template Parameters
TPipelineLayoutThe type of the render pipeline layout. Must implement PipelineLayout.
TShaderProgramThe type of the shader program. Must implement ShaderProgram.
See also
RenderPipeline, ComputePipeline

Member Typedef Documentation

◆ pipeline_layout_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >::pipeline_layout_type = TPipelineLayout

◆ shader_program_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >::shader_program_type = TShaderProgram

Constructor & Destructor Documentation

◆ ~Pipeline()

template<typename TPipelineLayout , typename TShaderProgram >
virtual LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >::~Pipeline ( )
virtualdefaultnoexcept

Member Function Documentation

◆ layout()

template<typename TPipelineLayout , typename TShaderProgram >
virtual SharedPtr< const pipeline_layout_type > LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >::layout ( ) const
pure virtualnoexcept

◆ program()

template<typename TPipelineLayout , typename TShaderProgram >
virtual SharedPtr< const shader_program_type > LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >::program ( ) const
pure virtualnoexcept