OGRE: Ogre::RTShader::Operand Class Reference

| OGRE 14.5 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::RTShader::Operand Class Reference
Optional Components » RTShaderSystem

A class that represents a function operand (its the combination of a parameter the in/out semantic and the used fields). More...

`#include <OgreShaderFunctionAtom.h>`

Inheritance diagram for Ogre::RTShader::Operand:
[legend]

## Public Types
enum | OpMask : uchar { OPM_NONE = 0 , OPM_X = 0x0001 , OPM_Y = 0x0002 , OPM_Z = 0x0004 , OPM_W = 0x0008 , OPM_XY = OPM_X | OPM_Y , OPM_XZ = OPM_X | OPM_Z , OPM_XW = OPM_X | OPM_W , OPM_YZ = OPM_Y | OPM_Z , OPM_YW = OPM_Y | OPM_W , OPM_ZW = OPM_Z | OPM_W , OPM_XYZ = OPM_X | OPM_Y | OPM_Z , OPM_XYW = OPM_X | OPM_Y | OPM_W , OPM_XZW = OPM_X | OPM_Z | OPM_W , OPM_YZW = OPM_Y | OPM_Z | OPM_W , OPM_XYZW = OPM_X | OPM_Y | OPM_Z | OPM_W , OPM_ALL = OPM_XYZW }
enum | OpSemantic { OPS_IN , OPS_OUT , OPS_INOUT }

## Public Member Functions
| Operand (const Operand &rhs)
| Copy constructor.
| Operand (ParameterPtr parameter, OpSemantic opSemantic, OpMask opMask=OPM_ALL, ushort indirectionLevel=0)
| Class constructor.
| ~Operand ()
| Class destructor.
ushort | getIndirectionLevel () const
| Returns the level of indirection.
OpMask | getMask () const
| Returns the mask bitfield.
const ParameterPtr & | getParameter () const
| Returns the parameter object as weak reference.
OpSemantic | getSemantic () const
| Returns the operand semantic (do we read/write or both with the parameter).
bool | hasFreeFields () const
| Returns true if not all fields used.
Operand & | mask (OpMask opMask)
Operand & | operator= (const Operand &rhs)
| Copy the given Operand to this Operand.
void | setMaskToParamType ()
| automatically set swizzle to match parameter arity
Operand & | w ()
void | write (std::ostream &os) const
| write the parameter name and the usage mask like this 'color.xyz'
Operand & | x ()
Operand & | xy ()
Operand & | xyz ()
Operand & | y ()
Operand & | z ()

## Static Public Member Functions
static int | getFloatCount (int mask)
| Return the float count of the given mask.

## Detailed Description

A class that represents a function operand (its the combination of a parameter the in/out semantic and the used fields).

## Member Enumeration Documentation

## ◆ OpSemantic

enum Ogre::RTShader::Operand::OpSemantic

Enumerator
OPS_IN | The parameter is a input parameter.
OPS_OUT | The parameter is a output parameter.
OPS_INOUT | The parameter is a input/output parameter.

## ◆ OpMask

enum Ogre::RTShader::Operand::OpMask : uchar

Enumerator
OPM_NONE |
OPM_X |
OPM_Y |
OPM_Z |
OPM_W |
OPM_XY |
OPM_XZ |
OPM_XW |
OPM_YZ |
OPM_YW |
OPM_ZW |
OPM_XYZ |
OPM_XYW |
OPM_XZW |
OPM_YZW |
OPM_XYZW |
OPM_ALL |

## Constructor & Destructor Documentation

## ◆ Operand() [1/2]

Ogre::RTShader::Operand::Operand | ( | ParameterPtr | parameter,
|  | OpSemantic | opSemantic,
|  | OpMask | opMask = OPM_ALL,
|  | ushort | indirectionLevel = 0 )

Class constructor.

Parameters

  parameter | A function parameter.
  opSemantic | The in/out semantic of the parameter.
  opMask | The field mask of the parameter.
  indirectionLevel |

References OPM_ALL.

Referenced by Ogre::RTShader::At::At(), Ogre::RTShader::At::At(), Ogre::RTShader::In::In(), Ogre::RTShader::In::In(), Ogre::RTShader::In::In(), Ogre::RTShader::In::In(), Ogre::RTShader::In::In(), Ogre::RTShader::In::In(), Ogre::RTShader::In::In(), Ogre::RTShader::InOut::InOut(), Ogre::RTShader::InOut::InOut(), Ogre::RTShader::InOut::InOut(), Operand(), Ogre::RTShader::Out::Out(), Ogre::RTShader::Out::Out(), Ogre::RTShader::Out::Out(), mask(), operator=(), w(), x(), xy(), xyz(), y(), and z().

## ◆ Operand() [2/2]

Ogre::RTShader::Operand::Operand | ( | const Operand & | rhs | ) |

Copy constructor.

References Operand().

## ◆ ~Operand()

Ogre::RTShader::Operand::~Operand | ( |  | ) |

Class destructor.

## Member Function Documentation

## ◆ operator=()

Operand & Ogre::RTShader::Operand::operator= | ( | const Operand & | rhs | ) |

Copy the given Operand to this Operand.

Parameters

  rhs | The other Operand to copy to this state.

References Operand().

## ◆ getParameter()

const ParameterPtr & Ogre::RTShader::Operand::getParameter | ( |  | ) | const
| inline

Returns the parameter object as weak reference.

## ◆ hasFreeFields()

bool Ogre::RTShader::Operand::hasFreeFields | ( |  | ) | const
| inline

Returns true if not all fields used.

(usage is described through semantic)

References OPM_ALL.

## ◆ getMask()

OpMask Ogre::RTShader::Operand::getMask | ( |  | ) | const
| inline

Returns the mask bitfield.

## ◆ x()

Operand & Ogre::RTShader::Operand::x | ( |  | ) |
| inline

References Operand(), mask(), and OPM_X.

## ◆ y()

Operand & Ogre::RTShader::Operand::y | ( |  | ) |
| inline

References Operand(), mask(), and OPM_Y.

## ◆ z()

Operand & Ogre::RTShader::Operand::z | ( |  | ) |
| inline

References Operand(), mask(), and OPM_Z.

## ◆ w()

Operand & Ogre::RTShader::Operand::w | ( |  | ) |
| inline

References Operand(), mask(), and OPM_W.

## ◆ xy()

Operand & Ogre::RTShader::Operand::xy | ( |  | ) |
| inline

References Operand(), mask(), and OPM_XY.

## ◆ xyz()

Operand & Ogre::RTShader::Operand::xyz | ( |  | ) |
| inline

References Operand(), mask(), and OPM_XYZ.

## ◆ mask()

Operand & Ogre::RTShader::Operand::mask | ( | OpMask | opMask | ) |
| inline

References Operand().

Referenced by getFloatCount(), w(), x(), xy(), xyz(), y(), and z().

## ◆ setMaskToParamType()

void Ogre::RTShader::Operand::setMaskToParamType | ( |  | ) |

automatically set swizzle to match parameter arity

## ◆ getSemantic()

OpSemantic Ogre::RTShader::Operand::getSemantic | ( |  | ) | const
| inline

Returns the operand semantic (do we read/write or both with the parameter).

## ◆ getIndirectionLevel()

ushort Ogre::RTShader::Operand::getIndirectionLevel | ( |  | ) | const
| inline

Returns the level of indirection.

The greater the indirection level the more the parameter needs to be nested in brackets. For example given 4 parameters x1...x4 with the indirections levels 0,1,1,2 respectively. The parameters should form the following string: x1[x2][x3[x4]].

## ◆ write()

void Ogre::RTShader::Operand::write | ( | std::ostream & | os | ) | const

write the parameter name and the usage mask like this 'color.xyz'

## ◆ getFloatCount()

int Ogre::RTShader::Operand::getFloatCount | ( | int | mask | ) |
| static

Return the float count of the given mask.

References mask().

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

- OgreShaderFunctionAtom.h