Public Member Functions | Private Attributes
Ogre::GLES2StateCacheManager Class Reference

An in memory cache of the OpenGL ES state. More...

#include <OgreGLES2StateCacheManager.h>

Inheritance diagram for Ogre::GLES2StateCacheManager:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 GLES2StateCacheManager (void)
 ~GLES2StateCacheManager (void)
bool activateGLTextureUnit (unsigned char unit)
 Activate an OpenGL texture unit.
void bindGLBuffer (GLenum target, GLuint buffer, bool force=false)
 Bind an OpenGL buffer of any type.
void bindGLTexture (GLenum target, GLuint texture)
 Bind an OpenGL texture of any type.
void clearCache ()
 Clears all cached values.
void deleteGLBuffer (GLenum target, GLuint buffer, bool force=false)
 Delete an OpenGL buffer of any type.
GLenum getBlendEquation (void) const
 Gets the current blend equation setting.
GLclampf getClearDepth (void) const
 Gets the clear depth in the range from [0..1].
vector< GLboolean >::type & getColourMask (void) const
 Gets the current colour mask setting.
GLenum getCullFace (void) const
 Sets the face culling mode.
GLenum getDepthFunc (void) const
 Gets the current depth test function.
GLboolean getDepthMask (void) const
 Gets the current depth mask setting.
unsigned int getDiscardBuffers (void) const
 Gets the mask of buffers to be discarded if GL_EXT_discard_framebuffer is supported.
GLenum getPolygonMode (void) const
 Gets the current polygon rendering mode, fill, wireframe, points, etc.
GLuint getStencilMask (void) const
 Gets the current stencil mask.
void getTexParameterfv (GLenum target, GLenum pname, GLfloat *param)
 Sets a float parameter value per texture target.
void initializeCache ()
 Initialize our cache variables and sets the GL states on the current context.
void invalidateStateForTexture (GLuint texture)
 Invalidates the state associated with a particular texture ID.
void operator delete (void *ptr)
void operator delete (void *ptr, void *)
void operator delete (void *ptr, const char *, int, const char *)
void operator delete[] (void *ptr)
void operator delete[] (void *ptr, const char *, int, const char *)
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
void * operator new (size_t sz)
void * operator new (size_t sz, void *ptr)
 placement operator new
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
void * operator new[] (size_t sz)
void setBlendEquation (GLenum eq)
 Sets the current blend equation setting.
void setBlendFunc (GLenum source, GLenum dest)
 Sets the blending function.
void setClearColour (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
 Sets the color to clear to.
void setClearDepth (GLclampf depth)
 Sets the clear depth in the range from [0..1].
void setColourMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
 Sets the current colour mask.
void setCullFace (GLenum face)
 Sets the face culling setting.
void setDepthFunc (GLenum func)
 Sets the current depth test function.
void setDepthMask (GLboolean mask)
 Sets the current depth mask setting.
void setDisabled (GLenum flag)
 Disables a piece of OpenGL functionality.
void setDiscardBuffers (unsigned int flags)
 Sets the mask of buffers to be discarded if GL_EXT_discard_framebuffer is supported.
void setEnabled (GLenum flag)
 Enables a piece of OpenGL functionality.
void setPolygonMode (GLenum mode)
 Sets the current polygon rendering mode.
void setStencilMask (GLuint mask)
 Sets the stencil mask.
void setTexParameterf (GLenum target, GLenum pname, GLfloat param)
 Sets a float parameter value per texture target.
void setTexParameteri (GLenum target, GLenum pname, GLint param)
 Sets an integer parameter value per texture target.
void setVertexAttribDisabled (GLuint attrib)
 Disables a vertex attribute.
void setVertexAttribEnabled (GLuint attrib)
 Enables a vertex attribute.

Private Attributes

GLES2StateCacheManagerImpmImp

Detailed Description

An in memory cache of the OpenGL ES state.

Remarks:
State changes can be particularly expensive time wise. This is because a change requires OpenGL to re-evaluate and update the state machine. Because of the general purpose nature of OGRE we often set the state for a specific texture, material, buffer, etc. But this may be the same as the current status of the state machine and is therefore redundant and causes unnecessary work to be performed by OpenGL.
Instead we are caching the state so that we can check whether it actually does need to be updated. This leads to improved performance all around and can be somewhat dramatic in some cases.

Definition at line 53 of file OgreGLES2StateCacheManager.h.


Constructor & Destructor Documentation


Member Function Documentation

Activate an OpenGL texture unit.

Parameters:
unitThe texture unit to activate.
Returns:
Whether or not the texture unit was successfully activated.
void Ogre::GLES2StateCacheManager::bindGLBuffer ( GLenum  target,
GLuint  buffer,
bool  force = false 
)

Bind an OpenGL buffer of any type.

Parameters:
targetThe buffer target.
bufferThe buffer ID.
forceOptional parameter to force an update.
void Ogre::GLES2StateCacheManager::bindGLTexture ( GLenum  target,
GLuint  texture 
)

Bind an OpenGL texture of any type.

Parameters:
targetThe texture target.
textureThe texture ID.

Clears all cached values.

void Ogre::GLES2StateCacheManager::deleteGLBuffer ( GLenum  target,
GLuint  buffer,
bool  force = false 
)

Delete an OpenGL buffer of any type.

Parameters:
targetThe buffer target.
bufferThe buffer ID.
forceOptional parameter to force an update.

Gets the current blend equation setting.

Returns:
The blend equation.

Gets the clear depth in the range from [0..1].

Returns:
The current clearing depth.
vector<GLboolean>::type& Ogre::GLES2StateCacheManager::getColourMask ( void  ) const

Gets the current colour mask setting.

Returns:
An array containing the mask in RGBA order.

Sets the face culling mode.

Returns:
The current face culling mode

Gets the current depth test function.

Returns:
The current depth test function.
GLboolean Ogre::GLES2StateCacheManager::getDepthMask ( void  ) const

Gets the current depth mask setting.

Returns:
The current depth mask.
unsigned int Ogre::GLES2StateCacheManager::getDiscardBuffers ( void  ) const

Gets the mask of buffers to be discarded if GL_EXT_discard_framebuffer is supported.

Returns:
The buffer mask.

Gets the current polygon rendering mode, fill, wireframe, points, etc.

Returns:
The current polygon rendering mode.

Gets the current stencil mask.

Returns:
The stencil mask.
void Ogre::GLES2StateCacheManager::getTexParameterfv ( GLenum  target,
GLenum  pname,
GLfloat *  param 
)

Sets a float parameter value per texture target.

Parameters:
targetThe texture target.
pnameThe parameter name.
paramsThe parameter value.

Initialize our cache variables and sets the GL states on the current context.

Invalidates the state associated with a particular texture ID.

Parameters:
textureThe texture ID.
template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr) [inherited]

Definition at line 96 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
) [inherited]

Definition at line 102 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
const char *  ,
int  ,
const char *   
) [inherited]

Definition at line 108 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr) [inherited]

Definition at line 113 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr,
const char *  ,
int  ,
const char *   
) [inherited]

Definition at line 119 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
const char *  file,
int  line,
const char *  func 
) [inherited]

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz) [inherited]

Definition at line 73 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
void *  ptr 
) [inherited]

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz,
const char *  file,
int  line,
const char *  func 
) [inherited]

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz) [inherited]

Definition at line 91 of file OgreMemoryAllocatedObject.h.

Sets the current blend equation setting.

Parameters:
eqThe blend equation to use.
void Ogre::GLES2StateCacheManager::setBlendFunc ( GLenum  source,
GLenum  dest 
)

Sets the blending function.

Parameters:
sourceThe blend mode for the source.
destThe blend mode for the destination
void Ogre::GLES2StateCacheManager::setClearColour ( GLclampf  red,
GLclampf  green,
GLclampf  blue,
GLclampf  alpha 
)

Sets the color to clear to.

Parameters:
redThe red component.
greenThe green component.
blueThe blue component.
alphaThe alpha component.

Sets the clear depth in the range from [0..1].

Parameters:
depthThe clear depth to use.
void Ogre::GLES2StateCacheManager::setColourMask ( GLboolean  red,
GLboolean  green,
GLboolean  blue,
GLboolean  alpha 
)

Sets the current colour mask.

Parameters:
redThe red component.
greenThe green component.
blueThe blue component.
alphaThe alpha component.

Sets the face culling setting.

Parameters:
faceThe face culling mode to use.

Sets the current depth test function.

Parameters:
funcThe depth test function to use.

Sets the current depth mask setting.

Parameters:
maskThe depth mask to use.

Disables a piece of OpenGL functionality.

Parameters:
flagThe function to disable.

Sets the mask of buffers to be discarded if GL_EXT_discard_framebuffer is supported.

Parameters:
flagsThe bit mask of buffers to be discarded. Stored as Ogre::FrameBufferType.

Enables a piece of OpenGL functionality.

Parameters:
flagThe function to enable.

Sets the current polygon rendering mode.

Parameters:
modeThe polygon mode to use.

Sets the stencil mask.

Parameters:
maskThe stencil mask to use
void Ogre::GLES2StateCacheManager::setTexParameterf ( GLenum  target,
GLenum  pname,
GLfloat  param 
)

Sets a float parameter value per texture target.

Parameters:
targetThe texture target.
pnameThe parameter name.
paramsThe parameter value.
void Ogre::GLES2StateCacheManager::setTexParameteri ( GLenum  target,
GLenum  pname,
GLint  param 
)

Sets an integer parameter value per texture target.

Parameters:
targetThe texture target.
pnameThe parameter name.
paramThe parameter value.

Disables a vertex attribute.

Parameters:
attribThe attribute to disable.

Enables a vertex attribute.

Parameters:
attribThe attribute to enable.

Member Data Documentation

Definition at line 56 of file OgreGLES2StateCacheManager.h.


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

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Mon Jul 27 2020 13:41:07