MeVisLab Resolution Independence API
ml::GLResourceManager Class Reference

Manages OpenGL resources. More...

#include <mlGLResourceManager.h>

Classes

class  GLResourceList
 Dynamic list of GLResource objects. More...
 

Public Member Functions

 GLResourceManager ()
 
virtual ~GLResourceManager ()
 
bool isContextActive () const
 Checks whether the current context is active.
 
void destroyTextures (int num, GLuint *textures)
 Destroys the given texture IDs (destroys them later if no GL context is currently active).
 
void destroyFragmentProgramARB (GLuint program)
 Destroys the given fragment program ID (destroys it later if no GL context is currently active).
 
void destroyRenderBuffer (GLuint id)
 Destroys the given render buffer (destroys it later if no GL context is currently active).
 
void destroyFrameBuffer (GLuint id)
 Destroys the given render buffer (destroys it later if no GL context is currently active).
 
void destroyBuffer (GLuint id)
 Destroys the given vertex buffer (destroys it later if no GL context is currently active).
 
void destroyPixelBuffer (GLuint id)
 Destroys the given pixel buffer (destroys it later if no GL context is currently active).
 
void destroyVertexBuffer (GLuint id)
 Destroys the given pixel buffer (destroys it later if no GL context is currently active).
 
void destroyGLSLShader (GLuint id)
 Destroys the given shader (destroys it later if no GL context is currently active).
 
void destroyGLSLProgram (GLuint id)
 Destroys the given program (destroys it later if no GL context is currently active).
 
void destroyFTFont (FTFont *font)
 Destroys the given font (destroys it later if no GL context is currently active).
 
void detachGLSLShader (GLuint program, GLuint shader)
 Detaches the given shader from the program (this is done later of the GL context is not currently active).
 
void disableGLSLProgram ()
 Removes currently active program.
 
void unlockContext (unsigned int cacheContextId)
 Sets that the context is active.
 
void lockContext ()
 Sets that the context is locked.
 
unsigned int cacheContextID ()
 Returns the current cache context ID.
 
GLenum getGLError () const
 Checks for OpenGL error (returns GL_INVALID_OPERATION if there is no valid OpenGL context).
 

Static Public Member Functions

static void init ()
 Creates singleton.
 
static void cleanup ()
 Destroys singleton.
 
static GLResourceManagerself ()
 Returns singleton instance.
 

Protected Types

typedef std::pair< GLuint, GLuint > GLSLProgramShaderPair
 

Protected Member Functions

void addResource (GLResource *program)
 Adds the given resource.
 
void removeResource (GLResource *program)
 Removes the given resource.
 
void contextDestroyed ()
 Forgets about all resources; the shared context was destroyed.
 
void freeResources ()
 Frees resources that could not be destroyed earlier.
 
void add (GLResourceList &list, GLResource *resource)
 
void remove (GLResourceList &list, GLResource *resource)
 

Protected Attributes

bool _contextLocked
 
unsigned int _cacheContextID
 
GLResourceList _resources
 
std::vector< GLuint > _texturesToFree
 
std::vector< GLuint > _programsARBToFree
 
std::vector< GLuint > _frameBuffersToFree
 
std::vector< GLuint > _renderBuffersToFree
 
std::vector< GLuint > _buffersToFree
 
std::vector< GLuint > _GLSLProgramsToFree
 
std::vector< GLuint > _GLSLShadersToFree
 
std::vector< GLSLProgramShaderPair_GLSLShadersToDetach
 
std::vector< FTFont * > _FTFontsToFree
 

Static Protected Attributes

static GLResourceManager_self
 

Friends

class GLResource
 

Detailed Description

Manages OpenGL resources.

Definition at line 28 of file mlGLResourceManager.h.

Member Typedef Documentation

◆ GLSLProgramShaderPair

typedef std::pair<GLuint, GLuint> ml::GLResourceManager::GLSLProgramShaderPair
protected

Definition at line 117 of file mlGLResourceManager.h.

Constructor & Destructor Documentation

◆ GLResourceManager()

ml::GLResourceManager::GLResourceManager ( )

◆ ~GLResourceManager()

virtual ml::GLResourceManager::~GLResourceManager ( )
virtual

Member Function Documentation

◆ add()

void ml::GLResourceManager::add ( GLResourceList & list,
GLResource * resource )
protected

◆ addResource()

void ml::GLResourceManager::addResource ( GLResource * program)
protected

Adds the given resource.

◆ cacheContextID()

unsigned int ml::GLResourceManager::cacheContextID ( )
inline

Returns the current cache context ID.

Definition at line 80 of file mlGLResourceManager.h.

◆ cleanup()

static void ml::GLResourceManager::cleanup ( )
static

Destroys singleton.

◆ contextDestroyed()

void ml::GLResourceManager::contextDestroyed ( )
protected

Forgets about all resources; the shared context was destroyed.

◆ destroyBuffer()

void ml::GLResourceManager::destroyBuffer ( GLuint id)

Destroys the given vertex buffer (destroys it later if no GL context is currently active).

◆ destroyFragmentProgramARB()

void ml::GLResourceManager::destroyFragmentProgramARB ( GLuint program)

Destroys the given fragment program ID (destroys it later if no GL context is currently active).

◆ destroyFrameBuffer()

void ml::GLResourceManager::destroyFrameBuffer ( GLuint id)

Destroys the given render buffer (destroys it later if no GL context is currently active).

◆ destroyFTFont()

void ml::GLResourceManager::destroyFTFont ( FTFont * font)

Destroys the given font (destroys it later if no GL context is currently active).

◆ destroyGLSLProgram()

void ml::GLResourceManager::destroyGLSLProgram ( GLuint id)

Destroys the given program (destroys it later if no GL context is currently active).

◆ destroyGLSLShader()

void ml::GLResourceManager::destroyGLSLShader ( GLuint id)

Destroys the given shader (destroys it later if no GL context is currently active).

◆ destroyPixelBuffer()

void ml::GLResourceManager::destroyPixelBuffer ( GLuint id)
inline

Destroys the given pixel buffer (destroys it later if no GL context is currently active).

Definition at line 57 of file mlGLResourceManager.h.

◆ destroyRenderBuffer()

void ml::GLResourceManager::destroyRenderBuffer ( GLuint id)

Destroys the given render buffer (destroys it later if no GL context is currently active).

◆ destroyTextures()

void ml::GLResourceManager::destroyTextures ( int num,
GLuint * textures )

Destroys the given texture IDs (destroys them later if no GL context is currently active).

◆ destroyVertexBuffer()

void ml::GLResourceManager::destroyVertexBuffer ( GLuint id)
inline

Destroys the given pixel buffer (destroys it later if no GL context is currently active).

Definition at line 59 of file mlGLResourceManager.h.

◆ detachGLSLShader()

void ml::GLResourceManager::detachGLSLShader ( GLuint program,
GLuint shader )

Detaches the given shader from the program (this is done later of the GL context is not currently active).

◆ disableGLSLProgram()

void ml::GLResourceManager::disableGLSLProgram ( )

Removes currently active program.

◆ freeResources()

void ml::GLResourceManager::freeResources ( )
protected

Frees resources that could not be destroyed earlier.

◆ getGLError()

GLenum ml::GLResourceManager::getGLError ( ) const

Checks for OpenGL error (returns GL_INVALID_OPERATION if there is no valid OpenGL context).

◆ init()

static void ml::GLResourceManager::init ( )
static

Creates singleton.

◆ isContextActive()

bool ml::GLResourceManager::isContextActive ( ) const
inline

Checks whether the current context is active.

Definition at line 44 of file mlGLResourceManager.h.

◆ lockContext()

void ml::GLResourceManager::lockContext ( )

Sets that the context is locked.

◆ remove()

void ml::GLResourceManager::remove ( GLResourceList & list,
GLResource * resource )
protected

◆ removeResource()

void ml::GLResourceManager::removeResource ( GLResource * program)
protected

Removes the given resource.

◆ self()

static GLResourceManager * ml::GLResourceManager::self ( )
inlinestatic

Returns singleton instance.

Definition at line 41 of file mlGLResourceManager.h.

◆ unlockContext()

void ml::GLResourceManager::unlockContext ( unsigned int cacheContextId)

Sets that the context is active.

Friends And Related Symbol Documentation

◆ GLResource

friend class GLResource
friend

Definition at line 110 of file mlGLResourceManager.h.

Member Data Documentation

◆ _buffersToFree

std::vector<GLuint> ml::GLResourceManager::_buffersToFree
protected

Definition at line 123 of file mlGLResourceManager.h.

◆ _cacheContextID

unsigned int ml::GLResourceManager::_cacheContextID
protected

Definition at line 113 of file mlGLResourceManager.h.

◆ _contextLocked

bool ml::GLResourceManager::_contextLocked
protected

Definition at line 112 of file mlGLResourceManager.h.

◆ _frameBuffersToFree

std::vector<GLuint> ml::GLResourceManager::_frameBuffersToFree
protected

Definition at line 121 of file mlGLResourceManager.h.

◆ _FTFontsToFree

std::vector<FTFont*> ml::GLResourceManager::_FTFontsToFree
protected

Definition at line 127 of file mlGLResourceManager.h.

◆ _GLSLProgramsToFree

std::vector<GLuint> ml::GLResourceManager::_GLSLProgramsToFree
protected

Definition at line 124 of file mlGLResourceManager.h.

◆ _GLSLShadersToDetach

std::vector<GLSLProgramShaderPair> ml::GLResourceManager::_GLSLShadersToDetach
protected

Definition at line 126 of file mlGLResourceManager.h.

◆ _GLSLShadersToFree

std::vector<GLuint> ml::GLResourceManager::_GLSLShadersToFree
protected

Definition at line 125 of file mlGLResourceManager.h.

◆ _programsARBToFree

std::vector<GLuint> ml::GLResourceManager::_programsARBToFree
protected

Definition at line 120 of file mlGLResourceManager.h.

◆ _renderBuffersToFree

std::vector<GLuint> ml::GLResourceManager::_renderBuffersToFree
protected

Definition at line 122 of file mlGLResourceManager.h.

◆ _resources

GLResourceList ml::GLResourceManager::_resources
protected

Definition at line 115 of file mlGLResourceManager.h.

◆ _self

GLResourceManager* ml::GLResourceManager::_self
staticprotected

Definition at line 129 of file mlGLResourceManager.h.

◆ _texturesToFree

std::vector<GLuint> ml::GLResourceManager::_texturesToFree
protected

Definition at line 119 of file mlGLResourceManager.h.


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