LiteFX 0.5.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
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

 ~RenderPipeline () noexcept override=default
virtual SharedPtr< input_assembler_typeinputAssembler () const noexcept=0
virtual SharedPtr< rasterizer_typerasterizer () const noexcept=0
Public Member Functions inherited from LiteFX::Rendering::IRenderPipeline
 ~IRenderPipeline () noexcept override=default
SharedPtr< IInputAssemblerinputAssembler () const noexcept
 Returns the input assembler state used by the render pipeline.
SharedPtr< IRasterizerrasterizer () const noexcept
 Returns the rasterizer state used by the render pipeline.
virtual bool alphaToCoverage () const noexcept=0
 Returns true, if the pipeline uses Alpha-to-Coverage multi-sampling.
virtual MultiSamplingLevel samples () const noexcept=0
 Returns the multi-sampling level of the pipeline.
virtual void updateSamples (MultiSamplingLevel samples)=0
 Changes the multi-sampling level of the pipeline.
Public Member Functions inherited from LiteFX::Rendering::IPipeline
 ~IPipeline () noexcept override=default
SharedPtr< const IShaderProgramprogram () const noexcept
 Returns the shader program used by the pipeline.
SharedPtr< const IPipelineLayoutlayout () const noexcept
 Returns the layout of the render pipeline.
Public Member Functions inherited from LiteFX::Rendering::IStateResource
virtual ~IStateResource () noexcept=default
 Releases the state resource instance.
Public Member Functions inherited from LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >
 ~Pipeline () noexcept override=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 () noexcept override
 Releases the state resource instance.
const Stringname () const noexcept override
 Returns the name of the resource.
Returns
The name of the resource.

Protected Member Functions

 RenderPipeline () noexcept=default
 RenderPipeline (RenderPipeline &&) noexcept=default
 RenderPipeline (const RenderPipeline &)=default
RenderPipelineoperator= (RenderPipeline &&) noexcept=default
RenderPipelineoperator= (const RenderPipeline &)=default
Protected Member Functions inherited from LiteFX::Rendering::IRenderPipeline
 IRenderPipeline () noexcept=default
 IRenderPipeline (IRenderPipeline &&) noexcept=default
 IRenderPipeline (const IRenderPipeline &)=delete
IRenderPipelineoperator= (IRenderPipeline &&) noexcept=default
IRenderPipelineoperator= (const IRenderPipeline &)=delete
Protected Member Functions inherited from LiteFX::Rendering::IPipeline
 IPipeline () noexcept=default
 IPipeline (const IPipeline &)=delete
 IPipeline (IPipeline &&) noexcept=default
IPipelineoperator= (const IPipeline &)=delete
IPipelineoperator= (IPipeline &&) noexcept=default
Protected Member Functions inherited from LiteFX::Rendering::IStateResource
 IStateResource () noexcept=default
 IStateResource (const IStateResource &)=delete
 IStateResource (IStateResource &&) noexcept=default
IStateResourceoperator= (const IStateResource &)=delete
IStateResourceoperator= (IStateResource &&) noexcept=default
Protected Member Functions inherited from LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >
 Pipeline () noexcept=default
 Pipeline (const Pipeline &)=default
 Pipeline (Pipeline &&) noexcept=default
Pipelineoperator= (const Pipeline &)=default
Pipelineoperator= (Pipeline &&) noexcept=default
Protected Member Functions inherited from LiteFX::Rendering::StateResource
 StateResource ()
 Initializes a new state resource instance with a default name.
 StateResource (StringView name)
 Initializes a new state resource instance.
 StateResource (StateResource &&) noexcept
StateResourceoperator= (StateResource &&) noexcept
 StateResource (const StateResource &)=delete
StateResourceoperator= (const StateResource &)=delete
Stringname () noexcept

Detailed Description

template<typename TPipelineLayout, typename TShaderProgram, typename TInputAssembler, typename TRasterizer>
requires meta::implements<TInputAssembler, InputAssembler<typename TInputAssembler::vertex_buffer_layout_type, typename TInputAssembler::index_buffer_layout_type>> && meta::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() [1/3]

template<typename TPipelineLayout, typename TShaderProgram, typename TInputAssembler, typename TRasterizer>
LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::RenderPipeline ( )
protecteddefaultnoexcept

◆ RenderPipeline() [2/3]

template<typename TPipelineLayout, typename TShaderProgram, typename TInputAssembler, typename TRasterizer>
LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::RenderPipeline ( RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer > && )
protecteddefaultnoexcept

◆ RenderPipeline() [3/3]

template<typename TPipelineLayout, typename TShaderProgram, typename TInputAssembler, typename TRasterizer>
LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::RenderPipeline ( const RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer > & )
protecteddefault

◆ ~RenderPipeline()

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

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

◆ operator=() [1/2]

template<typename TPipelineLayout, typename TShaderProgram, typename TInputAssembler, typename TRasterizer>
RenderPipeline & LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::operator= ( const RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer > & )
protecteddefault

◆ operator=() [2/2]

template<typename TPipelineLayout, typename TShaderProgram, typename TInputAssembler, typename TRasterizer>
RenderPipeline & LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >::operator= ( RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer > && )
protecteddefaultnoexcept

◆ 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