Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | List of all members
castor3d::PipelineFlags Struct Reference

Pipeline flags. More...

#include <PipelineFlags.hpp>

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

Public Member Functions

 PipelineFlags (PipelineHiHashDetails hiDetails, PipelineLoHashDetails loDetails=PipelineLoHashDetails{}, SceneFlags sceneFlags=SceneFlag::eNone, BlendMode colourBlendMode=BlendMode::eNoBlend, BlendMode alphaBlendMode=BlendMode::eNoBlend, RenderPassTypeID renderPassType=0u, VkPrimitiveTopology ptopology=VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, uint32_t ppatchVertices=3u) noexcept
 
 PipelineFlags (PassComponentCombine ppassComponents, SubmeshComponentCombine psubmeshComponents, LightingModelID plightingModelId, BackgroundModelID pbackgroundModelId, BlendMode pcolourBlendMode=BlendMode::eNoBlend, BlendMode palphaBlendMode=BlendMode::eNoBlend, RenderPassTypeID prenderPassType=0u, ProgramFlags pprogramFlags=ProgramFlag::eNone, SceneFlags psceneFlags=SceneFlag::eNone, ShaderFlags pshaderFlags=ShaderFlag::eNone, VkPrimitiveTopology ptopology=VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, uint32_t ppatchVertices=3u, VkCompareOp palphaFunc=VK_COMPARE_OP_ALWAYS, TextureCombine textures={}, uint32_t ppassLayerIndex={}, VkDeviceSize pmorphTargetsOffset={}, SubmeshRenderData const *psubmeshData={}, bool pisStatic=false) noexcept
 
 PipelineFlags (PassComponentCombine ppassComponents, SubmeshComponentCombine psubmeshComponents, LightingModelID lightingModelId, BackgroundModelID pbackgroundModelId, ProgramFlags programFlags, TextureCombine textures, ShaderFlags shaderFlags, VkCompareOp alphaFunc, uint32_t passLayerIndex=0u)
 
C3D_API bool enableTexcoords () const noexcept
 
C3D_API bool enableVertexInput (SubmeshData data) const noexcept
 
C3D_API bool enableIndices () const noexcept
 
C3D_API bool enablePosition () const noexcept
 
C3D_API bool enableNormal () const noexcept
 
C3D_API bool enableTangentSpace () const noexcept
 
C3D_API bool enableBitangent () const noexcept
 
C3D_API bool enableColours () const noexcept
 
C3D_API bool enablePassMasks () const noexcept
 
C3D_API bool enableTexcoord0 () const noexcept
 
C3D_API bool enableTexcoord1 () const noexcept
 
C3D_API bool enableTexcoord2 () const noexcept
 
C3D_API bool enableTexcoord3 () const noexcept
 
C3D_API bool enableTextures () const noexcept
 
C3D_API bool enableVertexID () const noexcept
 
C3D_API bool enableMeshletID () const noexcept
 
C3D_API bool enableInstantiation () const noexcept
 
C3D_API bool enableParallaxOcclusionMapping (PassComponentRegister const &passComponents) const noexcept
 
C3D_API bool enableParallaxOcclusionMappingOne (PassComponentRegister const &passComponents) const noexcept
 
C3D_API bool enableVelocity () const noexcept
 
C3D_API bool hasFog () const noexcept
 
ShaderFlags
bool usesWorldSpace () const noexcept
 
bool usesViewSpace () const noexcept
 
bool usesGeometry () const noexcept
 
bool usesTessellation () const noexcept
 
bool usesColour () const noexcept
 
bool usesOpacity () const noexcept
 
bool forceTexCoords () const noexcept
 
bool writeEnvironmentMap () const noexcept
 
bool writeShadowMap () const noexcept
 
bool writeShadowVSM () const noexcept
 
bool writeShadowRSM () const noexcept
 
bool writeVelocity () const noexcept
 
bool writeVisibility () const noexcept
 
bool writeDepth () const noexcept
 
bool writePicking () const noexcept
 
SceneFlags
SceneFlags getShadowFlags () const noexcept
 
