19 #ifndef EQUTIL_OBJECTMANAGER_H 20 #define EQUTIL_OBJECTMANAGER_H 22 #include <eq/util/types.h> 24 #include <pression/types.h> 30 namespace detail {
class ObjectManager; }
62 EQ_API
explicit ObjectManager(
const GLEWContext*
const glewContext );
65 EQ_API ObjectManager(
const ObjectManager& shared );
68 EQ_API
virtual ~ObjectManager();
70 ObjectManager& operator = (
const ObjectManager& rhs );
73 EQ_API
bool isShared()
const;
82 EQ_API
void deleteAll();
84 EQ_API
unsigned getList(
const void* key )
const;
85 EQ_API
unsigned newList(
const void* key,
const int num = 1 );
86 EQ_API
unsigned obtainList(
const void* key,
const int num = 1 );
87 EQ_API
void deleteList(
const void* key );
89 EQ_API
unsigned getVertexArray(
const void* key )
const;
90 EQ_API
unsigned newVertexArray(
const void* key );
91 EQ_API
unsigned obtainVertexArray(
const void* key );
92 EQ_API
void deleteVertexArray(
const void* key );
94 EQ_API
unsigned getTexture(
const void* key )
const;
95 EQ_API
unsigned newTexture(
const void* key );
96 EQ_API
unsigned obtainTexture(
const void* key );
97 EQ_API
void deleteTexture(
const void* key );
99 EQ_API
bool supportsBuffers()
const;
100 EQ_API
unsigned getBuffer(
const void* key )
const;
101 EQ_API
unsigned newBuffer(
const void* key );
102 EQ_API
unsigned obtainBuffer(
const void* key );
103 EQ_API
void deleteBuffer(
const void* key );
105 EQ_API
bool supportsPrograms()
const;
106 EQ_API
unsigned getProgram(
const void* key )
const;
107 EQ_API
unsigned newProgram(
const void* key );
108 EQ_API
unsigned obtainProgram(
const void* key );
109 EQ_API
void deleteProgram(
const void* key );
111 EQ_API
bool supportsShaders()
const;
112 EQ_API
unsigned getShader(
const void* key )
const;
113 EQ_API
unsigned newShader(
const void* key,
const unsigned type );
114 EQ_API
unsigned obtainShader(
const void* key,
const unsigned type );
115 EQ_API
void deleteShader(
const void* key );
117 EQ_API
Accum* getEqAccum(
const void* key )
const;
118 EQ_API
Accum* newEqAccum(
const void* key );
119 EQ_API
Accum* obtainEqAccum(
const void* key );
120 EQ_API
void deleteEqAccum(
const void* key );
123 EQ_API pression::Uploader* getEqUploader(
const void* key )
const;
125 EQ_API pression::Uploader* newEqUploader(
const void* key );
127 EQ_API pression::Uploader* obtainEqUploader(
const void* key );
129 EQ_API
void deleteEqUploader(
const void* key );
131 EQ_API
bool supportsEqTexture()
const;
132 EQ_API
Texture* getEqTexture(
const void* key )
const;
133 EQ_API
Texture* newEqTexture(
const void* key,
const unsigned target );
134 EQ_API
Texture* obtainEqTexture(
const void* key,
const unsigned target );
135 EQ_API
void deleteEqTexture(
const void* key );
137 EQ_API
bool supportsEqFrameBufferObject()
const;
141 EQ_API
void deleteEqFrameBufferObject(
const void* key );
143 EQ_API
bool supportsEqPixelBufferObject()
const;
146 const bool threadSafe );
148 const bool threadSafe );
149 EQ_API
void deleteEqPixelBufferObject(
const void* key );
154 EQ_API
void deleteEqBitmapFont(
const void* key );
156 EQ_API
const GLEWContext* glewGetContext()
const;
159 typedef lunchbox::RefPtr< detail::ObjectManager > SharedDataPtr;
165 #endif // EQUTIL_OBJECTMANAGER_H A C++ class to abstract an accumulation buffer.
A C++ class to abstract OpenGL frame buffer objects.
A C++ class to abstract OpenGL pixel buffer objects.
A wrapper around AGL, WGL and GLX bitmap fonts.
A wrapper around OpenGL textures.
The Equalizer client library.
A facility class to manage OpenGL objects across shared contexts.