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
 check if the current context is ac
 
void destroyTextures (int num, GLuint *textures)
 destroy the given texture ids (destroys them later if no GL context is currently active)
 
void destroyFragmentProgramARB (GLuint program)
 destroy the given fragment program id (destroys it later if no GL context is currently active)
 
void destroyRenderBuffer (GLuint id)
 destroy the given render buffer (destroys it later if no GL context is currently active)
 
void destroyFrameBuffer (GLuint id)
 destroy the given render buffer (destroys it later if no GL context is currently active)
 
void destroyBuffer (GLuint id)
 destroy the given vertex buffer (destroys it later if no GL context is currently active)
 
void destroyPixelBuffer (GLuint id)
 destroy the given pixel buffer (destroys it later if no GL context is currently active)
 
void destroyVertexBuffer (GLuint id)
 destroy the given pixel buffer (destroys it later if no GL context is currently active)
 
void destroyGLSLShader (GLuint id)
 destroy the given shader (destroys it later if no GL context is currently active)
 
void destroyGLSLProgram (GLuint id)
 destroy the given program (destroys it later if no GL context is currently active)
 
void destroyFTFont (FTFont *font)
 destroy the given font (destroys it later if no GL context is currently active)
 
void detachGLSLShader (GLuint program, GLuint shader)
 detach the given shader from the program (this is done later of the GL context is not currently active)
 
void disableGLSLProgram ()
 remove currently active program
 
void unlockContext (unsigned int cacheContextId)
 set that the context is active
 
void lockContext ()
 set that the context is locked
 
unsigned int cacheContextID ()
 get the current cache context id
 
GLenum getGLError () const
 check for OpenGL error (returns GL_INVALID_OPERATION if there is no valid OpenGL context)
 

Static Public Member Functions

static void init ()
 create singleton
 
static void cleanup ()
 destroy singleton
 
static GLResourceManagerself ()
 get singleton instance
 

Protected Types

typedef std::pair< GLuint, GLuint > GLSLProgramShaderPair
 

Protected Member Functions

void addResource (GLResource *program)
 add the given resource
 
void removeResource (GLResource *program)
 remove the given resource
 
void contextDestroyed ()
 forget about all resources, the shared context was destroyed
 
void freeResources ()
 free 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

add the given resource

◆ cacheContextID()

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

get the current cache context id

Definition at line 80 of file mlGLResourceManager.h.

◆ cleanup()

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

destroy singleton

◆ contextDestroyed()

void ml::GLResourceManager::contextDestroyed ( )
protected

forget about all resources, the shared context was destroyed

◆ destroyBuffer()

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

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

◆ destroyFragmentProgramARB()

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

destroy the given fragment program id (destroys it later if no GL context is currently active)

◆ destroyFrameBuffer()

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

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

◆ destroyFTFont()

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

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

◆ destroyGLSLProgram()

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

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

◆ destroyGLSLShader()

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

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

◆ destroyPixelBuffer()

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

destroy 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)

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

◆ destroyTextures()

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

destroy the given texture ids (destroys them later if no GL context is currently active)

◆ destroyVertexBuffer()

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

destroy 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 )

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

◆ disableGLSLProgram()

void ml::GLResourceManager::disableGLSLProgram ( )

remove currently active program

◆ freeResources()

void ml::GLResourceManager::freeResources ( )
protected

free resources that could not be destroyed earlier

◆ getGLError()

GLenum ml::GLResourceManager::getGLError ( ) const

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

◆ init()

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

create singleton

◆ isContextActive()

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

check if the current context is ac

Definition at line 44 of file mlGLResourceManager.h.

◆ lockContext()

void ml::GLResourceManager::lockContext ( )

set that the context is locked

◆ remove()

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

◆ removeResource()

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

remove the given resource

◆ self()

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

get singleton instance

Definition at line 41 of file mlGLResourceManager.h.

◆ unlockContext()

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

set 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: