LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::IRenderPipeline Class Referenceabstract

The interface for a render pipeline. More...

#include <rendering_api.hpp>

Inherits LiteFX::Rendering::IPipeline.

Inherited by LiteFX::Rendering::RenderPipeline< DirectX12PipelineLayout, DirectX12ShaderProgram, DirectX12InputAssembler, DirectX12Rasterizer >, LiteFX::Rendering::RenderPipeline< VulkanPipelineLayout, VulkanShaderProgram, VulkanInputAssembler, VulkanRasterizer >, and LiteFX::Rendering::RenderPipeline< TPipelineLayout, TShaderProgram, TInputAssembler, TRasterizer >.

Public Member Functions

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...
 

Detailed Description

The interface for a render pipeline.

Constructor & Destructor Documentation

◆ ~IRenderPipeline()

virtual LiteFX::Rendering::IRenderPipeline::~IRenderPipeline ( )
virtualdefaultnoexcept

Member Function Documentation

◆ alphaToCoverage()

virtual const bool & LiteFX::Rendering::IRenderPipeline::alphaToCoverage ( ) const
pure virtualnoexcept

Returns true, if the pipeline uses Alpha-to-Coverage multi-sampling.

Alpha-to-Coverage is a multi-sampling technique used for partially transparent sprites or textures (such as foliage) to prevent visible flickering along edges. If enabled, the alpha-channel of the first (non-depth/stencil) render target is used to generate a temporary coverage mask that is combined with the fragment coverage mask using a logical AND.

Returns
true, if the pipeline uses Alpha-to-Coverage multi-sampling.

Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.

◆ blendFactors()

virtual Vector4f & LiteFX::Rendering::IRenderPipeline::blendFactors ( ) const
pure virtualnoexcept

Returns a reference of the constant blend factors for the pipeline.

You can change the values inside this vector reference to influence the constant blend factors. Blend factors are set for all render targets that use the blend factors BlendFactor::ConstantColor, BlendFactor::OneMinusConstantColor, BlendFactor::ConstantAlpha or BlendFactor::OneMinusConstantAlpha. They are set on each call to RenderPipeline::use.

Returns
A reference of the constant blend factors for the pipeline.

Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.

◆ inputAssembler()

SharedPtr< IInputAssembler > LiteFX::Rendering::IRenderPipeline::inputAssembler ( ) const
inlinenoexcept

Returns the input assembler state used by the render pipeline.

Returns
The input assembler state used by the render pipeline.

◆ rasterizer()

SharedPtr< IRasterizer > LiteFX::Rendering::IRenderPipeline::rasterizer ( ) const
inlinenoexcept

Returns the rasterizer state used by the render pipeline.

Returns
The rasterizer state used by the render pipeline.

◆ scissors()

virtual Array< const IScissor * > LiteFX::Rendering::IRenderPipeline::scissors ( ) const
pure virtualnoexcept

Returns the scissors of the render pipeline.

Returns
The scissors of the render pipeline.

Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.

◆ stencilRef()

virtual UInt32 & LiteFX::Rendering::IRenderPipeline::stencilRef ( ) const
pure virtualnoexcept

Returns a reference to the stencil reference value.

The stencil reference value is used by the stencil test and is set with each call to RenderPipeline::use.

Returns
A reference to the stencil reference value.

Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.

◆ viewports()

virtual Array< const IViewport * > LiteFX::Rendering::IRenderPipeline::viewports ( ) const
pure virtualnoexcept

Returns the viewports, the render pipeline can draw to.

Returns
The viewports, the render pipeline can draw to.

Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.