SceneFlags getGlobalIlluminationFlags () const noexcept
 
bool hasDiffuseGI () const noexcept
 
SubmeshComponents
bool hasWorldPosInputs () const noexcept
 
bool hasSkinData () const noexcept
 
ProgramFlags
bool isBillboard () const noexcept
 
bool isFrontCulled () const noexcept
 
bool usesMesh () const noexcept
 
bool usesTask () const noexcept
 
Components
C3D_API bool hasPassFlag (PassComponentFlag flag) const noexcept
 
C3D_API bool hasSubmeshFlag (SubmeshComponentFlag flag) const noexcept
 
- Public Member Functions inherited from castor3d::PipelineHiHashDetails
 PipelineHiHashDetails (PassComponentCombine ppassComponents, SubmeshComponentCombine psubmeshComponents, LightingModelID plightingModelId, BackgroundModelID pbackgroundModelId, ProgramFlags programFlags=ProgramFlag::eNone, TextureCombine ptextures=TextureCombine{}, ShaderFlags shaderFlags=ShaderFlag::eNone, VkCompareOp palphaFunc=VkCompareOp::VK_COMPARE_OP_ALWAYS, uint32_t ppassLayerIndex=0u, uint32_t psubmeshDataBindings=0u, bool pisStatic=false) noexcept
 
- Public Member Functions inherited from castor3d::PipelineLoHashDetails
 PipelineLoHashDetails (VkDeviceSize pmorphTargetsOffset=0u, SubmeshRenderData const *psubmeshData=nullptr) noexcept
 

Textures

SceneFlags m_sceneFlags
 
BlendMode colourBlendMode
 
BlendMode alphaBlendMode
 
RenderPassTypeID renderPassType
 
VkPrimitiveTopology topology
 
uint32_t patchVertices
 
C3D_API bool hasMap (PassComponentTextureFlag flag) const noexcept
 

Additional Inherited Members

- Public Attributes inherited from castor3d::PipelineHiHashDetails
PassComponentCombine pass {}
 
SubmeshComponentCombine submesh {}
 
TextureCombine textures {}
 
LightingModelID lightingModelId {}
 
BackgroundModelID backgroundModelId {}
 
VkCompareOp alphaFunc
 
uint32_t submeshDataBindings {}
 
uint32_t passLayerIndex {}
 
bool isStatic {}
 
ProgramFlags m_programFlags {}
 
ShaderFlags m_shaderFlags {}
 
- Public Attributes inherited from castor3d::PipelineLoHashDetails
VkDeviceSize morphTargetsOffset {}
 
SubmeshRenderData const * submeshData {}
 

Detailed Description

Pipeline flags.

Constructor & Destructor Documentation

◆ PipelineFlags() [1/3]

castor3d::PipelineFlags::PipelineFlags ( PipelineHiHashDetails hiDetails,
PipelineLoHashDetails loDetails = PipelineLoHashDetails{},
SceneFlags sceneFlags = SceneFlag::eNone,
BlendMode colourBlendMode = BlendMode::eNoBlend,
BlendMode alphaBlendMode = BlendMode::eNoBlend,
RenderPassTypeID renderPassType = 0u,
VkPrimitiveTopology ptopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
uint32_t ppatchVertices = 3u )
inlineexplicitnoexcept

◆ PipelineFlags() [2/3]

castor3d::PipelineFlags::PipelineFlags ( PassComponentCombine ppassComponents,
SubmeshComponentCombine psubmeshComponents,
LightingModelID plightingModelId,
BackgroundModelID pbackgroundModelId,
BlendMode pcolourBlendMode = BlendMode::eNoBlend,
BlendMode palphaBlendMode = BlendMode::eNoBlend,
RenderPassTypeID prenderPassType = 0u,
ProgramFlags pprogramFlags = ProgramFlag::eNone,
SceneFlags psceneFlags = SceneFlag::eNone,
ShaderFlags pshaderFlags = ShaderFlag::eNone,
VkPrimitiveTopology ptopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
uint32_t ppatchVertices = 3u,
VkCompareOp palphaFunc = VK_COMPARE_OP_ALWAYS,
TextureCombine textures = {},
uint32_t ppassLayerIndex = {},
VkDeviceSize pmorphTargetsOffset = {},
SubmeshRenderData const * psubmeshData = {},
bool pisStatic = false )
inlineexplicitnoexcept

◆ PipelineFlags() [3/3]

castor3d::PipelineFlags::PipelineFlags ( PassComponentCombine ppassComponents,
SubmeshComponentCombine psubmeshComponents,
LightingModelID lightingModelId,
BackgroundModelID pbackgroundModelId,
ProgramFlags programFlags,
TextureCombine textures,
ShaderFlags shaderFlags,
VkCompareOp alphaFunc,
uint32_t passLayerIndex = 0u )
inline

Member Function Documentation

◆ enableBitangent()

C3D_API bool castor3d::PipelineFlags::enableBitangent ( ) const
noexcept

◆ enableColours()

C3D_API bool castor3d::PipelineFlags::enableColours ( ) const
noexcept

◆ enableIndices()

C3D_API bool castor3d::PipelineFlags::enableIndices ( ) const
noexcept

◆ enableInstantiation()

C3D_API bool castor3d::PipelineFlags::enableInstantiation ( ) const
noexcept

Referenced by castor3d::shader::getNodeId(), castor3d::shader::getNodeId(), and castor3d::shader::getNodeId().

Here is the caller graph for this function:

◆ enableMeshletID()

C3D_API bool castor3d::PipelineFlags::enableMeshletID ( ) const
noexcept

◆ enableNormal()

C3D_API bool castor3d::PipelineFlags::enableNormal ( ) const
noexcept

◆ enableParallaxOcclusionMapping()

C3D_API bool castor3d::PipelineFlags::enableParallaxOcclusionMapping ( PassComponentRegister const & passComponents) const
noexcept

◆ enableParallaxOcclusionMappingOne()

C3D_API bool castor3d::PipelineFlags::enableParallaxOcclusionMappingOne ( PassComponentRegister const & passComponents) const
noexcept

◆ enablePassMasks()

C3D_API bool castor3d::PipelineFlags::enablePassMasks ( ) const
noexcept

◆ enablePosition()

C3D_API bool castor3d::PipelineFlags::enablePosition ( ) const
noexcept

◆ enableTangentSpace()

C3D_API bool castor3d::PipelineFlags::enableTangentSpace ( ) const
noexcept

◆ enableTexcoord0()

C3D_API bool castor3d::PipelineFlags::enableTexcoord0 ( ) const
noexcept

◆ enableTexcoord1()

C3D_API bool castor3d::PipelineFlags::enableTexcoord1 ( ) const
noexcept

◆ enableTexcoord2()

C3D_API bool castor3d::PipelineFlags::enableTexcoord2 ( ) const
noexcept

◆ enableTexcoord3()

C3D_API bool castor3d::PipelineFlags::enableTexcoord3 ( ) const
noexcept

◆ enableTexcoords()

C3D_API bool castor3d::PipelineFlags::enableTexcoords ( ) const
noexcept

◆ enableTextures()

C3D_API bool castor3d::PipelineFlags::enableTextures ( ) const
noexcept

◆ enableVelocity()

C3D_API bool castor3d::PipelineFlags::enableVelocity ( ) const
noexcept

◆ enableVertexID()

C3D_API bool castor3d::PipelineFlags::enableVertexID ( ) const
noexcept

◆ enableVertexInput()

C3D_API bool castor3d::PipelineFlags::enableVertexInput ( SubmeshData data) const
noexcept

◆ forceTexCoords()

bool castor3d::PipelineFlags::forceTexCoords ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eForceTexCoords, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ getGlobalIlluminationFlags()

SceneFlags castor3d::PipelineFlags::getGlobalIlluminationFlags ( ) const
inlinenoexcept

References castor3d::eGIAny, and m_sceneFlags.

◆ getShadowFlags()

SceneFlags castor3d::PipelineFlags::getShadowFlags ( ) const
inlinenoexcept

◆ hasDiffuseGI()

