OGRE  1.12.5
Object-Oriented Graphics Rendering Engine
Ogre::RTShader::FunctionInvocation Class Reference

A class that represents function invocation code from shader based program function. More...

#include <OgreShaderFunctionAtom.h>

+ Inheritance diagram for Ogre::RTShader::FunctionInvocation:

Classes

struct  FunctionInvocationCompare
 Comparator function to be used for comparisons. More...
 
struct  FunctionInvocationLessThan
 Comparator function to be used for sorting. More...
 

Public Types

typedef std::vector< OperandOperandVector
 

Public Member Functions

 FunctionInvocation (const FunctionInvocation &rhs)
 Copy constructor. More...
 
 FunctionInvocation (const String &functionName, int groupOrder, const String &returnType="void")
 Class constructor. More...
 
const StringgetFunctionName () const
 Return the function name. More...
 
int getGroupExecutionOrder () const
 Get the group execution order of this function atom. More...
 
OperandVectorgetOperandList ()
 Get a list of parameters this function invocation will use in the function call as arguments. More...
 
const StringgetReturnType () const
 Return the return type. More...
 
bool operator!= (const FunctionInvocation &rhs) const
 Determines if the current object is not equal to the compared one. More...
 
bool operator< (const FunctionInvocation &rhs) const
 Determines if the current object is less than the compared one. More...
 
bool operator== (const FunctionInvocation &rhs) const
 Determines if the current object is equal to the compared one. More...
 
void pushOperand (ParameterPtr parameter, Operand::OpSemantic opSemantic, Operand::OpMask opMask=Operand::OPM_ALL, int indirectionLevel=0)
 Push a new operand (on the end) to the function. More...
 
void setOperands (const OperandVector &ops)
 
virtual void writeSourceCode (std::ostream &os, const String &targetLanguage) const
 

Detailed Description

A class that represents function invocation code from shader based program function.

Member Typedef Documentation

◆ OperandVector

typedef std::vector<Operand> Ogre::RTShader::FunctionAtom::OperandVector
inherited

Constructor & Destructor Documentation

◆ FunctionInvocation() [1/2]

Ogre::RTShader::FunctionInvocation::FunctionInvocation ( const String functionName,
int  groupOrder,
const String returnType = "void" 
)

Class constructor.

Parameters
functionNameThe name of the function to invoke.
groupOrderThe group order of this invocation.
returnTypeThe return type of the used function.

◆ FunctionInvocation() [2/2]

Ogre::RTShader::FunctionInvocation::FunctionInvocation ( const FunctionInvocation rhs)

Copy constructor.

Member Function Documentation

◆ writeSourceCode()

virtual void Ogre::RTShader::FunctionInvocation::writeSourceCode ( std::ostream &  os,
const String targetLanguage 
) const
virtual

◆ getFunctionName()

const String& Ogre::RTShader::FunctionInvocation::getFunctionName ( ) const
inline

Return the function name.

◆ getReturnType()

const String& Ogre::RTShader::FunctionInvocation::getReturnType ( ) const
inline

Return the return type.

◆ operator==()

bool Ogre::RTShader::FunctionInvocation::operator== ( const FunctionInvocation rhs) const

Determines if the current object is equal to the compared one.

◆ operator!=()

bool Ogre::RTShader::FunctionInvocation::operator!= ( const FunctionInvocation rhs) const

Determines if the current object is not equal to the compared one.

◆ operator<()

bool Ogre::RTShader::FunctionInvocation::operator< ( const FunctionInvocation rhs) const

Determines if the current object is less than the compared one.

◆ getGroupExecutionOrder()

int Ogre::RTShader::FunctionAtom::getGroupExecutionOrder ( ) const
inherited

Get the group execution order of this function atom.

◆ getOperandList()

OperandVector& Ogre::RTShader::FunctionAtom::getOperandList ( )
inlineinherited

Get a list of parameters this function invocation will use in the function call as arguments.

◆ pushOperand()

void Ogre::RTShader::FunctionAtom::pushOperand ( ParameterPtr  parameter,
Operand::OpSemantic  opSemantic,
Operand::OpMask  opMask = Operand::OPM_ALL,
int  indirectionLevel = 0 
)
inherited

Push a new operand (on the end) to the function.

Parameters
parameterA function parameter.
opSemanticThe in/out semantic of the parameter.
opMaskThe field mask of the parameter.
indirectionLevelThe level of nesting inside brackets

◆ setOperands()

void Ogre::RTShader::FunctionAtom::setOperands ( const OperandVector ops)
inherited

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