13#ifndef ML_GLRESOURCE_MANAGER_H
14#define ML_GLRESOURCE_MANAGER_H
23ML_OPENGL_START_NAMESPACE
132ML_OPENGL_END_NAMESPACE
Dynamic list of GLResource objects.
Manages OpenGL resources.
std::vector< GLuint > _GLSLProgramsToFree
void detachGLSLShader(GLuint program, GLuint shader)
detach the given shader from the program (this is done later of the GL context is not currently activ...
static void init()
create singleton
GLenum getGLError() const
check for OpenGL error (returns GL_INVALID_OPERATION if there is no valid OpenGL context)
std::vector< FTFont * > _FTFontsToFree
void destroyGLSLProgram(GLuint id)
destroy the given program (destroys it later if no GL context is currently active)
std::vector< GLuint > _GLSLShadersToFree
std::vector< GLuint > _texturesToFree
bool isContextActive() const
check if the current context is ac
std::vector< GLSLProgramShaderPair > _GLSLShadersToDetach
std::vector< GLuint > _programsARBToFree
void add(GLResourceList &list, GLResource *resource)
void unlockContext(unsigned int cacheContextId)
set that the context is active
void destroyBuffer(GLuint id)
destroy the given vertex 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 addResource(GLResource *program)
add the given resource
void lockContext()
set that the context is locked
void removeResource(GLResource *program)
remove the given resource
GLResourceList _resources
std::vector< GLuint > _frameBuffersToFree
void destroyRenderBuffer(GLuint id)
destroy the given render buffer (destroys it later if no GL context is currently active)
void disableGLSLProgram()
remove currently active program
void destroyPixelBuffer(GLuint id)
destroy the given pixel buffer (destroys it later if no GL context is currently active)
virtual ~GLResourceManager()
static void cleanup()
destroy singleton
void destroyVertexBuffer(GLuint id)
destroy the given pixel buffer (destroys it later if no GL context is currently active)
void contextDestroyed()
forget about all resources, the shared context was destroyed
static GLResourceManager * self()
get singleton instance
void freeResources()
free resources that could not be destroyed earlier
void destroyFTFont(FTFont *font)
destroy the given font (destroys it 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)
unsigned int cacheContextID()
get the current cache context id
void remove(GLResourceList &list, GLResource *resource)
std::vector< GLuint > _renderBuffersToFree
unsigned int _cacheContextID
void destroyFrameBuffer(GLuint id)
destroy the given render buffer (destroys it later if no GL context is currently active)
void destroyTextures(int num, GLuint *textures)
destroy the given texture ids (destroys them later if no GL context is currently active)
std::vector< GLuint > _buffersToFree
static GLResourceManager * _self
std::pair< GLuint, GLuint > GLSLProgramShaderPair
Abstract base class for GLResources.
#define MLOPENGL_EXPORT
Macro to put all following stuff into the namespace ML_NAMESPACE to avoid collisions with symbols of ...