bool castor3d::PipelineFlags::hasDiffuseGI ( ) const
inlinenoexcept

References castor3d::eGIAny, castor3d::hasAny(), and m_sceneFlags.

Here is the call graph for this function:

◆ hasFog()

C3D_API bool castor3d::PipelineFlags::hasFog ( ) const
noexcept

◆ hasMap()

C3D_API bool castor3d::PipelineFlags::hasMap ( PassComponentTextureFlag flag) const
noexcept

◆ hasPassFlag()

C3D_API bool castor3d::PipelineFlags::hasPassFlag ( PassComponentFlag flag) const
noexcept

◆ hasSkinData()

bool castor3d::PipelineFlags::hasSkinData ( ) const
inlinenoexcept

◆ hasSubmeshFlag()

C3D_API bool castor3d::PipelineFlags::hasSubmeshFlag ( SubmeshComponentFlag flag) const
noexcept

◆ hasWorldPosInputs()

bool castor3d::PipelineFlags::hasWorldPosInputs ( ) const
inlinenoexcept

◆ isBillboard()

bool castor3d::PipelineFlags::isBillboard ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eBillboards, and castor3d::PipelineHiHashDetails::m_programFlags.

Here is the call graph for this function:

◆ isFrontCulled()

bool castor3d::PipelineFlags::isFrontCulled ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eFrontCulled, and castor3d::PipelineHiHashDetails::m_programFlags.

Here is the call graph for this function:

◆ usesColour()

bool castor3d::PipelineFlags::usesColour ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eColour, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ usesGeometry()

bool castor3d::PipelineFlags::usesGeometry ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eGeometry, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ usesMesh()

bool castor3d::PipelineFlags::usesMesh ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eHasMesh, and castor3d::PipelineHiHashDetails::m_programFlags.

Here is the call graph for this function:

◆ usesOpacity()

bool castor3d::PipelineFlags::usesOpacity ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eOpacity, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ usesTask()

bool castor3d::PipelineFlags::usesTask ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eHasTask, and castor3d::PipelineHiHashDetails::m_programFlags.

Here is the call graph for this function:

◆ usesTessellation()

bool castor3d::PipelineFlags::usesTessellation ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eTessellation, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ usesViewSpace()

bool castor3d::PipelineFlags::usesViewSpace ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eViewSpace, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ usesWorldSpace()

bool castor3d::PipelineFlags::usesWorldSpace ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eWorldSpace, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ writeDepth()

bool castor3d::PipelineFlags::writeDepth ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eDepth, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ writeEnvironmentMap()

bool castor3d::PipelineFlags::writeEnvironmentMap ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eEnvironmentMapping, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ writePicking()

bool castor3d::PipelineFlags::writePicking ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::ePicking, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ writeShadowMap()

bool castor3d::PipelineFlags::writeShadowMap ( ) const
inlinenoexcept

◆ writeShadowRSM()

bool castor3d::PipelineFlags::writeShadowRSM ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eRsmShadowMap, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ writeShadowVSM()

bool castor3d::PipelineFlags::writeShadowVSM ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eVsmShadowMap, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ writeVelocity()

bool castor3d::PipelineFlags::writeVelocity ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eVelocity, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

◆ writeVisibility()

bool castor3d::PipelineFlags::writeVisibility ( ) const
inlinenoexcept

References castor3d::checkFlag(), castor3d::eVisibility, and castor3d::PipelineHiHashDetails::m_shaderFlags.

Here is the call graph for this function:

Member Data Documentation

◆ alphaBlendMode

BlendMode castor3d::PipelineFlags::alphaBlendMode

◆ colourBlendMode

BlendMode castor3d::PipelineFlags::colourBlendMode

◆ m_sceneFlags

SceneFlags castor3d::PipelineFlags::m_sceneFlags

◆ patchVertices

uint32_t castor3d::PipelineFlags::patchVertices

◆ renderPassType

RenderPassTypeID castor3d::PipelineFlags::renderPassType

◆ topology

VkPrimitiveTopology castor3d::PipelineFlags::topology

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