Equalizer
1.6.1
|
A facility class to manage OpenGL objects across shared contexts. More...
#include <objectManager.h>
Public Types | |
enum | { INVALID = 0 } |
Public Member Functions | |
ObjectManager (const GLEWContext *const glewContext) | |
Construct a new object manager. More... | |
ObjectManager (ObjectManager *shared) | |
Construct a new object manager sharing data with another manager. More... | |
bool | isShared () const |
void | deleteAll () |
Delete all managed objects and associated GL objects. More... | |
unsigned | getList (const T &key) const |
unsigned | newList (const T &key, const int num=1) |
unsigned | obtainList (const T &key, const int num=1) |
void | deleteList (const T &key) |
unsigned | getTexture (const T &key) const |
unsigned | newTexture (const T &key) |
unsigned | obtainTexture (const T &key) |
void | deleteTexture (const T &key) |
bool | supportsBuffers () const |
unsigned | getBuffer (const T &key) const |
unsigned | newBuffer (const T &key) |
unsigned | obtainBuffer (const T &key) |
void | deleteBuffer (const T &key) |
bool | supportsPrograms () const |
unsigned | getProgram (const T &key) const |
unsigned | newProgram (const T &key) |
unsigned | obtainProgram (const T &key) |
void | deleteProgram (const T &key) |
bool | supportsShaders () const |
unsigned | getShader (const T &key) const |
unsigned | newShader (const T &key, const unsigned type) |
unsigned | obtainShader (const T &key, const unsigned type) |
void | deleteShader (const T &key) |
Accum * | getEqAccum (const T &key) const |
Accum * | newEqAccum (const T &key) |
Accum * | obtainEqAccum (const T &key) |
void | deleteEqAccum (const T &key) |
lunchbox::Uploader * | getEqUploader (const T &key) const |
lunchbox::Uploader * | newEqUploader (const T &key) |
lunchbox::Uploader * | obtainEqUploader (const T &key) |
void | deleteEqUploader (const T &key) |
bool | supportsEqTexture () const |
Texture * | getEqTexture (const T &key) const |
Texture * | newEqTexture (const T &key, const unsigned target) |
Texture * | obtainEqTexture (const T &key, const unsigned target) |
void | deleteEqTexture (const T &key) |
bool | supportsEqFrameBufferObject () const |
FrameBufferObject * | getEqFrameBufferObject (const T &key) const |
FrameBufferObject * | newEqFrameBufferObject (const T &key) |
FrameBufferObject * | obtainEqFrameBufferObject (const T &key) |
void | deleteEqFrameBufferObject (const T &key) |
bool | supportsEqPixelBufferObject () const |
PixelBufferObject * | getEqPixelBufferObject (const T &key) const |
PixelBufferObject * | newEqPixelBufferObject (const T &key, const bool threadSafe) |
PixelBufferObject * | obtainEqPixelBufferObject (const T &key, const bool threadSafe) |
void | deleteEqPixelBufferObject (const T &key) |
util::BitmapFont< T > * | getEqBitmapFont (const T &key) const |
util::BitmapFont< T > * | newEqBitmapFont (const T &key) |
util::BitmapFont< T > * | obtainEqBitmapFont (const T &key) |
void | deleteEqBitmapFont (const T &key) |
const GLEWContext * | glewGetContext () const |
A facility class to manage OpenGL objects across shared contexts.
The object manager implements object sharing in the same way as OpenGL. During creation, a shared object manager may be given, causing the two (or more) object managers to allocate objects from the same namespace. The last object manager will delete all data allocated on the host. OpenGL objects have to be explictly deleted using deleteAll() to ensure an OpenGL context is still current during destruction.
For each type of OpenGL object supported the following methods are available:
Definition at line 217 of file eq/client/types.h.
eq::util::ObjectManager< class >::ObjectManager | ( | const GLEWContext *const | glewContext | ) |
Construct a new object manager.
eq::util::ObjectManager< class >::ObjectManager | ( | ObjectManager< class > * | shared | ) |
Construct a new object manager sharing data with another manager.
void eq::util::ObjectManager< class >::deleteAll | ( | ) |
Delete all managed objects and associated GL objects.
Requires current GL context.
Referenced by eqAsync::AsyncFetcher::run().
|
inline |
Definition at line 75 of file objectManager.h.