OGRE  14.3
Object-Oriented Graphics Rendering Engine
Ogre::RTShader::Program Class Reference

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

#include <OgreShaderProgram.h>

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

Public Member Functions

 ~Program ()
 Class destructor. More...
 
void addDependency (const String &libFileName)
 Add dependency for this program. More...
 
void addPreprocessorDefines (const String &defines)
 
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 ()
 
bool getInstancingIncluded (void) const
 Returns whether a vertex program can do instancing. More...
 
FunctiongetMain ()
 
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...
 
const StringgetPreprocessorDefines () const
 
bool getSkeletalAnimationIncluded () const
 Returns whether a vertex program can do 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...
 
UniformParameterPtr resolveAutoParameterInt (GpuProgramParameters::AutoConstantType autoType, GpuConstantType type, uint32 data, size_t size=0)
 Resolve uniform auto constant parameter with associated int data of this program. More...
 
UniformParameterPtr resolveAutoParameterReal (GpuProgramParameters::AutoConstantType autoType, GpuConstantType type, float data, size_t size=0)
 Resolve uniform auto constant parameter with associated real 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 resolveParameter (GpuConstantType type, const String &name, int index=-1)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
UniformParameterPtr resolveParameter (GpuConstantType type, int index, uint16 variability, const String &suggestedName, size_t size=0)
 Resolve uniform parameter of this program. More...
 
UniformParameterPtr resolveParameter (GpuProgramParameters::AutoConstantType autoType, uint32 data=0)
 Resolve uniform auto constant parameter. More...
 
void setInstancingIncluded (bool included)
 Sets whether a vertex program can do instancing. More...
 
void setSkeletalAnimationIncluded (bool value)
 Sets whether a vertex program can do skeletal animation. More...
 
void setUseColumnMajorMatrices (bool value)
 Tells Ogre whether auto-bound matrices should be sent in column or row-major order. More...
 

Detailed Description

A class that represents a shader based program.

Constructor & Destructor Documentation

◆ ~Program()

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

Class destructor.

Member Function Documentation

◆ getType()

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

Get the type of this program.

◆ 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
autoTypeThe auto type of the desired parameter.
dataThe data to associate with the auto parameter.
sizenumber of elements in the parameter.
Returns
parameter instance in case of that resolve operation succeeded.

◆ resolveAutoParameterReal() [2/2]

UniformParameterPtr Ogre::RTShader::Program::resolveAutoParameterReal ( GpuProgramParameters::AutoConstantType  autoType,
GpuConstantType  type,
float  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.
Returns
parameter instance in case of that resolve operation succeeded.

◆ resolveAutoParameterInt()

UniformParameterPtr Ogre::RTShader::Program::resolveAutoParameterInt ( GpuProgramParameters::AutoConstantType  autoType,
GpuConstantType  type,
uint32  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.
Returns
parameter instance in case of that resolve operation succeeded.

◆ resolveParameter() [1/3]

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.
Returns
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.

◆ resolveParameter() [2/3]

UniformParameterPtr Ogre::RTShader::Program::resolveParameter ( GpuConstantType  type,
const String name,
int  index = -1 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

References Ogre::GPV_GLOBAL.

◆ resolveParameter() [3/3]

UniformParameterPtr Ogre::RTShader::Program::resolveParameter ( GpuProgramParameters::AutoConstantType  autoType,
uint32  data = 0 
)

Resolve uniform auto constant parameter.

Parameters
autoTypeThe auto type of the desired parameter
dataThe data to associate with the auto parameter.
Returns
parameter instance in case of that resolve operation succeeded.

◆ getParameterByName()

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.

◆ getParameterByAutoType()

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.

◆ getParameterByType()

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.

◆ getParameters()

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

Get the list of uniform parameters of this program.

◆ getEntryPointFunction()

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

◆ getMain()

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

◆ 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.

◆ getDependencyCount()

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

Get the number of external libs this program depends on.

◆ getDependency()

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.

◆ setSkeletalAnimationIncluded()

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

Sets whether a vertex program can do skeletal animation.

If this is set to true, OGRE will not blend the geometry according to skeletal animation, it will expect the vertex program to do it.

◆ getSkeletalAnimationIncluded()

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

Returns whether a vertex program can do skeletal animation.

If this returns true, OGRE will not blend the geometry according to skeletal animation, it will expect the vertex program to do it.

◆ setInstancingIncluded()

void Ogre::RTShader::Program::setInstancingIncluded ( bool  included)
inline

Sets whether a vertex program can do instancing.

If this is set to true, OGRE will provide an instance buffer holding the World Matrix of each instance to the vertex program.

◆ getInstancingIncluded()

bool Ogre::RTShader::Program::getInstancingIncluded ( void  ) const
inline

Returns whether a vertex program can do instancing.

◆ setUseColumnMajorMatrices()

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

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

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.

◆ getUseColumnMajorMatrices()

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.

◆ addPreprocessorDefines()

void Ogre::RTShader::Program::addPreprocessorDefines ( const String defines)

◆ getPreprocessorDefines()

const String& Ogre::RTShader::Program::getPreprocessorDefines ( ) const
inline

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