LiteFX 0.4.1.2025
Computer Graphics Engine
|
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 | |
~IRenderPipeline () noexcept override=default | |
SharedPtr< IInputAssembler > | inputAssembler () const noexcept |
Returns the input assembler state used by the render pipeline. | |
SharedPtr< IRasterizer > | rasterizer () 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. | |
![]() | |
~IPipeline () noexcept override=default | |
SharedPtr< const IShaderProgram > | program () const noexcept |
Returns the shader program used by the pipeline. | |
SharedPtr< const IPipelineLayout > | layout () const noexcept |
Returns the layout of the render pipeline. | |
![]() | |
virtual | ~IStateResource () noexcept=default |
Releases the state resource instance. | |
virtual const String & | name () const noexcept=0 |
Returns the name of the resource. | |
Protected Member Functions | |
IRenderPipeline () noexcept=default | |
IRenderPipeline (IRenderPipeline &&) noexcept=default | |
IRenderPipeline (const IRenderPipeline &)=delete | |
IRenderPipeline & | operator= (IRenderPipeline &&) noexcept=default |
IRenderPipeline & | operator= (const IRenderPipeline &)=delete |
![]() | |
IPipeline () noexcept=default | |
IPipeline (const IPipeline &)=delete | |
IPipeline (IPipeline &&) noexcept=default | |
IPipeline & | operator= (const IPipeline &)=delete |
IPipeline & | operator= (IPipeline &&) noexcept=default |
![]() | |
IStateResource () noexcept=default | |
IStateResource (const IStateResource &)=delete | |
IStateResource (IStateResource &&) noexcept=default | |
IStateResource & | operator= (const IStateResource &)=delete |
IStateResource & | operator= (IStateResource &&) noexcept=default |
The interface for a render pipeline.
|
protecteddefaultnoexcept |
|
protecteddefaultnoexcept |
|
protecteddelete |
|
overridedefaultnoexcept |
|
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.
true
, if the pipeline uses Alpha-to-Coverage multi-sampling.Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.
|
inlinenoexcept |
Returns the input assembler state used by the render pipeline.
|
protecteddelete |
|
protecteddefaultnoexcept |
|
inlinenoexcept |
Returns the rasterizer state used by the render pipeline.
|
pure virtualnoexcept |
Returns the multi-sampling level of the pipeline.
When using the pipeline, the multi-sampling level must match the level of the render target images.
Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.
|
pure virtual |
Changes the multi-sampling level of the pipeline.
Changing the multi-sampling level of a pipeline causes it to be re-created, which is considered an expensive operation. Don't use this method to change samples frequently, for example when binding frame buffers with different sample levels. Instead, use multiple pipelines for this purpose.
Implemented in LiteFX::Rendering::Backends::DirectX12RenderPipeline, and LiteFX::Rendering::Backends::VulkanRenderPipeline.