Equalizer  1.4.1
Classes | Public Member Functions | Public Types
eq::util::ObjectManager< T > Class Template Reference

A facility class to manage OpenGL objects across shared contexts. More...

#include <objectManager.h>

+ Inheritance diagram for eq::util::ObjectManager< T >:
+ Collaboration diagram for eq::util::ObjectManager< T >:

List of all members.

Classes

struct  Object
struct  SharedData

Public Member Functions

 ObjectManager (const GLEWContext *const glewContext)
 Construct a new object manager.
 ObjectManager (ObjectManager *shared)
 Construct a new object manager sharing data with another manager.
bool isShared () const
void deleteAll ()
 Delete all managed objects and associated GL objects.
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)
AccumgetEqAccum (const T &key) const
AccumnewEqAccum (const T &key)
AccumobtainEqAccum (const T &key)
void deleteEqAccum (const T &key)
bool supportsEqTexture () const
TexturegetEqTexture (const T &key) const
TexturenewEqTexture (const T &key, const unsigned target)
TextureobtainEqTexture (const T &key, const unsigned target)
void deleteEqTexture (const T &key)
bool supportsEqFrameBufferObject () const
FrameBufferObjectgetEqFrameBufferObject (const T &key) const
FrameBufferObjectnewEqFrameBufferObject (const T &key)
FrameBufferObjectobtainEqFrameBufferObject (const T &key)
void deleteEqFrameBufferObject (const T &key)
bool supportsEqPixelBufferObject () const
PixelBufferObjectgetEqPixelBufferObject (const T &key) const
PixelBufferObjectnewEqPixelBufferObject (const T &key, const bool threadSafe)
PixelBufferObjectobtainEqPixelBufferObject (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

Public Types

enum  { INVALID = 0 }

Detailed Description

template<class T>
class eq::util::ObjectManager< T >

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:

See also:
http://www.equalizergraphics.com/documents/design/objectManager.html

Definition at line 58 of file objectManager.h.


Constructor & Destructor Documentation

template<class T>
eq::util::ObjectManager< T >::ObjectManager ( const GLEWContext *const  glewContext)

Construct a new object manager.

template<class T>
eq::util::ObjectManager< T >::ObjectManager ( ObjectManager< T > *  shared)

Construct a new object manager sharing data with another manager.


Member Function Documentation

template<class T>
void eq::util::ObjectManager< T >::deleteAll ( )

Delete all managed objects and associated GL objects.

Requires current GL context.

template<class T>
bool eq::util::ObjectManager< T >::isShared ( ) const [inline]
Returns:
true if more than one OM is using the same data.

Definition at line 75 of file objectManager.h.


The documentation for this class was generated from the following file:
Generated on Mon Nov 26 2012 14:41:51 for Equalizer 1.4.1 by  doxygen 1.7.6.1