19 #ifndef EQUTIL_PIXELBUFFEROBJECT_H
20 #define EQUTIL_PIXELBUFFEROBJECT_H
22 #include <lunchbox/lock.h>
32 namespace detail {
class PixelBufferObject; }
55 const bool threadSafe );
70 EQ_API
virtual Error
setup(
const size_t size,
const unsigned type );
81 EQ_API
virtual const void*
mapRead()
const;
97 EQ_API
virtual void unmap()
const;
100 EQ_API
virtual bool bind()
const;
103 EQ_API
virtual void unbind()
const;
115 unsigned getID()
const;
119 PixelBufferObject& operator=(
const PixelBufferObject& ) =
delete;
120 detail::PixelBufferObject*
const _impl;
125 #endif // EQUTIL_PIXELBUFFEROBJECT_H
virtual EQ_API Error setup(const size_t size, const unsigned type)
Initialize the pixel buffer object.
EQ_API size_t getSize() const
A C++ class to abstract OpenGL pixel buffer objects.
EQ_API bool isThreadSafe() const
virtual EQ_API void * mapWrite()
Bind the PBO and map its data for writing.
virtual EQ_API void unbind() const
Unbind the PBO.
EQ_API PixelBufferObject(const GLEWContext *glewContext, const bool threadSafe)
Construct a new pixel buffer object.
virtual EQ_API bool bind() const
Bind the PBO.
EQ_API bool isInitialized() const
virtual EQ_API const void * mapRead() const
Bind the PBO and map its data for reading.
virtual EQ_API ~PixelBufferObject()
Destruct the pixel buffer object.
virtual EQ_API void unmap() const
Unmap and unbind the PBO.
virtual EQ_API void destroy()
Unbind and de-initialize the pixel buffer object.