LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer > Class Template Referenceabstract

Represents a graphics Pipeline. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IRenderPipeline, and LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >.

Public Types

using input_assembler_type = TInputAssembler
 
using rasterizer_type = TRasterizer
 
- Public Types inherited from LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >
using shader_program_type = TShaderProgram
 
using pipeline_layout_type = TPipelineLayout
 

Public Member Functions

virtual ~RenderPipeline () noexcept=default
 
virtual SharedPtr< input_assembler_typeinputAssembler () const noexcept=0
 
virtual SharedPtr< rasterizer_typerasterizer () const noexcept=0
 
- Public Member Functions inherited from LiteFX::Rendering::IRenderPipeline
virtual ~IRenderPipeline () noexcept=default
 
SharedPtr< IInputAssemblerinputAssembler () const noexcept
 Returns the input assembler state used by the render pipeline. More...
 
SharedPtr< IRasterizerrasterizer () const noexcept
 Returns the rasterizer state used by the render pipeline. More...
 
virtual Array< const IViewport * > viewports () const noexcept=0
 Returns the viewports, the render pipeline can draw to. More...
 
virtual Array< const IScissor * > scissors () const noexcept=0
 Returns the scissors of the render pipeline. More...
 
virtual UInt32stencilRef () const noexcept=0
 Returns a reference to the stencil reference value. More...
 
virtual Vector4fblendFactors () const noexcept=0
 Returns a reference of the constant blend factors for the pipeline. More...
 
virtual const bool & alphaToCoverage () const noexcept=0
 Returns true, if the pipeline uses Alpha-to-Coverage multi-sampling. More...
 
- 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::Pipeline< TPipelineLayout, TShaderProgram >
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::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, typename TInputAssembler, typename TRasterizer>
requires rtti::implements<TInputAssembler, InputAssembler<typename TInputAssembler::vertex_buffer_layout_type, typename TInputAssembler::index_buffer_layout_type>> && rtti::implements<TRasterizer, Rasterizer>
class LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >

Represents a graphics Pipeline.

Template Parameters
TPipelineLayoutThe type of the render pipeline layout. Must implement PipelineLayout.
TShaderProgramThe type of the shader program. Must implement ShaderProgram.
TInputAssemblerThe type of the input assembler state. Must implement InputAssembler.
TRasterizerThe type of the rasterizer state. Must implement Rasterizer.
See also
RenderPipelineBuilder

Member Typedef Documentation

◆ input_assembler_type

template<typename TPipelineLayout , typename TShaderProgram , typename TInputAssembler , typename TRasterizer >
using LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::input_assembler_type = TInputAssembler

◆ rasterizer_type

template<typename TPipelineLayout , typename TShaderProgram , typename TInputAssembler , typename TRasterizer >
using LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::rasterizer_type = TRasterizer

Constructor & Destructor Documentation

◆ ~RenderPipeline()

template<typename TPipelineLayout , typename TShaderProgram , typename TInputAssembler , typename TRasterizer >
virtual LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::~RenderPipeline ( )
virtualdefaultnoexcept

Member Function Documentation

◆ inputAssembler()

template<typename TPipelineLayout , typename TShaderProgram , typename TInputAssembler , typename TRasterizer >
virtual SharedPtr< input_assembler_type > LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::inputAssembler ( ) const
pure virtualnoexcept

◆ rasterizer()

template<typename TPipelineLayout , typename TShaderProgram , typename TInputAssembler , typename TRasterizer >
virtual SharedPtr< rasterizer_type > LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::rasterizer ( ) const
pure virtualnoexcept