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>
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.
◆ GLSLESProgramManagerCommon()
Ogre::GLSLESProgramManagerCommon::GLSLESProgramManagerCommon |
( |
void |
| ) |
|
◆ ~GLSLESProgramManagerCommon()
Ogre::GLSLESProgramManagerCommon::~GLSLESProgramManagerCommon |
( |
void |
| ) |
|
◆ optimiseShaderSource()
void Ogre::GLSLESProgramManagerCommon::optimiseShaderSource |
( |
GLSLESGpuProgram * |
gpuProgram | ) |
|
◆ extractUniforms()
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.
- Parameters
-
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). |
◆ extractConstantDefs()
Populate a list of uniforms based on GLSL ES source.
- Parameters
-
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. |
The documentation for this class was generated from the following file: