Ogre::RTShader::Program Class Reference
Core » RTShader

A class that represents a shader based program. More...

`#include <OgreShaderProgram.h>`

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

## Public Member Functions

void | addDependency (const String &libFileName)
| Add dependency for this program. More...
Function * | createFunction (const String &name, const String &desc, const Function::FunctionType functionType)
| Create new function in this program. More...
const String & | getDependency (unsigned int index) const
| Get the library name of the given index dependency. More...
size_t | getDependencyCount () const
| Get the number of external libs this program depends on. More...
Function * | getEntryPointFunction ()
| Get the entry point function of this program. More...
Function * | getFunctionByName (const String &name)
| Get a function by a given name. More...
const ShaderFunctionList & | getFunctions () const
| Get the function list of this program. More...
UniformParameterPtr | getParameterByAutoType (GpuProgramParameters::AutoConstantType autoType)
| Get parameter by a given auto constant type. More...
UniformParameterPtr | getParameterByName (const String &name)
| Get parameter by a given name. More...
UniformParameterPtr | getParameterByType (GpuConstantType type, int index)
| Get parameter by a given type and index. More...
const UniformParameterList & | getParameters () const
| Get the list of uniform parameters of this program. More...
bool | getSkeletalAnimationIncluded () const
| Returns whether a vertex program includes the required instructions to perform skeletal animation. More...
GpuProgramType | getType () const
| Get the type of this program. More...
bool | getUseColumnMajorMatrices () const
| Returns whether Ogre will pass auto-bound matrices as column-major. More...
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
void * | operator new[] (size_t sz)
UniformParameterPtr | resolveAutoParameterInt (GpuProgramParameters::AutoConstantType autoType, size_t data, size_t size=0)
| Resolve uniform auto constant parameter with associated int data of this program. More...
UniformParameterPtr | resolveAutoParameterInt (GpuProgramParameters::AutoConstantType autoType, GpuConstantType type, size_t data, size_t size=0)
| Resolve uniform auto constant parameter with associated int data of this program. More...
UniformParameterPtr | resolveAutoParameterReal (GpuProgramParameters::AutoConstantType autoType, Real data, size_t size=0)
| Resolve uniform auto constant parameter with associated real data of this program. More...
UniformParameterPtr | resolveAutoParameterReal (GpuProgramParameters::AutoConstantType autoType, GpuConstantType type, Real data, size_t size=0)
| Resolve uniform auto constant parameter with associated real data of this program. More...
UniformParameterPtr | resolveParameter (GpuConstantType type, int index, uint16 variability, const String &suggestedName, size_t size=0)
| Resolve uniform parameter of this program. More...
void | setEntryPointFunction (Function *function)
| Set the entry point function. More...
void | setSkeletalAnimationIncluded (bool value)
| Sets whether a vertex program includes the required instructions to perform skeletal animation. More...
void | setUseColumnMajorMatrices (bool value)
| Tells Ogre whether auto-bound matrices should be sent in column or row-major order. More...

## Protected Member Functions

| Program (GpuProgramType type)
| Class constructor. More...
| ~Program ()
| Class destructor. More...
void | addParameter (UniformParameterPtr parameter)
| Add parameter to this program. More...
void | destroyFunctions ()
| Destroy all functions of this program. More...
void | destroyParameters ()
| Destroy all parameters of this program. More...
void | removeParameter (UniformParameterPtr parameter)
| Remove parameter from this program. More...

## Protected Attributes

bool | mColumnMajorMatrices
StringVector | mDependencies
Function * | mEntryPointFunction
ShaderFunctionList | mFunctions
UniformParameterList | mParameters
bool | mSkeletalAnimation
GpuProgramType | mType

## Friends

class | ProgramManager

## Detailed Description

A class that represents a shader based program.

Definition at line 50 of file OgreShaderProgram.h.

## Constructor & Destructor Documentation

## Program()

Ogre::RTShader::Program::Program | ( | GpuProgramType | type | ) |

protected

Class constructor.

Parameters

  type | The type of this program.

## ~Program()

Ogre::RTShader::Program::~Program | ( |  | ) |

protected

Class destructor.

## Member Function Documentation

## addDependency()

void Ogre::RTShader::Program::addDependency | ( | const String & | libFileName | ) |

Add dependency for this program.

Basically a filename that will be included in this program and provide predefined shader functions code. One should verify that the given library file he provides can be reached by the resource manager. This step can be achieved using the ResourceGroupManager::addResourceLocation method.

## addParameter()

void Ogre::RTShader::Program::addParameter | ( | UniformParameterPtr | parameter | ) |

protected

Add parameter to this program.

## createFunction()

Function* Ogre::RTShader::Program::createFunction | ( | const String & | name,
|  | const String & | desc,
|  | const Function::FunctionType | functionType
| ) |  |

Create new function in this program.

Return the newly created function instance.

Parameters

  name | The name of the function to create.
  desc | The description of the function.

## destroyFunctions()

void Ogre::RTShader::Program::destroyFunctions | ( |  | ) |

protected

Destroy all functions of this program.

## destroyParameters()

void Ogre::RTShader::Program::destroyParameters | ( |  | ) |

protected

Destroy all parameters of this program.

## getDependency()

const String& Ogre::RTShader::Program::getDependency | ( | unsigned int | index | ) | const

Get the library name of the given index dependency.

Parameters

  index | The index of the dependecy.

## getDependencyCount()

size_t Ogre::RTShader::Program::getDependencyCount | ( |  | ) | const

Get the number of external libs this program depends on.

## getEntryPointFunction()

Function* Ogre::RTShader::Program::getEntryPointFunction | ( |  | ) |

Get the entry point function of this program.

Definition at line 147 of file OgreShaderProgram.h.

## getFunctionByName()

Function* Ogre::RTShader::Program::getFunctionByName | ( | const String & | name | ) |

Get a function by a given name.

Return NULL if no matching function found.

Parameters

  name | The name of the function to search for.

## getFunctions()

const ShaderFunctionList& Ogre::RTShader::Program::getFunctions | ( |  | ) | const

Get the function list of this program.

Definition at line 139 of file OgreShaderProgram.h.

## getParameterByAutoType()

UniformParameterPtr Ogre::RTShader::Program::getParameterByAutoType | ( | GpuProgramParameters::AutoConstantType | autoType | ) |

Get parameter by a given auto constant type.

Parameters

  autoType | The auto type of the parameter to search for.

Remarks
  Return NULL if no matching parameter found.

## getParameterByName()

UniformParameterPtr Ogre::RTShader::Program::getParameterByName | ( | const String & | name | ) |

Get parameter by a given name.

Parameters

  name | The name of the parameter to search for.

Remarks
  Return NULL if no matching parameter found.

## getParameterByType()

UniformParameterPtr Ogre::RTShader::Program::getParameterByType | ( | GpuConstantType | type,
|  | int | index
| ) |  |

Get parameter by a given type and index.

Parameters

  type | The type of the parameter to search for.
  index | The index of the parameter to search for.

Remarks
  Return NULL if no matching parameter found.

## getParameters()

const UniformParameterList& Ogre::RTShader::Program::getParameters | ( |  | ) | const

Get the list of uniform parameters of this program.

Definition at line 124 of file OgreShaderProgram.h.

## getSkeletalAnimationIncluded()

bool Ogre::RTShader::Program::getSkeletalAnimationIncluded | ( |  | ) | const

Returns whether a vertex program includes the required instructions to perform skeletal animation.

Definition at line 173 of file OgreShaderProgram.h.

## getType()

GpuProgramType Ogre::RTShader::Program::getType | ( |  | ) | const

Get the type of this program.

## getUseColumnMajorMatrices()

bool Ogre::RTShader::Program::getUseColumnMajorMatrices | ( |  | ) | const

Returns whether Ogre will pass auto-bound matrices as column-major.

Returns
  true, when the matrices will be passed in column-major order, false, when they will be passed as row-major.

Definition at line 192 of file OgreShaderProgram.h.

## operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |

inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

## operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |

inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

## operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |

inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [2/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

## operator new() [1/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

## operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |

inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

## operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |

inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

## operator new[]() [1/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

## operator new[]() [2/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) |

inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

## removeParameter()

void Ogre::RTShader::Program::removeParameter | ( | UniformParameterPtr | parameter | ) |

protected

Remove parameter from this program.

## resolveAutoParameterInt() [1/2]

UniformParameterPtr Ogre::RTShader::Program::resolveAutoParameterInt | ( | GpuProgramParameters::AutoConstantType | autoType,
|  | size_t | data,
|  | size_t | size = `0`
| ) |  |

Resolve uniform auto constant parameter with associated int data of this program.

Parameters

  autoType | The auto type of the desired parameter.
  data | The data to associate with the auto parameter.
  size | number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.

## resolveAutoParameterInt() [2/2]

UniformParameterPtr Ogre::RTShader::Program::resolveAutoParameterInt | ( | GpuProgramParameters::AutoConstantType | autoType,
|  | GpuConstantType | type,
|  | size_t | data,
|  | size_t | size = `0`
| ) |  |

Resolve uniform auto constant parameter with associated int data of this program.

Parameters

  autoType | The auto type of the desired parameter.
  type | The desired data type of the auto parameter.
  data | The data to associate with the auto parameter.
  size | number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.

## resolveAutoParameterReal() [1/2]

UniformParameterPtr Ogre::RTShader::Program::resolveAutoParameterReal | ( | GpuProgramParameters::AutoConstantType | autoType,
|  | Real | data,
|  | size_t | size = `0`
| ) |  |

Resolve uniform auto constant parameter with associated real data of this program.

Parameters

  autoType | The auto type of the desired parameter.
  data | The data to associate with the auto parameter.
  size | number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.

## resolveAutoParameterReal() [2/2]

UniformParameterPtr Ogre::RTShader::Program::resolveAutoParameterReal | ( | GpuProgramParameters::AutoConstantType | autoType,
|  | GpuConstantType | type,
|  | Real | data,
|  | size_t | size = `0`
| ) |  |

Resolve uniform auto constant parameter with associated real data of this program.

Parameters

  autoType | The auto type of the desired parameter.
  type | The desired data type of the auto parameter.
  data | The data to associate with the auto parameter.
  size | number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.

## resolveParameter()

UniformParameterPtr Ogre::RTShader::Program::resolveParameter | ( | GpuConstantType | type,
|  | int | index,
|  | uint16 | variability,
|  | const String & | suggestedName,
|  | size_t | size = `0`
| ) |  |

Resolve uniform parameter of this program.

Parameters

  type | The type of the desired parameter.
  index | The index of the desired parameter.
  suggestedName | The suggested name for the parameter in case new one should be create.
  variability | How this parameter varies (bitwise combination of GpuProgramVariability).
  size | number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.

Remarks
  Pass -1 as index parameter to create a new parameter with the desired type and index.

## setEntryPointFunction()

void Ogre::RTShader::Program::setEntryPointFunction | ( | Function * | function | ) |

Set the entry point function.

Parameters

  function | The function that will use as entry point of this program.

Definition at line 144 of file OgreShaderProgram.h.

## setSkeletalAnimationIncluded()

void Ogre::RTShader::Program::setSkeletalAnimationIncluded | ( | bool | value | ) |

Sets whether a vertex program includes the required instructions to perform skeletal animation.

Definition at line 168 of file OgreShaderProgram.h.

## setUseColumnMajorMatrices()

void Ogre::RTShader::Program::setUseColumnMajorMatrices | ( | bool | value | ) |

Tells Ogre whether auto-bound matrices should be sent in column or row-major order.

Remarks
  This method has the same effect as column_major_matrices option used when declaring manually written hlsl program. You want to use this method only when you use float3x4 type in a shader, e.g. for bone matrices. In mentioned case you should call this method with false as parameter.

  For more detail see OGRE Manual, section 3.1.6 DirectX9 HLSL.

Note
  This setting has any effect only when the target language is HLSL.

Parameters

  value | Should Ogre pass auto-bound matrices as column-major? The default is true.

Definition at line 186 of file OgreShaderProgram.h.

## Friends And Related Function Documentation

## ProgramManager

friend class ProgramManager

friend

Definition at line 235 of file OgreShaderProgram.h.

## Member Data Documentation

## mColumnMajorMatrices

bool Ogre::RTShader::Program::mColumnMajorMatrices

protected

Definition at line 233 of file OgreShaderProgram.h.

## mDependencies

StringVector Ogre::RTShader::Program::mDependencies

protected

Definition at line 229 of file OgreShaderProgram.h.

## mEntryPointFunction

Function* Ogre::RTShader::Program::mEntryPointFunction

protected

Definition at line 227 of file OgreShaderProgram.h.

## mFunctions

ShaderFunctionList Ogre::RTShader::Program::mFunctions

protected

Definition at line 225 of file OgreShaderProgram.h.

## mParameters

UniformParameterList Ogre::RTShader::Program::mParameters

protected

Definition at line 223 of file OgreShaderProgram.h.

## mSkeletalAnimation

bool Ogre::RTShader::Program::mSkeletalAnimation

protected

Definition at line 231 of file OgreShaderProgram.h.

## mType

GpuProgramType Ogre::RTShader::Program::mType

protected

Definition at line 221 of file OgreShaderProgram.h.

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

- OgreShaderProgram.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.