18 #ifndef EQUTIL_OBJECTMANAGER_H
19 #define EQUTIL_OBJECTMANAGER_H
21 #include <eq/util/types.h>
22 #include <eq/client/api.h>
28 namespace detail {
class ObjectManager; }
68 ObjectManager& operator = (
const ObjectManager& rhs );
82 EQ_API
unsigned getList(
const void* key )
const;
83 EQ_API
unsigned newList(
const void* key,
const int num = 1 );
84 EQ_API
unsigned obtainList(
const void* key,
const int num = 1 );
85 EQ_API
void deleteList(
const void* key );
87 EQ_API
unsigned getTexture(
const void* key )
const;
88 EQ_API
unsigned newTexture(
const void* key );
89 EQ_API
unsigned obtainTexture(
const void* key );
90 EQ_API
void deleteTexture(
const void* key );
92 EQ_API
bool supportsBuffers()
const;
93 EQ_API
unsigned getBuffer(
const void* key )
const;
94 EQ_API
unsigned newBuffer(
const void* key );
95 EQ_API
unsigned obtainBuffer(
const void* key );
96 EQ_API
void deleteBuffer(
const void* key );
98 EQ_API
bool supportsPrograms()
const;
99 EQ_API
unsigned getProgram(
const void* key )
const;
100 EQ_API
unsigned newProgram(
const void* key );
101 EQ_API
unsigned obtainProgram(
const void* key );
102 EQ_API
void deleteProgram(
const void* key );
104 EQ_API
bool supportsShaders()
const;
105 EQ_API
unsigned getShader(
const void* key )
const;
106 EQ_API
unsigned newShader(
const void* key,
const unsigned type );
107 EQ_API
unsigned obtainShader(
const void* key,
const unsigned type );
108 EQ_API
void deleteShader(
const void* key );
110 EQ_API
Accum* getEqAccum(
const void* key )
const;
111 EQ_API
Accum* newEqAccum(
const void* key );
112 EQ_API
Accum* obtainEqAccum(
const void* key );
113 EQ_API
void deleteEqAccum(
const void* key );
116 EQ_API lunchbox::Uploader* getEqUploader(
const void* key )
const;
118 EQ_API lunchbox::Uploader* newEqUploader(
const void* key );
120 EQ_API lunchbox::Uploader* obtainEqUploader(
const void* key );
122 EQ_API
void deleteEqUploader(
const void* key );
124 EQ_API
bool supportsEqTexture()
const;
125 EQ_API
Texture* getEqTexture(
const void* key )
const;
126 EQ_API
Texture* newEqTexture(
const void* key,
const unsigned target );
127 EQ_API
Texture* obtainEqTexture(
const void* key,
const unsigned target );
128 EQ_API
void deleteEqTexture(
const void* key );
130 EQ_API
bool supportsEqFrameBufferObject()
const;
134 EQ_API
void deleteEqFrameBufferObject(
const void* key );
136 EQ_API
bool supportsEqPixelBufferObject()
const;
139 const bool threadSafe );
141 const bool threadSafe );
142 EQ_API
void deleteEqPixelBufferObject(
const void* key );
147 EQ_API
void deleteEqBitmapFont(
const void* key );
149 EQ_API
const GLEWContext* glewGetContext()
const;
152 typedef lunchbox::RefPtr< detail::ObjectManager > SharedDataPtr;
158 #endif // EQUTIL_OBJECTMANAGER_H
A C++ class to abstract an accumulation buffer.
A C++ class to abstract OpenGL frame buffer objects.
EQ_API ObjectManager(const GLEWContext *const glewContext)
Construct a new object manager.
A C++ class to abstract OpenGL pixel buffer objects.
A wrapper around AGL, WGL and GLX bitmap fonts.
A wrapper around OpenGL textures.
EQ_API void clear()
Reset the object manager.
virtual EQ_API ~ObjectManager()
Destruct this object manager.
A facility class to manage OpenGL objects across shared contexts.
EQ_API bool isShared() const
EQ_API void deleteAll()
Delete all managed objects and associated GL objects.