Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
castor3d::RenderTechniquePass Class Referenceabstract

#include <RenderTechniquePass.hpp>

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

Public Member Functions

virtual C3D_API ~RenderTechniquePass () noexcept=default
 
virtual C3D_API void accept (RenderTechniqueVisitor &visitor)
 Visitor acceptance function.
 
virtual C3D_API void update (CpuUpdater &updater)
 Updates the render pass, CPU wise.
 
virtual C3D_API PipelineFlags createPipelineFlags (PassComponentCombine const &passComponents, SubmeshComponentCombine const &submeshComponents, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData *submeshData) const =0
 Creates the pipeline flags for given configuration.
 
virtual C3D_API bool areValidPassFlags (PassComponentCombine const &passFlags) const noexcept=0
 
virtual C3D_API ShaderFlags getShaderFlags () const noexcept=0
 
virtual C3D_API void countNodes (RenderInfo &info) const noexcept=0
 Registers nodes counts to given RenderInfo.
 
virtual C3D_API bool isPassEnabled () const noexcept=0
 
C3D_API EnginegetEngine () const noexcept
 
C3D_API IndirectLightingData const & getIndirectLighting () const noexcept
 
C3D_API DebugConfiggetDebugConfig () const noexcept
 
C3D_API bool areDebugTargetsEnabled () const noexcept
 
virtual C3D_API ClustersConfig const * getClustersConfig () const noexcept=0
 
virtual C3D_API bool hasSsao () const noexcept=0
 
Scene const & getScene () noexcept
 
Scene const & getScene () const noexcept
 
RenderTechnique const & getTechnique () const noexcept
 

Protected Member Functions

C3D_API RenderTechniquePass (RenderTechnique *parent, Scene const &scene, bool outputScattering)
 Constructor.
 
virtual C3D_API void doAccept (castor3d::RenderTechniqueVisitor &visitor)=0
 Visitor acceptance function.
 

Protected Attributes

RenderTechniquem_parent {}
 
Scene const & m_scene
 
uint32_t m_drawCalls {}
 
bool m_outputScattering {}
 

Constructor & Destructor Documentation

◆ RenderTechniquePass()

C3D_API castor3d::RenderTechniquePass::RenderTechniquePass ( RenderTechnique * parent,
Scene const & scene,
bool outputScattering )
protected

Constructor.

Parameters
[in]parentThe parent technique.
[in]sceneThe scene.
[in]outputScatteringDefines if the pass outputs scattering data.

◆ ~RenderTechniquePass()

virtual C3D_API castor3d::RenderTechniquePass::~RenderTechniquePass ( )
virtualdefaultnoexcept

Member Function Documentation

◆ accept()

virtual C3D_API void castor3d::RenderTechniquePass::accept ( RenderTechniqueVisitor & visitor)
inlinevirtual

Visitor acceptance function.

Parameters
visitorThe ... visitor.

Reimplemented in castor3d::VisibilityResolvePass, castor3d::ForwardRenderTechniquePass, castor3d::VisibilityPass, castor3d::RenderTechniqueNodesPass, and castor3d::TransparentPass.

References doAccept().

Here is the call graph for this function:

◆ areDebugTargetsEnabled()

C3D_API bool castor3d::RenderTechniquePass::areDebugTargetsEnabled ( ) const
noexcept

Referenced by castor3d::RenderTechniqueNodesPass::areDebugTargetsEnabled().

Here is the caller graph for this function:

◆ areValidPassFlags()

virtual C3D_API bool castor3d::RenderTechniquePass::areValidPassFlags ( PassComponentCombine const & passFlags) const
pure virtualnoexcept

◆ countNodes()

virtual C3D_API void castor3d::RenderTechniquePass::countNodes ( RenderInfo & info) const
pure virtualnoexcept

Registers nodes counts to given RenderInfo.

Parameters
[in,out]infoReceives the counts.

Implemented in castor3d::VisibilityResolvePass, and castor3d::RenderTechniqueNodesPass.

◆ createPipelineFlags()

virtual C3D_API PipelineFlags castor3d::RenderTechniquePass::createPipelineFlags ( PassComponentCombine const & passComponents,
SubmeshComponentCombine const & submeshComponents,
BlendMode colourBlendMode,
BlendMode alphaBlendMode,
RenderPassTypeID renderPassTypeId,
LightingModelID lightingModelId,
BackgroundModelID backgroundModelId,
VkCompareOp alphaFunc,
VkCompareOp blendAlphaFunc,
TextureCombine const & textures,
ProgramFlags const & programFlags,
SceneFlags const & sceneFlags,
VkPrimitiveTopology topology,
bool isFrontCulled,
uint32_t passLayerIndex,
GpuBufferOffsetT< castor::Point4f > const & morphTargets,
SubmeshRenderData * submeshData ) const
pure virtual

