SPARK  0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
spark::render::RenderPipeline< PipelineLayoutType, ShaderProgramType, InputAssemblerType, RasterizerType > Class Template Referenceabstract

Represents a graphics IPipeline. More...

#include <RenderPipeilne.h>

Inheritance diagram for spark::render::RenderPipeline< PipelineLayoutType, ShaderProgramType, InputAssemblerType, RasterizerType >:
spark::render::IRenderPipeline spark::render::StateResource spark::render::Pipeline< PipelineLayoutType, ShaderProgramType > spark::render::IPipeline spark::render::IStateResource spark::render::IPipeline spark::render::IStateResource spark::render::IStateResource

Public Types

using input_assembler_type = InputAssemblerType
 
using rasterizer_type = RasterizerType
 
- Public Types inherited from spark::render::Pipeline< PipelineLayoutType, ShaderProgramType >
using shader_program_type = ShaderProgramType
 
using pipeline_layout_type = PipelineLayoutType
 

Public Member Functions

virtual std::shared_ptr< input_assembler_type > inputAssembler () const noexcept=0
 Gets the input assembler state used by the render pipeline.
 
virtual std::shared_ptr< rasterizer_type > rasterizer () const noexcept=0
 Gets the rasterizer state used by the render pipeline.
 
- Public Member Functions inherited from spark::render::IRenderPipeline
std::shared_ptr< IInputAssemblerinputAssembler () const noexcept
 Gets the input assembler state used by the render pipeline.
 
std::shared_ptr< IRasterizerrasterizer () const noexcept
 Gets the rasterizer state used by the render pipeline.
 
virtual bool alphaToCoverage () const noexcept=0
 Checks if the render pipeline is using alpha to coverage.
 
- Public Member Functions inherited from spark::render::IPipeline
std::shared_ptr< const IShaderProgramprogram () const noexcept
 Gets the shader program used by the pipeline.
 
std::shared_ptr< IPipelineLayoutlayout () const noexcept
 Gets the pipeline layout.
 
- Public Member Functions inherited from spark::render::StateResource
 StateResource (std::string_view name) noexcept
 Initializes a new StateResource instance.
 
 StateResource (const StateResource &other)=delete
 
 StateResource (StateResource &&other) noexcept
 
StateResourceoperator= (const StateResource &other)=delete
 
StateResourceoperator= (StateResource &&other) noexcept
 
const std::string & name () const noexcept final
 Gets the name of the state resource.
 
- Public Member Functions inherited from spark::render::Pipeline< PipelineLayoutType, ShaderProgramType >
virtual std::shared_ptr< const shader_program_type > program () const noexcept=0
 Gets the shader program used by the pipeline.
 
virtual std::shared_ptr< pipeline_layout_type > layout () const noexcept=0
 Gets the pipeline layout.
 

Additional Inherited Members

- Protected Member Functions inherited from spark::render::StateResource
 StateResource () noexcept
 Initializes a new StateResource instance with an empty name.
 
std::string & name () noexcept
 Gets the name of the state resource.
 

Detailed Description

template<typename PipelineLayoutType, typename ShaderProgramType, typename InputAssemblerType, typename RasterizerType>
class spark::render::RenderPipeline< PipelineLayoutType, ShaderProgramType, InputAssemblerType, RasterizerType >

Represents a graphics IPipeline.

Template Parameters
InputAssemblerTypeType of the input assembler state used by the render pipeline. (inherits from IInputAssembler)
RasterizerTypeType of the rasterizer state used by the render pipeline. (inherits from IRasterizer)

Member Function Documentation

◆ inputAssembler()

template<typename PipelineLayoutType , typename ShaderProgramType , typename InputAssemblerType , typename RasterizerType >
virtual std::shared_ptr< input_assembler_type > spark::render::RenderPipeline< PipelineLayoutType, ShaderProgramType, InputAssemblerType, RasterizerType >::inputAssembler ( ) const
nodiscardpure virtualnoexcept

Gets the input assembler state used by the render pipeline.

Returns
A std::shared_ptr to the IInputAssembler state used by the render pipeline.

Implemented in spark::render::vk::VulkanRenderPipeline.

◆ rasterizer()

template<typename PipelineLayoutType , typename ShaderProgramType , typename InputAssemblerType , typename RasterizerType >
virtual std::shared_ptr< rasterizer_type > spark::render::RenderPipeline< PipelineLayoutType, ShaderProgramType, InputAssemblerType, RasterizerType >::rasterizer ( ) const
nodiscardpure virtualnoexcept

Gets the rasterizer state used by the render pipeline.

Returns
A std::shared_ptr to the IRasterizer state used by the render pipeline.

Implemented in spark::render::vk::VulkanRenderPipeline.