OGRE-Next: Ogre::HlmsPso Struct Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Ogre::HlmsPso Struct Reference
Core » Resources

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

`#include <OgreHlmsPso.h>`

## Public Member Functions
| HlmsPso ()
| 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.
HlmsPso & | operator= (const HlmsPso &_r)

## Public Attributes
HlmsBlendblock const * | blendblock
uint8 | clipDistances
bool | enablePrimitiveRestart
GpuProgramPtr | geometryShader
HlmsMacroblock const * | macroblock
OperationType | operationType
HlmsPassPso | pass
GpuProgramPtr | pixelShader
void * | rsData
| Render-System specific data.
uint32 | sampleMask
| Fixed to 0xffffffff for now.
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

References initialize().

Referenced by HlmsPso(), equalExcludePassData(), equalNonPod(), initialize(), lessNonPod(), lessThanExcludePassData(), and operator=().

## ◆ HlmsPso() [2/2]

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

References HlmsPso().

## 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 HlmsPso(), equalNonPod(), and operationType.

## ◆ equalNonPod()

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

References HlmsPso(), geometryShader, pixelShader, tesselationDomainShader, tesselationHullShader, vertexElements, and vertexShader.

Referenced by equalExcludePassData().

## ◆ initialize()

void Ogre::HlmsPso::initialize | ( |  | ) |
| inline

References HlmsPso(), operationType, and Ogre::OT_POINT_LIST.

Referenced by HlmsPso().

## ◆ lessNonPod()

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

References HlmsPso(), geometryShader, pixelShader, tesselationDomainShader, tesselationHullShader, vertexElements, and vertexShader.

Referenced by lessThanExcludePassData().

## ◆ lessThanExcludePassData()

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

Compares if this <= _r. See equalExcludePassData.

References HlmsPso(), lessNonPod(), and operationType.

## ◆ operator=()

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

References HlmsPso(), geometryShader, operationType, pixelShader, tesselationDomainShader, tesselationHullShader, vertexElements, and vertexShader.

## 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

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

## ◆ pass

HlmsPassPso Ogre::HlmsPso::pass

## ◆ pixelShader

GpuProgramPtr Ogre::HlmsPso::pixelShader

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

## ◆ rsData

void* Ogre::HlmsPso::rsData

Render-System specific data.

## ◆ sampleMask

uint32 Ogre::HlmsPso::sampleMask

Fixed to 0xffffffff for now.

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

- OgreHlmsPso.h