Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL) for OpenGL. More...
#include <OgreGLSLProgramPipeline.h>

Public Member Functions | |
| GLSLProgramPipeline (GLSLGpuProgram *vertexProgram, GLSLGpuProgram *geometryProgram, GLSLGpuProgram *fragmentProgram, GLSLGpuProgram *hullProgram, GLSLGpuProgram *domainProgram, GLSLGpuProgram *computeProgram) | |
| Constructor should only be used by GLSLProgramPipelineManager. | |
| virtual | ~GLSLProgramPipeline () |
| void | activate (void) |
| Makes a program pipeline object active by making sure it is linked and then putting it in use. | |
| virtual void | extractLayoutQualifiers (void) |
| Finds layout qualifiers in the shader source and sets attribute indices appropriately. | |
| virtual GLint | getAttributeIndex (VertexElementSemantic semantic, uint index) |
| Get the index of a non-standard attribute bound in the linked code. | |
| GLSLGpuProgram * | getComputeProgram () const |
| GLSLGpuProgram * | getDomainProgram () const |
| GLSLGpuProgram * | getFragmentProgram () const |
| GLSLGpuProgram * | getGeometryProgram () const |
| GLuint | getGLProgramHandle (void) const |
| Get the GL Handle for the program object. | |
| GLuint | getGLProgramPipelineHandle () const |
| GL Program Pipeline Handle. | |
| GLSLGpuProgram * | getHullProgram () const |
| GL3PlusVertexArrayObject * | getVertexArrayObject () |
| GLSLGpuProgram * | getVertexProgram () const |
| bool | isAttributeValid (VertexElementSemantic semantic, uint index) |
| Is a non-standard attribute bound in the linked code? | |
| bool | isSkeletalAnimationIncluded (void) const |
| Returns whether the linked program includes the required instructions to perform skeletal animation. | |
| void | setSkeletalAnimationIncluded (bool included) |
| Sets whether the linked program includes the required instructions to perform skeletal animation. | |
| virtual void | updatePassIterationUniforms (GpuProgramParametersSharedPtr params) |
| Updates program pipeline object uniforms using data from pass iteration GpuProgramParameters. | |
| virtual void | updateUniformBlocks (GpuProgramParametersSharedPtr params, uint16 mask, GpuProgramType fromProgType) |
| Updates program object uniform blocks using data from GpuProgramParameters. | |
| virtual void | updateUniforms (GpuProgramParametersSharedPtr params, uint16 mask, GpuProgramType fromProgType) |
| Updates program pipeline object uniforms using data from GpuProgramParameters. | |
Protected Types | |
| typedef set< GLuint >::type | AttributeSet |
| typedef map< String, VertexElementSemantic >::type | SemanticToStringMap |
Protected Member Functions | |
| virtual void | _useProgram (void) |
| Put a program pipeline in use. | |
| virtual void | buildGLUniformReferences (void) |
| Build uniform references from active named uniforms. | |
| virtual void | compileAndLink (void) |
| Compiles and links the separate programs. | |
| void | compileIndividualProgram (GLSLGpuProgram *program) |
| VertexElementSemantic | getAttributeSemanticEnum (String type) |
| const char * | getAttributeSemanticString (VertexElementSemantic semantic) |
| Ogre::String | getCombinedName (void) |
| void | getMicrocodeFromCache (void) |
| Get the the binary data of a program from the microcode cache. | |
Protected Attributes | |
| GLSLGpuProgram * | mComputeProgram |
| Linked compute program. | |
| GLint | mCustomAttributesIndexes [VES_COUNT][OGRE_MAX_TEXTURE_COORD_SETS] |
| An array to hold the attributes indexes. | |
| GLSLGpuProgram * | mDomainProgram |
| Linked domain(evaluation) program. | |
| GLSLGpuProgram * | mFragmentProgram |
| Linked fragment program. | |
| GLSLGpuProgram * | mGeometryProgram |
| Linked geometry program. | |
| GLuint | mGLProgramHandle |
| GL handle for the program object. | |
| GLuint | mGLProgramPipelineHandle |
| GL handle for pipeline object. | |
| GLUniformBufferList | mGLUniformBufferReferences |
| Container of uniform buffer references that are active in the program object. | |
| GLUniformReferenceList | mGLUniformReferences |
| Container of uniform references that are active in the program object. | |
| GLSLGpuProgram * | mHullProgram |
| Linked hull(control) program. | |
| GLint | mLinked |
| Flag indicating that the program or pipeline object has been successfully linked. | |
| SemanticToStringMap | mSemanticTypeMap |
| bool | mSkeletalAnimation |
| Flag indicating skeletal animation is being performed. | |
| bool | mTriedToLinkAndFailed |
| Flag indicating that the program or pipeline object has tried to link and failed. | |
| bool | mUniformRefsBuilt |
| Flag to indicate that uniform references have already been built. | |
| GL3PlusVertexArrayObject * | mVertexArrayObject |
| GL handle for the vertex array object. | |
| GLSLGpuProgram * | mVertexProgram |
| Linked vertex program. | |
Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL) for OpenGL.
Definition at line 56 of file OgreGLSLProgramPipeline.h.
typedef set<GLuint>::type Ogre::GLSLProgramCommon::AttributeSet [protected, inherited] |
Definition at line 98 of file OgreGLSLProgramCommon.h.
typedef map<String, VertexElementSemantic>::type Ogre::GLSLProgramCommon::SemanticToStringMap [protected, inherited] |
Definition at line 115 of file OgreGLSLProgramCommon.h.
| Ogre::GLSLProgramPipeline::GLSLProgramPipeline | ( | GLSLGpuProgram * | vertexProgram, |
| GLSLGpuProgram * | geometryProgram, | ||
| GLSLGpuProgram * | fragmentProgram, | ||
| GLSLGpuProgram * | hullProgram, | ||
| GLSLGpuProgram * | domainProgram, | ||
| GLSLGpuProgram * | computeProgram | ||
| ) |
Constructor should only be used by GLSLProgramPipelineManager.
| virtual Ogre::GLSLProgramPipeline::~GLSLProgramPipeline | ( | ) | [virtual] |
| virtual void Ogre::GLSLProgramPipeline::_useProgram | ( | void | ) | [protected, virtual] |
Put a program pipeline in use.
Implements Ogre::GLSLProgramCommon.
| void Ogre::GLSLProgramPipeline::activate | ( | void | ) | [virtual] |
Makes a program pipeline object active by making sure it is linked and then putting it in use.
Implements Ogre::GLSLProgramCommon.
| virtual void Ogre::GLSLProgramPipeline::buildGLUniformReferences | ( | void | ) | [protected, virtual] |
Build uniform references from active named uniforms.
Reimplemented from Ogre::GLSLProgramCommon.
| virtual void Ogre::GLSLProgramPipeline::compileAndLink | ( | void | ) | [protected, virtual] |
Compiles and links the separate programs.
Implements Ogre::GLSLProgramCommon.
| void Ogre::GLSLProgramPipeline::compileIndividualProgram | ( | GLSLGpuProgram * | program | ) | [protected] |
| virtual void Ogre::GLSLProgramCommon::extractLayoutQualifiers | ( | void | ) | [virtual, inherited] |
Finds layout qualifiers in the shader source and sets attribute indices appropriately.
| virtual GLint Ogre::GLSLProgramPipeline::getAttributeIndex | ( | VertexElementSemantic | semantic, |
| uint | index | ||
| ) | [virtual] |
Get the index of a non-standard attribute bound in the linked code.
Reimplemented from Ogre::GLSLProgramCommon.
| VertexElementSemantic Ogre::GLSLProgramCommon::getAttributeSemanticEnum | ( | String | type | ) | [protected, inherited] |
| const char* Ogre::GLSLProgramCommon::getAttributeSemanticString | ( | VertexElementSemantic | semantic | ) | [protected, inherited] |
| Ogre::String Ogre::GLSLProgramCommon::getCombinedName | ( | void | ) | [protected, inherited] |
| GLSLGpuProgram* Ogre::GLSLProgramCommon::getComputeProgram | ( | ) | const [inherited] |
Definition at line 172 of file OgreGLSLProgramCommon.h.
| GLSLGpuProgram* Ogre::GLSLProgramCommon::getDomainProgram | ( | ) | const [inherited] |
Definition at line 171 of file OgreGLSLProgramCommon.h.
| GLSLGpuProgram* Ogre::GLSLProgramCommon::getFragmentProgram | ( | ) | const [inherited] |
Definition at line 168 of file OgreGLSLProgramCommon.h.
| GLSLGpuProgram* Ogre::GLSLProgramCommon::getGeometryProgram | ( | ) | const [inherited] |
Definition at line 169 of file OgreGLSLProgramCommon.h.
| GLuint Ogre::GLSLProgramCommon::getGLProgramHandle | ( | void | ) | const [inherited] |
Get the GL Handle for the program object.
Definition at line 145 of file OgreGLSLProgramCommon.h.
| GLuint Ogre::GLSLProgramPipeline::getGLProgramPipelineHandle | ( | ) | const |
GL Program Pipeline Handle.
Definition at line 64 of file OgreGLSLProgramPipeline.h.
| GLSLGpuProgram* Ogre::GLSLProgramCommon::getHullProgram | ( | ) | const [inherited] |
Definition at line 170 of file OgreGLSLProgramCommon.h.
| void Ogre::GLSLProgramCommon::getMicrocodeFromCache | ( | void | ) | [protected, inherited] |
Get the the binary data of a program from the microcode cache.
| GL3PlusVertexArrayObject* Ogre::GLSLProgramCommon::getVertexArrayObject | ( | ) | [inherited] |
Definition at line 173 of file OgreGLSLProgramCommon.h.
| GLSLGpuProgram* Ogre::GLSLProgramCommon::getVertexProgram | ( | ) | const [inherited] |
Definition at line 167 of file OgreGLSLProgramCommon.h.
| bool Ogre::GLSLProgramCommon::isAttributeValid | ( | VertexElementSemantic | semantic, |
| uint | index | ||
| ) | [inherited] |
Is a non-standard attribute bound in the linked code?
| bool Ogre::GLSLProgramCommon::isSkeletalAnimationIncluded | ( | void | ) | const [inherited] |
Returns whether the linked program includes the required instructions to perform skeletal animation.
Definition at line 160 of file OgreGLSLProgramCommon.h.
| void Ogre::GLSLProgramCommon::setSkeletalAnimationIncluded | ( | bool | included | ) | [inherited] |
Sets whether the linked program includes the required instructions to perform skeletal animation.
Definition at line 152 of file OgreGLSLProgramCommon.h.
| virtual void Ogre::GLSLProgramPipeline::updatePassIterationUniforms | ( | GpuProgramParametersSharedPtr | params | ) | [virtual] |
Updates program pipeline object uniforms using data from pass iteration GpuProgramParameters.
normally called by GLSLGpuProgram::bindMultiPassParameters() just before multi pass rendering occurs.
Implements Ogre::GLSLProgramCommon.
| virtual void Ogre::GLSLProgramPipeline::updateUniformBlocks | ( | GpuProgramParametersSharedPtr | params, |
| uint16 | mask, | ||
| GpuProgramType | fromProgType | ||
| ) | [virtual] |
Updates program object uniform blocks using data from GpuProgramParameters.
normally called by GLSLGpuProgram::bindParameters() just before rendering occurs.
Implements Ogre::GLSLProgramCommon.
| virtual void Ogre::GLSLProgramPipeline::updateUniforms | ( | GpuProgramParametersSharedPtr | params, |
| uint16 | mask, | ||
| GpuProgramType | fromProgType | ||
| ) | [virtual] |
Updates program pipeline object uniforms using data from GpuProgramParameters.
normally called by GLSLGpuProgram::bindParameters() just before rendering occurs.
Implements Ogre::GLSLProgramCommon.
GLSLGpuProgram* Ogre::GLSLProgramCommon::mComputeProgram [protected, inherited] |
Linked compute program.
Definition at line 81 of file OgreGLSLProgramCommon.h.
GLint Ogre::GLSLProgramCommon::mCustomAttributesIndexes[VES_COUNT][OGRE_MAX_TEXTURE_COORD_SETS] [protected, inherited] |
An array to hold the attributes indexes.
Definition at line 101 of file OgreGLSLProgramCommon.h.
GLSLGpuProgram* Ogre::GLSLProgramCommon::mDomainProgram [protected, inherited] |
Linked domain(evaluation) program.
Definition at line 79 of file OgreGLSLProgramCommon.h.
GLSLGpuProgram* Ogre::GLSLProgramCommon::mFragmentProgram [protected, inherited] |
Linked fragment program.
Definition at line 73 of file OgreGLSLProgramCommon.h.
GLSLGpuProgram* Ogre::GLSLProgramCommon::mGeometryProgram [protected, inherited] |
Linked geometry program.
Definition at line 75 of file OgreGLSLProgramCommon.h.
GLuint Ogre::GLSLProgramCommon::mGLProgramHandle [protected, inherited] |
GL handle for the program object.
Definition at line 88 of file OgreGLSLProgramCommon.h.
GLuint Ogre::GLSLProgramPipeline::mGLProgramPipelineHandle [protected] |
GL handle for pipeline object.
Definition at line 88 of file OgreGLSLProgramPipeline.h.
GLUniformBufferList Ogre::GLSLProgramCommon::mGLUniformBufferReferences [protected, inherited] |
Container of uniform buffer references that are active in the program object.
Definition at line 68 of file OgreGLSLProgramCommon.h.
GLUniformReferenceList Ogre::GLSLProgramCommon::mGLUniformReferences [protected, inherited] |
Container of uniform references that are active in the program object.
Definition at line 65 of file OgreGLSLProgramCommon.h.
GLSLGpuProgram* Ogre::GLSLProgramCommon::mHullProgram [protected, inherited] |
Linked hull(control) program.
Definition at line 77 of file OgreGLSLProgramCommon.h.
GLint Ogre::GLSLProgramCommon::mLinked [protected, inherited] |
Flag indicating that the program or pipeline object has been successfully linked.
Definition at line 90 of file OgreGLSLProgramCommon.h.
SemanticToStringMap Ogre::GLSLProgramCommon::mSemanticTypeMap [protected, inherited] |
Definition at line 116 of file OgreGLSLProgramCommon.h.
bool Ogre::GLSLProgramCommon::mSkeletalAnimation [protected, inherited] |
Flag indicating skeletal animation is being performed.
Definition at line 94 of file OgreGLSLProgramCommon.h.
bool Ogre::GLSLProgramCommon::mTriedToLinkAndFailed [protected, inherited] |
Flag indicating that the program or pipeline object has tried to link and failed.
Definition at line 92 of file OgreGLSLProgramCommon.h.
bool Ogre::GLSLProgramCommon::mUniformRefsBuilt [protected, inherited] |
Flag to indicate that uniform references have already been built.
Definition at line 86 of file OgreGLSLProgramCommon.h.
GL3PlusVertexArrayObject* Ogre::GLSLProgramCommon::mVertexArrayObject [protected, inherited] |
GL handle for the vertex array object.
Definition at line 83 of file OgreGLSLProgramCommon.h.
GLSLGpuProgram* Ogre::GLSLProgramCommon::mVertexProgram [protected, inherited] |
Linked vertex program.
Definition at line 71 of file OgreGLSLProgramCommon.h.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Mon Jul 27 2020 13:41:12