![]() |
OGRE-Next 3.0.0
Object-Oriented Graphics Rendering Engine
|
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 <OgreGLSLESLinkProgramManager.h>
Inheritance diagram for Ogre::GLSLESLinkProgramManager:Public Member Functions | |
| GLSLESLinkProgramManager () | |
| ~GLSLESLinkProgramManager () | |
| GLSLESLinkProgram * | getActiveLinkProgram () |
| Get the program object that links the two active shader objects together if a program object was not already created and linked a new one is created and linked. | |
| void | setActiveFragmentShader (GLSLESShader *fragmentShader) |
| Set the active fragment shader for the next rendering state. | |
| void | setActiveVertexShader (GLSLESShader *vertexShader) |
| Set the active vertex shader for the next rendering state. | |
Public Member Functions inherited from Ogre::GLSLESProgramManagerCommon | |
| GLSLESProgramManagerCommon () | |
| ~GLSLESProgramManagerCommon () | |
| void | extractUniformsFromGLSL (const String &src, GpuNamedConstants &constantDefs, const String &filename) |
| Populate a list of uniforms based on GLSL source and store them in GpuNamedConstants. | |
| 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. | |
| void | optimiseShaderSource (GLSLESShader *gpuProgram) |
Public Member Functions inherited from Ogre::Singleton< GLSLESLinkProgramManager > | |
| Singleton () | |
| ~Singleton () | |
Static Public Member Functions | |
| static GLSLESLinkProgramManager & | getSingleton () |
| static GLSLESLinkProgramManager * | getSingletonPtr () |
Static Public Member Functions inherited from Ogre::Singleton< GLSLESLinkProgramManager > | |
| static GLSLESLinkProgramManager & | getSingleton () |
| static GLSLESLinkProgramManager * | getSingletonPtr () |
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.
| Ogre::GLSLESLinkProgramManager::GLSLESLinkProgramManager | ( | ) |
Referenced by getSingleton(), and getSingletonPtr().
| Ogre::GLSLESLinkProgramManager::~GLSLESLinkProgramManager | ( | ) |
| GLSLESLinkProgram * Ogre::GLSLESLinkProgramManager::getActiveLinkProgram | ( | ) |
Get the program object that links the two active shader objects together if a program object was not already created and linked a new one is created and linked.
|
static |
References GLSLESLinkProgramManager().
|
static |
References GLSLESLinkProgramManager().
| void Ogre::GLSLESLinkProgramManager::setActiveFragmentShader | ( | GLSLESShader * | fragmentShader | ) |
Set the active fragment shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLESShader::bindProgram and unbindProgram methods
| void Ogre::GLSLESLinkProgramManager::setActiveVertexShader | ( | GLSLESShader * | vertexShader | ) |
Set the active vertex shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLESShader::bindProgram and unbindProgram methods