![]() |
OGRE
2.1.0unstable
Object-Oriented Graphics Rendering Engine
|
C++ encapsulation of GLSL program object. More...
#include <OgreGLSLProgram.h>
Classes | |
class | CmdAttach |
Command object for attaching another GLSL Program. More... | |
class | CmdColumnMajorMatrices |
Command object for setting matrix packing in column-major order. More... | |
class | CmdInputOperationType |
Command object for setting the input operation type (geometry shader only) More... | |
class | CmdMaxOutputVertices |
Command object for setting the maximum output vertices (geometry shader only) More... | |
class | CmdOutputOperationType |
Command object for setting the output operation type (geometry shader only) More... | |
class | CmdPreprocessorDefines |
Command object for setting macro defines. More... | |
Public Member Functions | |
GLSLProgram (GLSLShader *vertexProgram, GLSLShader *hullProgram, GLSLShader *domainProgram, GLSLShader *geometryProgram, GLSLShader *fragmentProgram, GLSLShader *computeProgram) | |
Constructor should only be used by GLSLMonolithicProgramManager and GLSLSeparableProgramManager. More... | |
GLSLProgram (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader) | |
~GLSLProgram () | |
virtual | ~GLSLProgram (void) |
virtual void | activate (void)=0 |
Makes a program object active by making sure it is linked and then putting it in use. More... | |
void | attachChildShader (const String &name) |
Attach another GLSL Shader to this one. More... | |
void | attachToProgramObject (const GLuint programObject) |
bool | compile (const bool checkErrors=false) |
Compile source into shader object. More... | |
GpuProgramParametersSharedPtr | createParameters (void) |
Overridden from GpuProgram. More... | |
void | detachFromProgramObject (const GLuint programObject) |
virtual void | extractLayoutQualifiers (void) |
Finds layout qualifiers in the shader source and sets attribute indices appropriately. More... | |
String | getAttachedShaderNames () const |
virtual GLint | getAttributeIndex (VertexElementSemantic semantic, uint index) |
Get the index of a non-standard attribute bound in the linked code. More... | |
bool | getColumnMajorMatrices (void) const |
Gets whether matrix packed in column-major order. More... | |
GLSLShader * | getComputeShader () const |
GLSLShader * | getDomainShader () const |
GLSLShader * | getFragmentShader () const |
GLSLShader * | getGeometryShader () const |
GLuint | getGLProgramHandle () const |
GLuint | getGLProgramHandle (void) const |
Get the GL Handle for the program object. More... | |
GLuint | getGLShaderHandle () const |
GLSLShader * | getHullShader () const |
virtual RenderOperation::OperationType | getInputOperationType (void) const |
Returns the operation type that this geometry program expects to receive as input. More... | |
const String & | getLanguage (void) const |
Overridden from GpuProgram. More... | |
virtual int | getMaxOutputVertices (void) const |
Returns the maximum number of vertices that this geometry program can output in a single run. More... | |
virtual RenderOperation::OperationType | getOutputOperationType (void) const |
Returns the operation type that this geometry program will emit. More... | |
bool | getPassFogStates (void) const |
bool | getPassSurfaceAndLightStates (void) const |
bool | getPassTransformStates (void) const |
Overridden. More... | |
const String & | getPreprocessorDefines (void) const |
Sets the preprocessor defines use to compile the program. More... | |
GL3PlusOldVertexArrayObject * | getVertexArrayObject () |
GLSLShader * | getVertexShader () const |
bool | isAttributeValid (VertexElementSemantic semantic, uint index) |
Is a non-standard attribute bound in the linked code? More... | |
bool | isSkeletalAnimationIncluded (void) const |
Returns whether the linked program includes the required instructions to perform skeletal animation. More... | |
void | setColumnMajorMatrices (bool columnMajor) |
Sets whether matrix packing in column-major order. More... | |
virtual void | setInputOperationType (RenderOperation::OperationType operationType) |
Sets the operation type that this geometry program expects to receive. More... | |
virtual void | setMaxOutputVertices (int maxOutputVertices) |
Set the maximum number of vertices that a single run of this geometry program can emit. More... | |
virtual void | setOutputOperationType (RenderOperation::OperationType operationType) |
Set the operation type that this geometry program will emit. More... | |
void | setPreprocessorDefines (const String &defines) |
Sets the preprocessor defines use to compile the program. More... | |
void | setSkeletalAnimationIncluded (bool included) |
Sets whether the linked program includes the required instructions to perform skeletal animation. More... | |
virtual void | updatePassIterationUniforms (GpuProgramParametersSharedPtr params)=0 |
Updates program object uniforms using data from pass iteration GpuProgramParameters. More... | |
virtual void | updateUniformBlocks (GpuProgramParametersSharedPtr params, uint16 mask, GpuProgramType fromProgType)=0 |
Updates program object uniform blocks using data from GpuProgramParameters. More... | |
virtual void | updateUniforms (GpuProgramParametersSharedPtr params, uint16 mask, GpuProgramType fromProgType)=0 |
Updates program object uniforms using data from GpuProgramParameters. More... | |
Public Attributes | |
GLint | mBaseInstanceLocation |
C++ encapsulation of GLSL program object.
Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL).
Ogre::GLSLProgram::GLSLProgram | ( | GLSLShader * | vertexProgram, |
GLSLShader * | hullProgram, | ||
GLSLShader * | domainProgram, | ||
GLSLShader * | geometryProgram, | ||
GLSLShader * | fragmentProgram, | ||
GLSLShader * | computeProgram | ||
) |
Constructor should only be used by GLSLMonolithicProgramManager and GLSLSeparableProgramManager.
|
virtual |
Ogre::GLSLProgram::GLSLProgram | ( | ResourceManager * | creator, |
const String & | name, | ||
ResourceHandle | handle, | ||
const String & | group, | ||
bool | isManual, | ||
ManualResourceLoader * | loader | ||
) |
Ogre::GLSLProgram::~GLSLProgram | ( | ) |
|
pure virtual |
Makes a program object active by making sure it is linked and then putting it in use.
Implemented in Ogre::GLSLSeparableProgram, and Ogre::GLSLMonolithicProgram.
void Ogre::GLSLProgram::attachChildShader | ( | const String & | name | ) |
Attach another GLSL Shader to this one.
void Ogre::GLSLProgram::attachToProgramObject | ( | const GLuint | programObject | ) |
bool Ogre::GLSLProgram::compile | ( | const bool | checkErrors = false | ) |
Compile source into shader object.
GpuProgramParametersSharedPtr Ogre::GLSLProgram::createParameters | ( | void | ) |
Overridden from GpuProgram.
void Ogre::GLSLProgram::detachFromProgramObject | ( | const GLuint | programObject | ) |
|
virtual |
Finds layout qualifiers in the shader source and sets attribute indices appropriately.
|
inline |
|
virtual |
Get the index of a non-standard attribute bound in the linked code.
Reimplemented in Ogre::GLSLSeparableProgram.
|
inline |
Gets whether matrix packed in column-major order.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Get the GL Handle for the program object.
|
inline |
|
inline |
|
inlinevirtual |
Returns the operation type that this geometry program expects to receive as input.
const String& Ogre::GLSLProgram::getLanguage | ( | void | ) | const |
Overridden from GpuProgram.
|
inlinevirtual |
Returns the maximum number of vertices that this geometry program can output in a single run.
|
inlinevirtual |
Returns the operation type that this geometry program will emit.
bool Ogre::GLSLProgram::getPassFogStates | ( | void | ) | const |
bool Ogre::GLSLProgram::getPassSurfaceAndLightStates | ( | void | ) | const |
bool Ogre::GLSLProgram::getPassTransformStates | ( | void | ) | const |
Overridden.
|
inline |
Sets the preprocessor defines use to compile the program.
|
inline |
|
inline |
bool Ogre::GLSLProgram::isAttributeValid | ( | VertexElementSemantic | semantic, |
uint | index | ||
) |
Is a non-standard attribute bound in the linked code?
|
inline |
Returns whether the linked program includes the required instructions to perform skeletal animation.
|
inline |
Sets whether matrix packing in column-major order.
|
inlinevirtual |
Sets the operation type that this geometry program expects to receive.
|
inlinevirtual |
Set the maximum number of vertices that a single run of this geometry program can emit.
|
inlinevirtual |
Set the operation type that this geometry program will emit.
|
inline |
Sets the preprocessor defines use to compile the program.
|
inline |
Sets whether the linked program includes the required instructions to perform skeletal animation.
|
pure virtual |
Updates program object uniforms using data from pass iteration GpuProgramParameters.
Normally called by GLSLShader::bindMultiPassParameters() just before multi pass rendering occurs.
Implemented in Ogre::GLSLSeparableProgram, and Ogre::GLSLMonolithicProgram.
|
pure virtual |
Updates program object uniform blocks using data from GpuProgramParameters.
Normally called by GLSLShader::bindParameters() just before rendering occurs.
Implemented in Ogre::GLSLSeparableProgram, and Ogre::GLSLMonolithicProgram.
|
pure virtual |
Updates program object uniforms using data from GpuProgramParameters.
Normally called by GLSLShader::bindParameters() just before rendering occurs.
Implemented in Ogre::GLSLSeparableProgram, and Ogre::GLSLMonolithicProgram.
GLint Ogre::GLSLProgram::mBaseInstanceLocation |