Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL ES) for OpenGL ES 2.0. More...
#include <OgreGLSLESProgram.h>
Classes | |
class | CmdOptimisation |
Command object for running the GLSL optimiser. More... | |
class | CmdPreprocessorDefines |
Command object for setting macro defines. More... | |
Public Member Functions | |
GLSLESProgram (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader) | |
~GLSLESProgram () | |
void | attachToProgramObject (const GLuint programObject) |
bool | compile (const bool checkErrors=false) |
compile source into shader object More... | |
GpuProgramParametersSharedPtr | createParameters (void) |
Overridden from GpuProgram. More... | |
void | detachFromProgramObject (const GLuint programObject) |
GLuint | getGLProgramHandle () const |
GLuint | getGLShaderHandle () const |
GL Shader Handle. More... | |
bool | getIsOptimised (void) |
Gets if the GLSL source has been optimised successfully. More... | |
const String & | getLanguage (void) const |
Overridden from GpuProgram. More... | |
String | getOptimisedSource (void) |
Gets he optimised GLSL source. More... | |
bool | getOptimiserEnabled (void) const |
Gets if the GLSL optimiser is enabled. More... | |
bool | getPassFogStates (void) const |
bool | getPassSurfaceAndLightStates (void) const |
bool | getPassTransformStates (void) const |
Overridden. More... | |
const String & | getPreprocessorDefines (void) const |
Sets the preprocessor defines use to compile the program. More... | |
void | setIsOptimised (bool flag) |
Sets if the GLSL source has been optimised successfully. More... | |
void | setOptimisedSource (const String &src) |
Sets the optimised GLSL source. More... | |
void | setOptimiserEnabled (bool enabled) |
Sets if the GLSL optimiser is enabled. More... | |
void | setPreprocessorDefines (const String &defines) |
Sets the preprocessor defines use to compile the program. More... | |
Protected Member Functions | |
void | buildConstantDefinitions () const |
Populate the passed parameters with name->index map, must be overridden. More... | |
void | checkAndFixInvalidDefaultPrecisionError (String &message) |
check the compile result for an error with default precision - and recompile if needed. More... | |
void | createLowLevelImpl (void) |
Internal method for creating a dummy low-level program for this high-level program. More... | |
void | loadFromSource (void) |
Internal load implementation, must be implemented by subclasses. More... | |
virtual void | notifyOnContextLost () |
See AndroidResource. More... | |
void | populateParameterNames (GpuProgramParametersSharedPtr params) |
Populate the passed parameters with name->index map. More... | |
void | unloadHighLevelImpl (void) |
Internal unload implementation, must be implemented by subclasses. More... | |
void | unloadImpl (void) |
Overridden from HighLevelGpuProgram. More... | |
Static Protected Attributes | |
static CmdOptimisation | msCmdOptimisation |
static CmdPreprocessorDefines | msCmdPreprocessorDefines |
Private Attributes | |
GLint | mCompiled |
Flag indicating if shader object successfully compiled. More... | |
GLuint | mGLProgramHandle |
GLuint | mGLShaderHandle |
GL handle for shader object. More... | |
bool | mIsOptimised |
Flag indicating if shader has been successfully optimised. More... | |
String | mOptimisedSource |
The optmised source of the program (may be blank until the shader is optmisied) More... | |
bool | mOptimiserEnabled |
String | mPreprocessorDefines |
Preprocessor options. More... | |
Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL ES) for OpenGL ES 2.0.
Definition at line 50 of file OgreGLSLESProgram.h.
Ogre::GLSLESProgram::GLSLESProgram | ( | ResourceManager * | creator, |
const String & | name, | ||
ResourceHandle | handle, | ||
const String & | group, | ||
bool | isManual, | ||
ManualResourceLoader * | loader | ||
) |
Ogre::GLSLESProgram::~GLSLESProgram | ( | ) |
void Ogre::GLSLESProgram::attachToProgramObject | ( | const GLuint | programObject | ) |
|
protected |
Populate the passed parameters with name->index map, must be overridden.
|
protected |
check the compile result for an error with default precision - and recompile if needed.
some glsl compilers return an error default precision is set to types other then int or float, this function test a failed compile result for the error, delete the needed lines from the source if needed then try to re-compile.
bool Ogre::GLSLESProgram::compile | ( | const bool | checkErrors = false | ) |
compile source into shader object
|
protected |
Internal method for creating a dummy low-level program for this high-level program.
GLSL ES does not give access to the low level implementation of the shader so this method creates an object sub-classed from GLES2GpuProgram just to be compatible with GLES2RenderSystem.
GpuProgramParametersSharedPtr Ogre::GLSLESProgram::createParameters | ( | void | ) |
Overridden from GpuProgram.
void Ogre::GLSLESProgram::detachFromProgramObject | ( | const GLuint | programObject | ) |
GLuint Ogre::GLSLESProgram::getGLProgramHandle | ( | ) | const |
Definition at line 79 of file OgreGLSLESProgram.h.
GLuint Ogre::GLSLESProgram::getGLShaderHandle | ( | ) | const |
GL Shader Handle.
Definition at line 76 of file OgreGLSLESProgram.h.
bool Ogre::GLSLESProgram::getIsOptimised | ( | void | ) |
Gets if the GLSL source has been optimised successfully.
Definition at line 100 of file OgreGLSLESProgram.h.
const String& Ogre::GLSLESProgram::getLanguage | ( | void | ) | const |
Overridden from GpuProgram.
String Ogre::GLSLESProgram::getOptimisedSource | ( | void | ) |
Gets he optimised GLSL source.
Definition at line 105 of file OgreGLSLESProgram.h.
bool Ogre::GLSLESProgram::getOptimiserEnabled | ( | void | ) | const |
Gets if the GLSL optimiser is enabled.
Definition at line 95 of file OgreGLSLESProgram.h.
bool Ogre::GLSLESProgram::getPassFogStates | ( | void | ) | const |
bool Ogre::GLSLESProgram::getPassSurfaceAndLightStates | ( | void | ) | const |
bool Ogre::GLSLESProgram::getPassTransformStates | ( | void | ) | const |
Overridden.
const String& Ogre::GLSLESProgram::getPreprocessorDefines | ( | void | ) | const |
Sets the preprocessor defines use to compile the program.
Definition at line 89 of file OgreGLSLESProgram.h.
|
protected |
Internal load implementation, must be implemented by subclasses.
|
protectedvirtual |
See AndroidResource.
|
protected |
Populate the passed parameters with name->index map.
void Ogre::GLSLESProgram::setIsOptimised | ( | bool | flag | ) |
Sets if the GLSL source has been optimised successfully.
Definition at line 98 of file OgreGLSLESProgram.h.
void Ogre::GLSLESProgram::setOptimisedSource | ( | const String & | src | ) |
Sets the optimised GLSL source.
Definition at line 103 of file OgreGLSLESProgram.h.
void Ogre::GLSLESProgram::setOptimiserEnabled | ( | bool | enabled | ) |
Sets if the GLSL optimiser is enabled.
void Ogre::GLSLESProgram::setPreprocessorDefines | ( | const String & | defines | ) |
Sets the preprocessor defines use to compile the program.
Definition at line 87 of file OgreGLSLESProgram.h.
|
protected |
Internal unload implementation, must be implemented by subclasses.
|
protected |
Overridden from HighLevelGpuProgram.
|
private |
Flag indicating if shader object successfully compiled.
Definition at line 157 of file OgreGLSLESProgram.h.
|
private |
Definition at line 155 of file OgreGLSLESProgram.h.
|
private |
GL handle for shader object.
Definition at line 154 of file OgreGLSLESProgram.h.
|
private |
Flag indicating if shader has been successfully optimised.
Definition at line 162 of file OgreGLSLESProgram.h.
|
private |
The optmised source of the program (may be blank until the shader is optmisied)
Definition at line 165 of file OgreGLSLESProgram.h.
|
private |
Definition at line 163 of file OgreGLSLESProgram.h.
|
private |
Preprocessor options.
Definition at line 159 of file OgreGLSLESProgram.h.
|
staticprotected |
Definition at line 119 of file OgreGLSLESProgram.h.
|
staticprotected |
Definition at line 117 of file OgreGLSLESProgram.h.
Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Tue Mar 18 2014 19:15:43