Ogre assumes that there are separate vertex and fragment programs to deal with but GLSL ES has one program object that represents the active vertex and fragment shader objects during a rendering state. More...
#include <OgreGLSLESProgramManagerCommon.h>

Public Member Functions | |
| GLSLESProgramManagerCommon (void) | |
| ~GLSLESProgramManagerCommon (void) | |
| void | extractConstantDefs (const String &src, GpuNamedConstants &constantDefs, const String &filename) |
| Populate a list of uniforms based on GLSL ES source. More... | |
| void | extractUniforms (GLuint programObject, const GpuConstantDefinitionMap *vertexConstantDefs, const GpuConstantDefinitionMap *fragmentConstantDefs, GLUniformReferenceList &list, GLUniformBufferList &sharedList) |
| Populate a list of uniforms based on a program object. More... | |
| void | optimiseShaderSource (GLSLESGpuProgram *gpuProgram) |
Protected Types | |
| typedef map< String, GLenum >::type | StringToEnumMap |
Protected Member Functions | |
| void | completeDefInfo (GLenum gltype, GpuConstantDefinition &defToUpdate) |
| Use type to complete other information. More... | |
| bool | completeParamSource (const String ¶mName, const GpuConstantDefinitionMap *vertexConstantDefs, const GpuConstantDefinitionMap *fragmentConstantDefs, GLUniformReference &refToUpdate) |
| Find where the data for a specific uniform should come from, populate. More... | |
| void | parseIndividualConstant (const String &src, GpuNamedConstants &defs, String::size_type currPos, const String &filename, GpuSharedParametersPtr sharedParams) |
Protected Attributes | |
| GLSLESGpuProgram * | mActiveFragmentGpuProgram |
| GLSLESGpuProgram * | mActiveVertexGpuProgram |
| Active objects defining the active rendering gpu state. More... | |
| struct glslopt_ctx * | mGLSLOptimiserContext |
| StringToEnumMap | mTypeEnumMap |
Ogre assumes that there are separate vertex and fragment programs to deal with but GLSL ES has one program object that represents the active vertex and fragment shader objects during a rendering state.
GLSL Vertex and fragment shader objects are compiled separately and then attached to a program object and then the program object is linked. Since Ogre can only handle one vertex program and one fragment program being active in a pass, the GLSL ES Link Program Manager does the same. The GLSL ES Link program manager acts as a state machine and activates a program object based on the active vertex and fragment program. Previously created program objects are stored along with a unique key in a hash_map for quick retrieval the next time the program object is required.
Definition at line 54 of file OgreGLSLESProgramManagerCommon.h.
|
protected |
Definition at line 61 of file OgreGLSLESProgramManagerCommon.h.
| Ogre::GLSLESProgramManagerCommon::GLSLESProgramManagerCommon | ( | void | ) |
| Ogre::GLSLESProgramManagerCommon::~GLSLESProgramManagerCommon | ( | void | ) |
|
protected |
Use type to complete other information.
|
protected |
Find where the data for a specific uniform should come from, populate.
| void Ogre::GLSLESProgramManagerCommon::extractConstantDefs | ( | const String & | src, |
| GpuNamedConstants & | constantDefs, | ||
| const String & | filename | ||
| ) |
Populate a list of uniforms based on GLSL ES source.
| src | Reference to the source code |
| constantDefs | The defs to populate (will not be cleared before adding, clear it yourself before calling this if that's what you want). |
| filename | The file name this came from, for logging errors. |
| void Ogre::GLSLESProgramManagerCommon::extractUniforms | ( | GLuint | programObject, |
| const GpuConstantDefinitionMap * | vertexConstantDefs, | ||
| const GpuConstantDefinitionMap * | fragmentConstantDefs, | ||
| GLUniformReferenceList & | list, | ||
| GLUniformBufferList & | sharedList | ||
| ) |
Populate a list of uniforms based on a program object.
| programObject | Handle to the program object to query |
| vertexConstantDefs | Definition of the constants extracted from the vertex program, used to match up physical buffer indexes with program uniforms. May be null if there is no vertex program. |
| fragmentConstantDefs | Definition of the constants extracted from the fragment program, used to match up physical buffer indexes with program uniforms. May be null if there is no fragment program. |
| list | The list to populate (will not be cleared before adding, clear it yourself before calling this if that's what you want). |
| void Ogre::GLSLESProgramManagerCommon::optimiseShaderSource | ( | GLSLESGpuProgram * | gpuProgram | ) |
|
protected |
|
protected |
Definition at line 59 of file OgreGLSLESProgramManagerCommon.h.
|
protected |
Active objects defining the active rendering gpu state.
Definition at line 58 of file OgreGLSLESProgramManagerCommon.h.
|
protected |
Definition at line 64 of file OgreGLSLESProgramManagerCommon.h.
|
protected |
Definition at line 62 of file OgreGLSLESProgramManagerCommon.h.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Tue Apr 13 2021 08:53:15