OGRE: Ogre::GLSLESProgramManagerCommon Class Reference

| OGRE 2.2.4 Object-Oriented Graphics Rendering Engine

Public Member Functions | List of all members
Ogre::GLSLESProgramManagerCommon Class Reference

Ogre assumes that there are separate programs to deal with but GLSL ES has one program object that represents the active shader objects during a rendering state. More...

`#include <OgreGLSLESProgramManagerCommon.h>`

Inheritance diagram for Ogre::GLSLESProgramManagerCommon:
[legend]

## Public Member Functions
| GLSLESProgramManagerCommon (void)
| ~GLSLESProgramManagerCommon (void)
void | extractUniformsFromGLSL (const String &src, GpuNamedConstants &constantDefs, const String &filename)
| Populate a list of uniforms based on GLSL source and store them in GpuNamedConstants. More...
void | extractUniformsFromProgram (GLuint programObject, const GpuConstantDefinitionMap *vertexConstantDefs, const GpuConstantDefinitionMap *fragmentConstantDefs, GLUniformReferenceList &uniformList, GLUniformBufferList &uniformBufferList)
| Populate a list of uniforms based on an OpenGL program object. More...
void | optimiseShaderSource (GLSLESShader *gpuProgram)

## Detailed Description

Ogre assumes that there are separate programs to deal with but GLSL ES has one program object that represents the active shader objects during a rendering state.

GLSL 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 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 programs. 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.

## Constructor & Destructor Documentation

## ◆ GLSLESProgramManagerCommon()

Ogre::GLSLESProgramManagerCommon::GLSLESProgramManagerCommon | ( | void |  | ) |

## ◆ ~GLSLESProgramManagerCommon()

Ogre::GLSLESProgramManagerCommon::~GLSLESProgramManagerCommon | ( | void |  | ) |

## Member Function Documentation

## ◆ extractUniformsFromGLSL()

void Ogre::GLSLESProgramManagerCommon::extractUniformsFromGLSL | ( | const String & | src,
|  | GpuNamedConstants & | constantDefs,
|  | const String & | filename
| ) |  |

Populate a list of uniforms based on GLSL source and store them in GpuNamedConstants.

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.

## ◆ extractUniformsFromProgram()

void Ogre::GLSLESProgramManagerCommon::extractUniformsFromProgram | ( | GLuint | programObject,
|  | const GpuConstantDefinitionMap * | vertexConstantDefs,
|  | const GpuConstantDefinitionMap * | fragmentConstantDefs,
|  | GLUniformReferenceList & | uniformList,
|  | GLUniformBufferList & | uniformBufferList
| ) |  |

Populate a list of uniforms based on an OpenGL program object.

Parameters

  programObject | Handle to the program object to query.
  vertexConstantDefs | Definition of the uniforms 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 uniforms 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).

## ◆ optimiseShaderSource()

void Ogre::GLSLESProgramManagerCommon::optimiseShaderSource | ( | GLSLESShader * | gpuProgram | ) |

The documentation for this class was generated from the following file:

- OgreGLSLESProgramManagerCommon.h