19 #ifndef EQUTIL_OBJECTMANAGER_H
20 #define EQUTIL_OBJECTMANAGER_H
22 #include <eq/util/types.h>
29 namespace detail {
class ObjectManager; }
61 EQ_API
explicit ObjectManager(
const GLEWContext*
const glewContext );
69 ObjectManager& operator = (
const ObjectManager& rhs );
83 EQ_API
unsigned getList(
const void* key )
const;
84 EQ_API
unsigned newList(
const void* key,
const int num = 1 );
85 EQ_API
unsigned obtainList(
const void* key,
const int num = 1 );
86 EQ_API
void deleteList(
const void* key );
88 EQ_API
unsigned getVertexArray(
const void* key )
const;
89 EQ_API
unsigned newVertexArray(
const void* key );
90 EQ_API
unsigned obtainVertexArray(
const void* key );
91 EQ_API
void deleteVertexArray(
const void* key );
93 EQ_API
unsigned getTexture(
const void* key )
const;
94 EQ_API
unsigned newTexture(
const void* key );
95 EQ_API
unsigned obtainTexture(
const void* key );
96 EQ_API
void deleteTexture(
const void* key );
98 EQ_API
bool supportsBuffers()
const;
99 EQ_API
unsigned getBuffer(
const void* key )
const;
100 EQ_API
unsigned newBuffer(
const void* key );
101 EQ_API
unsigned obtainBuffer(
const void* key );
102 EQ_API
void deleteBuffer(
const void* key );
104 EQ_API
bool supportsPrograms()
const;
105 EQ_API
unsigned getProgram(
const void* key )
const;
106 EQ_API
unsigned newProgram(
const void* key );
107 EQ_API
unsigned obtainProgram(
const void* key );
108 EQ_API
void deleteProgram(
const void* key );
110 EQ_API
bool supportsShaders()
const;
111 EQ_API
unsigned getShader(
const void* key )
const;
112 EQ_API
unsigned newShader(
const void* key,
const unsigned type );
113 EQ_API
unsigned obtainShader(
const void* key,
const unsigned type );
114 EQ_API
void deleteShader(
const void* key );
116 EQ_API
Accum* getEqAccum(
const void* key )
const;
117 EQ_API
Accum* newEqAccum(
const void* key );
118 EQ_API
Accum* obtainEqAccum(
const void* key );
119 EQ_API
void deleteEqAccum(
const void* key );
122 EQ_API pression::Uploader* getEqUploader(
const void* key )
const;
124 EQ_API pression::Uploader* newEqUploader(
const void* key );
126 EQ_API pression::Uploader* obtainEqUploader(
const void* key );
128 EQ_API
void deleteEqUploader(
const void* key );
130 EQ_API
bool supportsEqTexture()
const;
131 EQ_API
Texture* getEqTexture(
const void* key )
const;
132 EQ_API
Texture* newEqTexture(
const void* key,
const unsigned target );
133 EQ_API
Texture* obtainEqTexture(
const void* key,
const unsigned target );
134 EQ_API
void deleteEqTexture(
const void* key );
136 EQ_API
bool supportsEqFrameBufferObject()
const;
140 EQ_API
void deleteEqFrameBufferObject(
const void* key );
142 EQ_API
bool supportsEqPixelBufferObject()
const;
145 const bool threadSafe );
147 const bool threadSafe );
148 EQ_API
void deleteEqPixelBufferObject(
const void* key );
153 EQ_API
void deleteEqBitmapFont(
const void* key );
155 EQ_API
const GLEWContext* glewGetContext()
const;
158 typedef lunchbox::RefPtr< detail::ObjectManager > SharedDataPtr;
164 #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.