Equalizer
1.4.1
|
A C++ class to abstract OpenGL pixel buffer objects. More...
#include <pixelBufferObject.h>
Public Member Functions | |
PixelBufferObject (const GLEWContext *glewContext, const bool threadSafe) | |
Construct a new pixel buffer object. | |
virtual | ~PixelBufferObject () |
Destruct the pixel buffer object. | |
virtual bool | setup (const size_t size, const unsigned type) |
Initialize the pixel buffer object. | |
virtual void | destroy () |
Unbind and de-initialize the pixel buffer object. | |
virtual const void * | mapRead () const |
Bind the PBO and map its data for reading. | |
virtual void * | mapWrite () |
Bind the PBO and map its data for writing. | |
virtual void | unmap () const |
Unmap and unbind the PBO. | |
virtual bool | bind () const |
Bind the PBO. | |
virtual void | unbind () const |
Unbind the PBO. | |
size_t | getSize () const |
const co::Error & | getError () const |
bool | isInitialized () const |
bool | isThreadSafe () const |
unsigned | getID () const |
A C++ class to abstract OpenGL pixel buffer objects.
If multiple PBOs of the same read/write type are used in the same glContext they should be bound/mapped and unbound/unmapped sequentially.
If thread-safe mode is used, buffer binding and mapping is locked until the corresponding unbind/unmap happened.
On correct PBO usage see: http://www.songho.ca/opengl/gl_pbo.html
Definition at line 43 of file pixelBufferObject.h.
eq::util::PixelBufferObject::PixelBufferObject | ( | const GLEWContext * | glewContext, |
const bool | threadSafe | ||
) |
Construct a new pixel buffer object.
glewContext | the OpenGL function table. |
threadSafe | true if PBO shall use locks to synchronize access. |
virtual bool eq::util::PixelBufferObject::bind | ( | ) | const [virtual] |
Bind the PBO.
virtual void eq::util::PixelBufferObject::destroy | ( | ) | [virtual] |
Unbind and de-initialize the pixel buffer object.
const co::Error& eq::util::PixelBufferObject::getError | ( | ) | const |
unsigned eq::util::PixelBufferObject::getID | ( | ) | const |
size_t eq::util::PixelBufferObject::getSize | ( | ) | const |
bool eq::util::PixelBufferObject::isInitialized | ( | ) | const |
bool eq::util::PixelBufferObject::isThreadSafe | ( | ) | const |
virtual const void* eq::util::PixelBufferObject::mapRead | ( | ) | const [virtual] |
Bind the PBO and map its data for reading.
virtual void* eq::util::PixelBufferObject::mapWrite | ( | ) | [virtual] |
Bind the PBO and map its data for writing.
virtual bool eq::util::PixelBufferObject::setup | ( | const size_t | size, |
const unsigned | type | ||
) | [virtual] |
Initialize the pixel buffer object.
The PBO is bound after a successful operation.
size | total number of bytes (not 0) |
type | the access type: GL_READ_ONLY_ARB or GL_WRITE_ONLY_ARB |
virtual void eq::util::PixelBufferObject::unbind | ( | ) | const [virtual] |
Unbind the PBO.
virtual void eq::util::PixelBufferObject::unmap | ( | ) | const [virtual] |
Unmap and unbind the PBO.