OGRE-Next  3.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::GLSLESShader Class Reference

Specialisation of HighLevelGpuProgram to encapsulate shader objects obtained from compiled shaders written in the OpenGL Shader Language (GLSL ES) for OpenGL ES 2.0. More...

#include <OgreGLSLESShader.h>

+ Inheritance diagram for Ogre::GLSLESShader:

Classes

class  CmdOptimisation
 Command object for running the GLSL optimiser. More...
 
class  CmdPreprocessorDefines
 Command object for setting macro defines. More...
 

Public Member Functions

 GLSLESShader (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader)
 
 ~GLSLESShader ()
 
GpuProgram_getBindingDelegate ()
 Since GLSL has no assembly, use this shader for binding. More...
 
void attachToProgramObject (const GLuint programObject)
 
void bind ()
 Bind the shader in OpenGL. More...
 
void bindParameters (GpuProgramParametersSharedPtr params, uint16 mask)
 Execute the param binding functions for this shader. More...
 
void bindPassIterationParameters (GpuProgramParametersSharedPtr params)
 Execute the pass iteration param binding functions for this shader. More...
 
void bindSharedParameters (GpuProgramParametersSharedPtr params, uint16 mask)
 Execute the shared param binding functions for this shader. More...
 
bool compile (const bool checkErrors=false)
 Compile source into shader object. More...
 
GpuProgramParametersSharedPtr createParameters ()
 Overridden from GpuProgram. More...
 
void detachFromProgramObject (const GLuint programObject)
 
GLuint getGLProgramHandle ()
 
GLuint getGLShaderHandle () const
 
GLenum getGLShaderType (GpuProgramType programType)
 Get OpenGL GLSL shader type from OGRE GPU program type. More...
 
bool getIsOptimised ()
 Gets if the GLSL source has been optimised successfully. More...
 
const StringgetLanguage () const
 Overridden from GpuProgram. More...
 
String getOptimisedSource ()
 Gets he optimised GLSL source. More...
 
bool getOptimiserEnabled () const
 Gets if the GLSL optimiser is enabled. More...
 
bool getPassFogStates () const
 
bool getPassSurfaceAndLightStates () const
 
bool getPassTransformStates () const
 Overridden. More...
 
const StringgetPreprocessorDefines () const
 Sets the preprocessor defines use to compile the program. More...
 
GLuint getShaderID () const
 Get the OGRE assigned shader ID. More...
 
String getShaderTypeLabel (GpuProgramType programType)
 Get a string containing the name of the GLSL shader type correspondening to the OGRE GPU program type. More...
 
GLint isLinked ()
 Return the shader link status. More...
 
void setIsOptimised (bool flag)
 Sets if the GLSL source has been optimised successfully. More...
 
void setLinked (GLint flag)
 Set the shader link status. 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...
 
void unbind ()
 Unbind the shader in OpenGL. More...
 

Static Public Member Functions

static void unbindAll ()
 

Detailed Description

Specialisation of HighLevelGpuProgram to encapsulate shader objects obtained from compiled shaders written in the OpenGL Shader Language (GLSL ES) for OpenGL ES 2.0.

Remarks
GLSL ES has no target assembler or entry point specification like DirectX 9 HLSL. Vertex and Fragment shaders only have one entry point called "main". When a shader is compiled, microcode is generated but can not be accessed by the application. GLSL ES also does not provide assembler low level output after compiling.

Constructor & Destructor Documentation

◆ GLSLESShader()

Ogre::GLSLESShader::GLSLESShader ( ResourceManager creator,
const String name,
ResourceHandle  handle,
const String group,
bool  isManual,
ManualResourceLoader loader 
)

◆ ~GLSLESShader()

Ogre::GLSLESShader::~GLSLESShader ( )

Member Function Documentation

◆ _getBindingDelegate()

GpuProgram* Ogre::GLSLESShader::_getBindingDelegate ( )
inline

Since GLSL has no assembly, use this shader for binding.

◆ attachToProgramObject()

void Ogre::GLSLESShader::attachToProgramObject ( const GLuint  programObject)

◆ bind()

void Ogre::GLSLESShader::bind ( )

Bind the shader in OpenGL.

◆ bindParameters()

void Ogre::GLSLESShader::bindParameters ( GpuProgramParametersSharedPtr  params,
uint16  mask 
)

Execute the param binding functions for this shader.

◆ bindPassIterationParameters()

void Ogre::GLSLESShader::bindPassIterationParameters ( GpuProgramParametersSharedPtr  params)

Execute the pass iteration param binding functions for this shader.

◆ bindSharedParameters()

void Ogre::GLSLESShader::bindSharedParameters ( GpuProgramParametersSharedPtr  params,
uint16  mask 
)

Execute the shared param binding functions for this shader.

◆ compile()

bool Ogre::GLSLESShader::compile ( const bool  checkErrors = false)

Compile source into shader object.

◆ createParameters()

GpuProgramParametersSharedPtr Ogre::GLSLESShader::createParameters ( )

Overridden from GpuProgram.

◆ detachFromProgramObject()

void Ogre::GLSLESShader::detachFromProgramObject ( const GLuint  programObject)

◆ getGLProgramHandle()

GLuint Ogre::GLSLESShader::getGLProgramHandle ( )

◆ getGLShaderHandle()

GLuint Ogre::GLSLESShader::getGLShaderHandle ( ) const
inline

◆ getGLShaderType()

GLenum Ogre::GLSLESShader::getGLShaderType ( GpuProgramType  programType)

Get OpenGL GLSL shader type from OGRE GPU program type.

◆ getIsOptimised()

bool Ogre::GLSLESShader::getIsOptimised ( )
inline

Gets if the GLSL source has been optimised successfully.

◆ getLanguage()

const String& Ogre::GLSLESShader::getLanguage ( ) const

Overridden from GpuProgram.

◆ getOptimisedSource()

String Ogre::GLSLESShader::getOptimisedSource ( )
inline

Gets he optimised GLSL source.

◆ getOptimiserEnabled()

bool Ogre::GLSLESShader::getOptimiserEnabled ( ) const
inline

Gets if the GLSL optimiser is enabled.

◆ getPassFogStates()

bool Ogre::GLSLESShader::getPassFogStates ( ) const

◆ getPassSurfaceAndLightStates()

bool Ogre::GLSLESShader::getPassSurfaceAndLightStates ( ) const

◆ getPassTransformStates()

bool Ogre::GLSLESShader::getPassTransformStates ( ) const

Overridden.

◆ getPreprocessorDefines()

const String& Ogre::GLSLESShader::getPreprocessorDefines ( ) const
inline

Sets the preprocessor defines use to compile the program.

◆ getShaderID()

GLuint Ogre::GLSLESShader::getShaderID ( ) const
inline

Get the OGRE assigned shader ID.

◆ getShaderTypeLabel()

String Ogre::GLSLESShader::getShaderTypeLabel ( GpuProgramType  programType)

Get a string containing the name of the GLSL shader type correspondening to the OGRE GPU program type.

◆ isLinked()

GLint Ogre::GLSLESShader::isLinked ( )
inline

Return the shader link status.

Only used for separable programs.

◆ setIsOptimised()

void Ogre::GLSLESShader::setIsOptimised ( bool  flag)
inline

Sets if the GLSL source has been optimised successfully.

◆ setLinked()

void Ogre::GLSLESShader::setLinked ( GLint  flag)
inline

Set the shader link status.

Only used for separable programs.

◆ setOptimisedSource()

void Ogre::GLSLESShader::setOptimisedSource ( const String src)
inline

Sets the optimised GLSL source.

◆ setOptimiserEnabled()

void Ogre::GLSLESShader::setOptimiserEnabled ( bool  enabled)

Sets if the GLSL optimiser is enabled.

◆ setPreprocessorDefines()

void Ogre::GLSLESShader::setPreprocessorDefines ( const String defines)
inline

Sets the preprocessor defines use to compile the program.

◆ unbind()

void Ogre::GLSLESShader::unbind ( )

Unbind the shader in OpenGL.

◆ unbindAll()

static void Ogre::GLSLESShader::unbindAll ( )
static

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