|  | 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 has one program object that represents the active vertex and fragment shader objects during a rendering state. More...
#include <OgreGLSLMonolithicProgramManager.h>
 Inheritance diagram for Ogre::GLSLMonolithicProgramManager:
 Inheritance diagram for Ogre::GLSLMonolithicProgramManager:| Public Member Functions | |
| GLSLMonolithicProgramManager (const GL3PlusSupport &support) | |
| ~GLSLMonolithicProgramManager () | |
| GLSLMonolithicProgram * | getActiveMonolithicProgram () | 
| 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 | setActiveComputeShader (GLSLShader *computeGpuProgram) | 
| Set the active compute shader for the next rendering state. | |
| void | setActiveDomainShader (GLSLShader *domainGpuProgram) | 
| Set the active domain(evaluation) shader for the next rendering state. | |
| void | setActiveFragmentShader (GLSLShader *fragmentGpuProgram) | 
| Set the active fragment shader for the next rendering state. | |
| void | setActiveGeometryShader (GLSLShader *geometryGpuProgram) | 
| Set the active geometry shader for the next rendering state. | |
| void | setActiveHullShader (GLSLShader *hullGpuProgram) | 
| Set the active hull(control) shader for the next rendering state. | |
| void | setActiveVertexShader (GLSLShader *vertexGpuProgram) | 
| Set the active vertex shader for the next rendering state. | |
|  Public Member Functions inherited from Ogre::GLSLProgramManager | |
| GLSLProgramManager (const GL3PlusSupport &support) | |
| 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 *hullConstantDefs, const GpuConstantDefinitionMap *domainConstantDefs, const GpuConstantDefinitionMap *geometryConstantDefs, const GpuConstantDefinitionMap *fragmentConstantDefs, const GpuConstantDefinitionMap *computeConstantDefs, GLUniformReferenceList &uniformList) | 
| Populate a list of uniforms based on an OpenGL program object. | |
|  Public Member Functions inherited from Ogre::Singleton< GLSLMonolithicProgramManager > | |
| Singleton () | |
| ~Singleton () | |
| Static Public Member Functions | |
| static GLSLMonolithicProgramManager & | getSingleton () | 
| static GLSLMonolithicProgramManager * | getSingletonPtr () | 
|  Static Public Member Functions inherited from Ogre::Singleton< GLSLMonolithicProgramManager > | |
| static GLSLMonolithicProgramManager & | getSingleton () | 
| static GLSLMonolithicProgramManager * | getSingletonPtr () | 
Ogre assumes that there are separate vertex and fragment programs to deal with but GLSL 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 Link Program Manager does the same. The GLSL 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::GLSLMonolithicProgramManager::GLSLMonolithicProgramManager | ( | const GL3PlusSupport & | support | ) | 
| Ogre::GLSLMonolithicProgramManager::~GLSLMonolithicProgramManager | ( | ) | 
| GLSLMonolithicProgram * Ogre::GLSLMonolithicProgramManager::getActiveMonolithicProgram | ( | ) | 
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 | 
| 
 | static | 
| void Ogre::GLSLMonolithicProgramManager::setActiveComputeShader | ( | GLSLShader * | computeGpuProgram | ) | 
Set the active compute shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLShader::bindProgram and unbindProgram methods
| void Ogre::GLSLMonolithicProgramManager::setActiveDomainShader | ( | GLSLShader * | domainGpuProgram | ) | 
Set the active domain(evaluation) shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLShader::bindProgram and unbindProgram methods
| void Ogre::GLSLMonolithicProgramManager::setActiveFragmentShader | ( | GLSLShader * | fragmentGpuProgram | ) | 
Set the active fragment shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLShader::bindProgram and unbindProgram methods
| void Ogre::GLSLMonolithicProgramManager::setActiveGeometryShader | ( | GLSLShader * | geometryGpuProgram | ) | 
Set the active geometry shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLShader::bindProgram and unbindProgram methods
| void Ogre::GLSLMonolithicProgramManager::setActiveHullShader | ( | GLSLShader * | hullGpuProgram | ) | 
Set the active hull(control) shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLShader::bindProgram and unbindProgram methods
| void Ogre::GLSLMonolithicProgramManager::setActiveVertexShader | ( | GLSLShader * | vertexGpuProgram | ) | 
Set the active vertex shader for the next rendering state.
The active program object will be cleared. Normally called from the GLSLShader::bindProgram and unbindProgram methods