OGRE 2.1
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
Ogre::HlmsPso Struct Reference

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

#include <OgreHlmsPso.h>

Public Member Functions

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).
 
bool equalNonPod (const HlmsPso &_r) const
 
void initialize ()
 Render-System specific data.
 
int lessNonPod (const HlmsPso &_r) const
 
bool lessThanExcludePassData (const HlmsPso &_r) const
 Compares if this <= _r. See equalExcludePassData.
 

Public Attributes

HlmsBlendblock constblendblock
 
uint8 clipDistances
 
bool enablePrimitiveRestart
 
GpuProgramPtr geometryShader
 
HlmsMacroblock constmacroblock
 
OperationType operationType
 
uint8 padding [2]
 
HlmsPassPso pass
 Fixed to 0xffffffff for now.
 
GpuProgramPtr pixelShader
 
voidrsData
 
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 must be explicit! This way, copy/assignment operators will also copy the padded values which is needed for properly testing via memcmp. Use these Clang params to help you find alignment issues: -Xclang -fdump-record-layouts -Wpadded > dmp.txt 2>err.txt

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().

◆ equalNonPod()

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

Referenced by equalExcludePassData().

◆ initialize()

void Ogre::HlmsPso::initialize ( )
inline

◆ lessNonPod()

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

Referenced by lessThanExcludePassData().

◆ lessThanExcludePassData()

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

Compares if this <= _r. See equalExcludePassData.

References lessNonPod().

Member Data Documentation

◆ blendblock

HlmsBlendblock const* Ogre::HlmsPso::blendblock

Referenced by initialize().

◆ clipDistances

uint8 Ogre::HlmsPso::clipDistances

Referenced by initialize().

◆ enablePrimitiveRestart

bool Ogre::HlmsPso::enablePrimitiveRestart

Referenced by initialize().

◆ geometryShader

GpuProgramPtr Ogre::HlmsPso::geometryShader

◆ macroblock

HlmsMacroblock const* Ogre::HlmsPso::macroblock

Referenced by initialize().

◆ operationType

OperationType Ogre::HlmsPso::operationType

Referenced by initialize().

◆ padding

uint8 Ogre::HlmsPso::padding[2]

Referenced by initialize().

◆ pass

HlmsPassPso Ogre::HlmsPso::pass

Fixed to 0xffffffff for now.

Referenced by initialize().

◆ pixelShader

GpuProgramPtr Ogre::HlmsPso::pixelShader

◆ rsData

void* Ogre::HlmsPso::rsData

Referenced by initialize().

◆ sampleMask

uint32 Ogre::HlmsPso::sampleMask

Referenced by initialize().

◆ tesselationDomainShader

GpuProgramPtr Ogre::HlmsPso::tesselationDomainShader

◆ tesselationHullShader

GpuProgramPtr Ogre::HlmsPso::tesselationHullShader

◆ vertexElements

VertexElement2VecVec Ogre::HlmsPso::vertexElements

◆ vertexShader

GpuProgramPtr Ogre::HlmsPso::vertexShader

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