OGRE  2.0
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Ogre::RTShader::Program Class Reference

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

#include <OgreShaderProgram.h>

+ Inheritance diagram for Ogre::RTShader::Program:
+ Collaboration diagram for Ogre::RTShader::Program:

Public Member Functions

void addDependency (const String &libFileName)
 Add dependency for this program. More...
 
FunctioncreateFunction (const String &name, const String &desc, const Function::FunctionType functionType)
 Create new function in this program. More...
 
const StringgetDependency (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...
 
FunctiongetEntryPointFunction ()
 Get the entry point function of this program. More...
 
FunctiongetFunctionByName (const String &name)
 Get a function by a given name. More...
 
const ShaderFunctionListgetFunctions () 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 UniformParameterListgetParameters () 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
 
FunctionmEntryPointFunction
 
ShaderFunctionList mFunctions
 
UniformParameterList mParameters
 
bool mSkeletalAnimation
 
GpuProgramType mType
 

Friends

class ProgramManager
 

Detailed Description

A class that represents a shader based program.

Definition at line 48 of file OgreShaderProgram.h.

Constructor & Destructor Documentation

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

Class constructor.

Parameters
typeThe type of this program.
Ogre::RTShader::Program::~Program ( )
protected

Class destructor.

Member Function Documentation

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.

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

Add parameter to this program.

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
nameThe name of the function to create.
descThe description of the function.
void Ogre::RTShader::Program::destroyFunctions ( )
protected

Destroy all functions of this program.

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

Destroy all parameters of this program.

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

Get the library name of the given index dependency.

Parameters
indexThe index of the dependecy.
size_t Ogre::RTShader::Program::getDependencyCount ( ) const

Get the number of external libs this program depends on.

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

Get the entry point function of this program.

Definition at line 145 of file OgreShaderProgram.h.

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

Get a function by a given name.

Return NULL if no matching function found.

Parameters
nameThe name of the function to search for.
const ShaderFunctionList& Ogre::RTShader::Program::getFunctions ( ) const
inline

Get the function list of this program.

Definition at line 137 of file OgreShaderProgram.h.

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

Get parameter by a given auto constant type.

Parameters
autoTypeThe auto type of the parameter to search for.
Remarks
Return NULL if no matching parameter found.
UniformParameterPtr Ogre::RTShader::Program::getParameterByName ( const String name)

Get parameter by a given name.

Parameters
nameThe name of the parameter to search for.
Remarks
Return NULL if no matching parameter found.
UniformParameterPtr Ogre::RTShader::Program::getParameterByType ( GpuConstantType  type,
int  index 
)

Get parameter by a given type and index.

Parameters
typeThe type of the parameter to search for.
indexThe index of the parameter to search for.
Remarks
Return NULL if no matching parameter found.
const UniformParameterList& Ogre::RTShader::Program::getParameters ( ) const
inline

Get the list of uniform parameters of this program.

Definition at line 122 of file OgreShaderProgram.h.

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

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

Definition at line 171 of file OgreShaderProgram.h.

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

Get the type of this program.

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

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 190 of file OgreShaderProgram.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

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

Definition at line 108 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

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

Definition at line 119 of file OgreMemoryAllocatedObject.h.

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

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inlineinherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

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

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

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

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

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

Definition at line 91 of file OgreMemoryAllocatedObject.h.

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

Remove parameter from this program.

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
autoTypeThe auto type of the desired parameter.
dataThe data to associate with the auto parameter.
sizenumber of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.
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
autoTypeThe auto type of the desired parameter.
typeThe desired data type of the auto parameter.
dataThe data to associate with the auto parameter.
sizenumber of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.
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
autoTypeThe auto type of the desired parameter.
dataThe data to associate with the auto parameter.
sizenumber of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.
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
autoTypeThe auto type of the desired parameter.
typeThe desired data type of the auto parameter.
dataThe data to associate with the auto parameter.
sizenumber of elements in the parameter. Return parameter instance in case of that resolve operation succeeded.
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
typeThe type of the desired parameter.
indexThe index of the desired parameter.
suggestedNameThe suggested name for the parameter in case new one should be create.
variabilityHow this parameter varies (bitwise combination of GpuProgramVariability).
sizenumber 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.
void Ogre::RTShader::Program::setEntryPointFunction ( Function function)
inline

Set the entry point function.

Parameters
functionThe function that will use as entry point of this program.

Definition at line 142 of file OgreShaderProgram.h.

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

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

Definition at line 166 of file OgreShaderProgram.h.

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

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
valueShould Ogre pass auto-bound matrices as column-major? The default is true.

Definition at line 184 of file OgreShaderProgram.h.

Friends And Related Function Documentation

friend class ProgramManager
friend

Definition at line 233 of file OgreShaderProgram.h.

Member Data Documentation

bool Ogre::RTShader::Program::mColumnMajorMatrices
protected

Definition at line 231 of file OgreShaderProgram.h.

StringVector Ogre::RTShader::Program::mDependencies
protected

Definition at line 227 of file OgreShaderProgram.h.

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

Definition at line 225 of file OgreShaderProgram.h.

ShaderFunctionList Ogre::RTShader::Program::mFunctions
protected

Definition at line 223 of file OgreShaderProgram.h.

UniformParameterList Ogre::RTShader::Program::mParameters
protected

Definition at line 221 of file OgreShaderProgram.h.

bool Ogre::RTShader::Program::mSkeletalAnimation
protected

Definition at line 229 of file OgreShaderProgram.h.

GpuProgramType Ogre::RTShader::Program::mType
protected

Definition at line 219 of file OgreShaderProgram.h.


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