Castor3D 0.12.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 , eBuffers , Descriptor_COUNT , Descriptor_MIN = eBuffers ,
  Descriptor_MAX = Descriptor_COUNT-1
}
 

Public Member Functions

C3D_API RenderPipeline (RenderNodesPass &owner, RenderSystem &renderSystem, ashes::PipelineDepthStencilStateCreateInfo dsState, ashes::PipelineRasterizationStateCreateInfo rsState, ashes::PipelineColorBlendStateCreateInfo blState, ashes::PipelineMultisampleStateCreateInfo msState, ShaderProgramSPtr program, PipelineFlags const &flags)
 Constructor. More...
 
C3D_API ~RenderPipeline ()
 Denstructor. More...
 
C3D_API void initialise (RenderDevice const &device, VkRenderPass renderPass)
 Initialises the pipeline. More...
 
C3D_API void cleanup (RenderDevice const &device)
 Cleans up the pipeline. More...
 
C3D_API void setVertexLayouts (ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 
void setDescriptorSetLayout (ashes::DescriptorSetLayout const &layout)
 
void setAdditionalDescriptorSet (ashes::DescriptorSet const &descriptorSet)
 
void setVertexLayouts (std::vector< ashes::PipelineVertexInputStateCreateInfo > layouts)
 
void setPushConstantRanges (ashes::VkPushConstantRangeArray const &pushConstantRanges)
 
void setViewport (VkViewport const &viewport)
 
void setScissor (VkRect2D const &scissor)
 
ashes::DescriptorSet const & getAdditionalDescriptorSet () const
 
PipelineFlags const & getFlags () const
 
bool hasPipeline () const
 
ashes::GraphicsPipeline const & getPipeline () const
 
ashes::PipelineLayout const & getPipelineLayout () const
 
ashes::DescriptorSetLayout const & getDescriptorSetLayout () const
 
bool hasDescriptorSetLayout () const
 
RenderSystemgetRenderSystem () const
 

Member Enumeration Documentation

◆ Descriptor

Enumerator
eTextures 
eBuffers 
Descriptor_COUNT 
Descriptor_MIN 
Descriptor_MAX 

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

◆ ~RenderPipeline()

C3D_API castor3d::RenderPipeline::~RenderPipeline ( )

Denstructor.

Member Function Documentation

◆ cleanup()

C3D_API void castor3d::RenderPipeline::cleanup ( RenderDevice const &  device)

Cleans up the pipeline.

Parameters
[in]deviceThe GPU device.

◆ getAdditionalDescriptorSet()

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

name Getters.

◆ getDescriptorSetLayout()

ashes::DescriptorSetLayout const & castor3d::RenderPipeline::getDescriptorSetLayout ( ) const
inline

◆ getFlags()

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

◆ getPipeline()

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

References hasPipeline().

Here is the call graph for this function:

◆ getPipelineLayout()

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

◆ getRenderSystem()

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

◆ hasDescriptorSetLayout()

bool castor3d::RenderPipeline::hasDescriptorSetLayout ( ) const
inline

◆ hasPipeline()

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

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)
inline

◆ setDescriptorSetLayout()

void castor3d::RenderPipeline::setDescriptorSetLayout ( ashes::DescriptorSetLayout const &  layout)
inline

◆ setPushConstantRanges()

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

◆ setScissor()

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

◆ 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 ( std::vector< ashes::PipelineVertexInputStateCreateInfo >  layouts)
inline

◆ setViewport()

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

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