OGRE 2.3.3
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

 HlmsPso ()
 Render-System specific data.
 
 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).
 
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.
 
HlmsPsooperator= (const HlmsPso &_r)
 

Public Attributes

HlmsBlendblock constblendblock
 
uint8 clipDistances
 
bool enablePrimitiveRestart
 
GpuProgramPtr geometryShader
 
HlmsMacroblock constmacroblock
 
OperationType operationType
 
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 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().

◆ equalNonPod()

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

Referenced by equalExcludePassData().

◆ 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

Referenced by lessThanExcludePassData().

◆ lessThanExcludePassData()

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

Compares if this <= _r. See equalExcludePassData.

References lessNonPod().

◆ operator=()

HlmsPso & Ogre::HlmsPso::operator= ( const HlmsPso _r)
inline

References operationType.

Member Data Documentation

◆ blendblock

HlmsBlendblock const* Ogre::HlmsPso::blendblock

◆ clipDistances

uint8 Ogre::HlmsPso::clipDistances

◆ enablePrimitiveRestart

bool Ogre::HlmsPso::enablePrimitiveRestart

◆ geometryShader

GpuProgramPtr Ogre::HlmsPso::geometryShader

◆ macroblock

HlmsMacroblock const* Ogre::HlmsPso::macroblock

◆ operationType

OperationType Ogre::HlmsPso::operationType

Referenced by initialize(), and operator=().

◆ pass

HlmsPassPso Ogre::HlmsPso::pass

Fixed to 0xffffffff for now.

◆ pixelShader

GpuProgramPtr Ogre::HlmsPso::pixelShader

◆ rsData

void* Ogre::HlmsPso::rsData

◆ sampleMask

uint32 Ogre::HlmsPso::sampleMask

◆ 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: