Castor3D 0.16.0
Multiplatform 3D engine
Public Types | Public Member Functions | List of all members
castor3d::RenderPipeline Class Reference

#include <RenderPipeline.hpp>

Inheritance diagram for castor3d::RenderPipeline:
Inheritance graph
[legend]
Collaboration diagram for castor3d::RenderPipeline:
Collaboration graph
[legend]

Public Types

enum  Descriptor {
  eTextures = 0 , eBuffers = 1 , eMeshBuffers = 2 , eVertexBuffers = 3 ,
  Descriptor_COUNT , Descriptor_MIN = eTextures
}
 

Public Member Functions

C3D_API RenderPipeline (RenderNodesPass &owner, RenderSystem &renderSystem, ashes::PipelineDepthStencilStateCreateInfo dsState, ashes::PipelineRasterizationStateCreateInfo rsState, ashes::PipelineColorBlendStateCreateInfo blState, ashes::PipelineMultisampleStateCreateInfo msState, ShaderProgramRPtr program, PipelineFlags const &flags)
 Constructor.
 
C3D_API void initialise (RenderDevice const &device, VkRenderPass renderPass)
 Initialises the pipeline.
 
C3D_API void cleanup ()
 Cleans up the pipeline.
 
C3D_API void setVertexLayouts (ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 
void setAdditionalDescriptorSetLayout (ashes::DescriptorSetLayout const &layout) noexcept
 
void setAdditionalDescriptorSet (ashes::DescriptorSet const &descriptorSet) noexcept
 
void setMeshletDescriptorSetLayout (ashes::DescriptorSetLayout const &layout) noexcept
 
void setVertexLayouts (castor::Vector< ashes::PipelineVertexInputStateCreateInfo > layouts) noexcept
 
void setPushConstantRanges (ashes::VkPushConstantRangeArray const &pushConstantRanges) noexcept
 
void setViewport (VkViewport const &viewport)
 
void setScissor (VkRect2D const &scissor)
 
ashes::DescriptorSet const & getAdditionalDescriptorSet () const noexcept
 
PipelineFlags const & getFlags () const noexcept
 
PipelineBaseHash const & getFlagsHash () const noexcept
 
bool hasPipeline () const noexcept
 
ashes::GraphicsPipeline const & getPipeline () const noexcept
 
ashes::PipelineLayout const & getPipelineLayout () const noexcept
 
ashes::DescriptorSetLayout const & getAdditionalDescriptorSetLayout () const noexcept
 
bool hasAdditionalDescriptorSetLayout () const noexcept
 
ashes::DescriptorSetLayout const & getMeshletDescriptorSetLayout () const noexcept
 
bool hasMeshletDescriptorSetLayout () const noexcept
 
RenderSystemgetRenderSystem () const noexcept
 
- Public Member Functions inherited from castor::OwnedBy< RenderNodesPass >
RenderNodesPass * getOwner () const
 

Additional Inherited Members

- Protected Member Functions inherited from castor::OwnedBy< RenderNodesPass >
 OwnedBy (RenderNodesPass &owner)
 Constructor.
 

Member Enumeration Documentation

◆ Descriptor

Enumerator
eTextures 
eBuffers 
eMeshBuffers 
eVertexBuffers 
Descriptor_COUNT 
Descriptor_MIN 

Constructor & Destructor Documentation

◆ RenderPipeline()

C3D_API castor3d::RenderPipeline::RenderPipeline ( RenderNodesPass & owner,
RenderSystem & renderSystem,
ashes::PipelineDepthStencilStateCreateInfo dsState,
ashes::PipelineRasterizationStateCreateInfo rsState,
ashes::PipelineColorBlendStateCreateInfo blState,
ashes::PipelineMultisampleStateCreateInfo msState,
ShaderProgramRPtr program,
PipelineFlags const & flags )
explicit

Constructor.

Parameters
[in]ownerThe owning render pass.
[in]renderSystemThe RenderSystem.
[in]dsStateThe depth stencil state.
[in]rsStateThe rateriser state.
[in]blStateThe blend state.
[in]msStateThe multisample state.
[in]programThe shader program.
[in]flagsThe creation flags.

Member Function Documentation

◆ cleanup()

C3D_API void castor3d::RenderPipeline::cleanup ( )

Cleans up the pipeline.

◆ getAdditionalDescriptorSet()

ashes::DescriptorSet const & castor3d::RenderPipeline::getAdditionalDescriptorSet ( ) const
inlinenoexcept

name Getters.

References CU_Require.

◆ getAdditionalDescriptorSetLayout()

ashes::DescriptorSetLayout const & castor3d::RenderPipeline::getAdditionalDescriptorSetLayout ( ) const
inlinenoexcept

References CU_Require.

◆ getFlags()

PipelineFlags const & castor3d::RenderPipeline::getFlags ( ) const
inlinenoexcept

◆ getFlagsHash()

PipelineBaseHash const & castor3d::RenderPipeline::getFlagsHash ( ) const
inlinenoexcept

◆ getMeshletDescriptorSetLayout()

ashes::DescriptorSetLayout const & castor3d::RenderPipeline::getMeshletDescriptorSetLayout ( ) const
inlinenoexcept

References CU_Require.

◆ getPipeline()

ashes::GraphicsPipeline const & castor3d::RenderPipeline::getPipeline ( ) const
inlinenoexcept

References hasPipeline().

Here is the call graph for this function:

◆ getPipelineLayout()

ashes::PipelineLayout const & castor3d::RenderPipeline::getPipelineLayout ( ) const
inlinenoexcept

References CU_Require.

◆ getRenderSystem()

RenderSystem & castor3d::RenderPipeline::getRenderSystem ( ) const
inlinenoexcept

◆ hasAdditionalDescriptorSetLayout()

bool castor3d::RenderPipeline::hasAdditionalDescriptorSetLayout ( ) const
inlinenoexcept

◆ hasMeshletDescriptorSetLayout()

bool castor3d::RenderPipeline::hasMeshletDescriptorSetLayout ( ) const
inlinenoexcept

◆ hasPipeline()

bool castor3d::RenderPipeline::hasPipeline ( ) const
inlinenoexcept

Referenced by getPipeline().

Here is the caller graph for this function:

◆ initialise()

C3D_API void castor3d::RenderPipeline::initialise ( RenderDevice const & device,
VkRenderPass renderPass )

Initialises the pipeline.

Parameters
[in]deviceThe GPU device.
[in]renderPassThe render pass to which this pipeline is bound.

◆ setAdditionalDescriptorSet()

void castor3d::RenderPipeline::setAdditionalDescriptorSet ( ashes::DescriptorSet const & descriptorSet)
inlinenoexcept

◆ setAdditionalDescriptorSetLayout()

void castor3d::RenderPipeline::setAdditionalDescriptorSetLayout ( ashes::DescriptorSetLayout const & layout)
inlinenoexcept

References CU_Require.

◆ setMeshletDescriptorSetLayout()

void castor3d::RenderPipeline::setMeshletDescriptorSetLayout ( ashes::DescriptorSetLayout const & layout)
inlinenoexcept

References CU_Require.

◆ setPushConstantRanges()

void castor3d::RenderPipeline::setPushConstantRanges ( ashes::VkPushConstantRangeArray const & pushConstantRanges)
inlinenoexcept

References CU_Require.

◆ setScissor()

void castor3d::RenderPipeline::setScissor ( VkRect2D const & scissor)
inline

References CU_Require.

◆ setVertexLayouts() [1/2]

C3D_API void castor3d::RenderPipeline::setVertexLayouts ( ashes::PipelineVertexInputStateCreateInfoCRefArray const & layouts)

name Mutators.

Remarks
They must be called before any call to initialise().

◆ setVertexLayouts() [2/2]

void castor3d::RenderPipeline::setVertexLayouts ( castor::Vector< ashes::PipelineVertexInputStateCreateInfo > layouts)
inlinenoexcept

References CU_Require.

◆ setViewport()

void castor3d::RenderPipeline::setViewport ( VkViewport const & viewport)
inline

References CU_Require.


The documentation for this class was generated from the following file: