27#ifndef _ShaderProgram_
28#define _ShaderProgram_
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
AutoConstantType
Defines the types of automatically updated values that may be bound to GpuProgram parameters,...
A class that represents a shader based program function.
A singleton manager class that manages shader based programs.
A class that represents a shader based program.
StringVector mDependencies
const UniformParameterList & getParameters() const
Get the list of uniform parameters of this program.
Program(GpuProgramType type)
Class constructor.
UniformParameterPtr resolveAutoParameterInt(GpuProgramParameters::AutoConstantType autoType, size_t data, size_t size=0)
Resolve uniform auto constant parameter with associated int data of this program.
~Program()
Class destructor.
void setEntryPointFunction(Function *function)
Set the entry point function.
void setSkeletalAnimationIncluded(bool value)
Sets whether a vertex program includes the required instructions to perform skeletal animation.
void destroyFunctions()
Destroy all functions of this program.
ShaderFunctionList mFunctions
UniformParameterPtr resolveParameter(GpuConstantType type, int index, uint16 variability, const String &suggestedName, size_t size=0)
Resolve uniform parameter of this program.
bool mColumnMajorMatrices
const ShaderFunctionList & getFunctions() const
Get the function list of this program.
Function * getEntryPointFunction()
Get the entry point function of this program.
void removeParameter(UniformParameterPtr parameter)
Remove parameter from this program.
GpuProgramType getType() const
Get the type of this program.
void addDependency(const String &libFileName)
Add dependency for this program.
const String & getDependency(unsigned int index) const
Get the library name of the given index dependency.
size_t getDependencyCount() const
Get the number of external libs this program depends on.
UniformParameterPtr getParameterByName(const String &name)
Get parameter by a given name.
Function * createFunction(const String &name, const String &desc, const Function::FunctionType functionType)
Create new function in this program.
void setUseColumnMajorMatrices(bool value)
Tells Ogre whether auto-bound matrices should be sent in column or row-major order.
void addParameter(UniformParameterPtr parameter)
Add parameter to this program.
Function * getFunctionByName(const String &name)
Get a function by a given name.
UniformParameterPtr getParameterByType(GpuConstantType type, int index)
Get parameter by a given type and index.
void destroyParameters()
Destroy all parameters of this program.
UniformParameterPtr resolveAutoParameterReal(GpuProgramParameters::AutoConstantType autoType, Real data, size_t size=0)
Resolve uniform auto constant parameter with associated real data of this program.
bool getSkeletalAnimationIncluded() const
Returns whether a vertex program includes the required instructions to perform skeletal animation.
Function * mEntryPointFunction
UniformParameterList mParameters
bool getUseColumnMajorMatrices() const
Returns whether Ogre will pass auto-bound matrices as column-major.
UniformParameterPtr getParameterByAutoType(GpuProgramParameters::AutoConstantType autoType)
Get parameter by a given auto constant type.
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.
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.
Reference-counted shared pointer, used for objects where implicit destruction is required.
GpuConstantType
Enumeration of the types of constant we may encounter in programs.
GpuProgramType
Enumerates the types of programs which can run on the GPU.