OGRE-Next  2.3
Object-Oriented Graphics Rendering Engine
Ogre::HlmsPso Struct Reference

Defines a PipelineStateObject as required by Vulkan, Metal & DX12. More...

#include <OgreHlmsPso.h>

Public Member Functions

 HlmsPso ()
 Render-System specific data. More...
 
 HlmsPso (const HlmsPso &_r)
 
bool equalExcludePassData (const HlmsPso &_r) const
 Compares if this == _r but only accounting data that is independent of a pass (and is typically part of a renderable with a material already assigned). More...
 
bool equalNonPod (const HlmsPso &_r) const
 
void initialize ()
 
int lessNonPod (const HlmsPso &_r) const
 
bool lessThanExcludePassData (const HlmsPso &_r) const
 Compares if this <= _r. See equalExcludePassData. More...
 
HlmsPsooperator= (const HlmsPso &_r)
 

Public Attributes

HlmsBlendblock const * blendblock
 
uint8 clipDistances
 
bool enablePrimitiveRestart
 
GpuProgramPtr geometryShader
 
HlmsMacroblock const * macroblock
 
OperationType operationType
 
HlmsPassPso pass
 Fixed to 0xffffffff for now. More...
 
GpuProgramPtr pixelShader
 
void * rsData
 
uint32 sampleMask
 
GpuProgramPtr tesselationDomainShader
 
GpuProgramPtr tesselationHullShader
 
VertexElement2VecVec vertexElements
 
GpuProgramPtr vertexShader
 

Detailed Description

Defines a PipelineStateObject as required by Vulkan, Metal & DX12.

Remarks
Some RenderSystem-specific quirks: In OpenGL, vertex-input data (vertexElements, operationType, enablePrimitiveRestart) is ignored, and controlled via the VertexArrayObject pointer.

In the other APIs, vertex-input data is use, and VertexArrayObject pointers only control which vertex and index buffers are bound to the device.

Padding bytes should be zeroed/copied for properly testing via memcmp.

Constructor & Destructor Documentation

◆ HlmsPso() [1/2]

Ogre::HlmsPso::HlmsPso ( )
inline

Render-System specific data.

References initialize().

◆ HlmsPso() [2/2]

Ogre::HlmsPso::HlmsPso ( const HlmsPso _r)
inline

Member Function Documentation

◆ equalExcludePassData()

bool Ogre::HlmsPso::equalExcludePassData ( const HlmsPso _r) const
inline

Compares if this == _r but only accounting data that is independent of a pass (and is typically part of a renderable with a material already assigned).

References equalNonPod(), and operationType.

◆ equalNonPod()

bool Ogre::HlmsPso::equalNonPod ( const HlmsPso _r) const
inline

◆ initialize()

void Ogre::HlmsPso::initialize ( )
inline

References operationType, and Ogre::OT_POINT_LIST.

Referenced by HlmsPso().

◆ lessNonPod()

int Ogre::HlmsPso::lessNonPod ( const HlmsPso _r) const
inline

◆ lessThanExcludePassData()

bool Ogre::HlmsPso::lessThanExcludePassData ( const HlmsPso _r) const
inline

Compares if this <= _r. See equalExcludePassData.

References lessNonPod(), and operationType.

◆ operator=()

Member Data Documentation

◆ blendblock

HlmsBlendblock const* Ogre::HlmsPso::blendblock

◆ clipDistances

uint8 Ogre::HlmsPso::clipDistances

◆ enablePrimitiveRestart

bool Ogre::HlmsPso::enablePrimitiveRestart

◆ geometryShader

GpuProgramPtr Ogre::HlmsPso::geometryShader

Referenced by equalNonPod(), lessNonPod(), and operator=().

◆ macroblock

HlmsMacroblock const* Ogre::HlmsPso::macroblock

◆ operationType

OperationType Ogre::HlmsPso::operationType

◆ pass

HlmsPassPso Ogre::HlmsPso::pass

Fixed to 0xffffffff for now.

◆ pixelShader

GpuProgramPtr Ogre::HlmsPso::pixelShader

Referenced by equalNonPod(), lessNonPod(), and operator=().

◆ rsData

void* Ogre::HlmsPso::rsData

◆ sampleMask

uint32 Ogre::HlmsPso::sampleMask

◆ tesselationDomainShader

GpuProgramPtr Ogre::HlmsPso::tesselationDomainShader

Referenced by equalNonPod(), lessNonPod(), and operator=().

◆ tesselationHullShader

GpuProgramPtr Ogre::HlmsPso::tesselationHullShader

Referenced by equalNonPod(), lessNonPod(), and operator=().

◆ vertexElements

VertexElement2VecVec Ogre::HlmsPso::vertexElements

Referenced by equalNonPod(), lessNonPod(), and operator=().

◆ vertexShader

GpuProgramPtr Ogre::HlmsPso::vertexShader

Referenced by equalNonPod(), lessNonPod(), and operator=().


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