Creates the pipeline flags for given configuration.

Parameters
[in]passComponentsThe pass components combination.
[in]submeshComponentsThe submesh components combination.
[in]colourBlendModeThe colour blending mode.
[in]alphaBlendModeThe alpha blending mode.
[in]renderPassTypeIdThe render pass type ID.
[in]lightingModelIdThe lighting model ID.
[in]backgroundModelIdThe background model ID.
[in]alphaFuncThe alpha comparison function (for opaque nodes).
[in]blendAlphaFuncThe alpha comparison function (for transparent nodes).
[in]texturesThe textures configuration.
[in]programFlagsA combination of ProgramFlag.
[in]sceneFlagsScene related flags.
[in]topologyThe render topology.
[in]isFrontCulledtrue for front face culling, false for back face culling.
[in]passLayerIndexThe material pass layer index.
[in]morphTargetsThe morph targets buffer.
[in]submeshDataThe submesh render data, if any.

Implemented in castor3d::VisibilityResolvePass, and castor3d::RenderTechniqueNodesPass.

◆ doAccept()

virtual C3D_API void castor3d::RenderTechniquePass::doAccept ( castor3d::RenderTechniqueVisitor & visitor)
protectedpure virtual

Visitor acceptance function.

Parameters
visitorThe ... visitor.

Implemented in castor3d::RenderTechniqueNodesPass.

Referenced by accept().

Here is the caller graph for this function:

◆ getClustersConfig()

virtual C3D_API ClustersConfig const * castor3d::RenderTechniquePass::getClustersConfig ( ) const
pure virtualnoexcept

◆ getDebugConfig()

C3D_API DebugConfig & castor3d::RenderTechniquePass::getDebugConfig ( ) const
noexcept

Referenced by castor3d::RenderTechniqueNodesPass::getDebugConfig().

Here is the caller graph for this function:

◆ getEngine()

C3D_API Engine * castor3d::RenderTechniquePass::getEngine ( ) const
noexcept

name Getters.

Referenced by castor3d::RenderTechniqueNodesPass::getEngine().

Here is the caller graph for this function:

◆ getIndirectLighting()

C3D_API IndirectLightingData const & castor3d::RenderTechniquePass::getIndirectLighting ( ) const
noexcept

◆ getScene() [1/2]

Scene const & castor3d::RenderTechniquePass::getScene ( ) const
inlinenoexcept

References m_scene.

◆ getScene() [2/2]

Scene const & castor3d::RenderTechniquePass::getScene ( )
inlinenoexcept

References m_scene.

Referenced by castor3d::RenderTechniqueNodesPass::getScene().

Here is the caller graph for this function:

◆ getShaderFlags()

virtual C3D_API ShaderFlags castor3d::RenderTechniquePass::getShaderFlags ( ) const
pure virtualnoexcept

◆ getTechnique()

RenderTechnique const & castor3d::RenderTechniquePass::getTechnique ( ) const
inlinenoexcept

References m_parent.

Referenced by castor3d::RenderTechniqueNodesPass::getTechnique().

Here is the caller graph for this function:

◆ hasSsao()

virtual C3D_API bool castor3d::RenderTechniquePass::hasSsao ( ) const
pure virtualnoexcept

◆ isPassEnabled()

virtual C3D_API bool castor3d::RenderTechniquePass::isPassEnabled ( ) const
pure virtualnoexcept

◆ update()

virtual C3D_API void castor3d::RenderTechniquePass::update ( CpuUpdater & updater)
inlinevirtual

Updates the render pass, CPU wise.

Parameters
[in,out]updaterThe update data.

Reimplemented in castor3d::VisibilityResolvePass, and castor3d::RenderTechniqueNodesPass.

Member Data Documentation

◆ m_drawCalls

uint32_t castor3d::RenderTechniquePass::m_drawCalls {}
protected

◆ m_outputScattering

bool castor3d::RenderTechniquePass::m_outputScattering {}
protected

◆ m_parent

RenderTechnique* castor3d::RenderTechniquePass::m_parent {}
protected

Referenced by getTechnique().

◆ m_scene

Scene const& castor3d::RenderTechniquePass::m_scene
protected

Referenced by getScene(), and getScene().


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