Equalizer  1.4.1
Public Member Functions
eq::util::PixelBufferObject Class Reference

A C++ class to abstract OpenGL pixel buffer objects. More...

#include <pixelBufferObject.h>

List of all members.

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::ErrorgetError () const
bool isInitialized () const
bool isThreadSafe () const
unsigned getID () const

Detailed Description

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.


Constructor & Destructor Documentation

eq::util::PixelBufferObject::PixelBufferObject ( const GLEWContext *  glewContext,
const bool  threadSafe 
)

Construct a new pixel buffer object.

Parameters:
glewContextthe OpenGL function table.
threadSafetrue if PBO shall use locks to synchronize access.
Version:
1.3

Member Function Documentation

virtual bool eq::util::PixelBufferObject::bind ( ) const [virtual]

Bind the PBO.

Version:
1.3
virtual void eq::util::PixelBufferObject::destroy ( ) [virtual]

Unbind and de-initialize the pixel buffer object.

Version:
1.3
Returns:
the reason for the last failed operation.
Version:
1.3
Returns:
OpenGL ID
Version:
1.3.2
Returns:
the allocated size of the PBO.
Version:
1.3
Returns:
true if the pbo is intialized.
Version:
1.3
Returns:
true if the access to pbo is blocking.
Version:
1.3
virtual const void* eq::util::PixelBufferObject::mapRead ( ) const [virtual]

Bind the PBO and map its data for reading.

Returns:
pointer to the PBO memory
Version:
1.3
virtual void* eq::util::PixelBufferObject::mapWrite ( ) [virtual]

Bind the PBO and map its data for writing.

Returns:
pointer to the PBO memory
Version:
1.3
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.

Parameters:
sizetotal number of bytes (not 0)
typethe access type: GL_READ_ONLY_ARB or GL_WRITE_ONLY_ARB
Returns:
true on success, false otherwise
Version:
1.3
virtual void eq::util::PixelBufferObject::unbind ( ) const [virtual]

Unbind the PBO.

Version:
1.3
virtual void eq::util::PixelBufferObject::unmap ( ) const [virtual]

Unmap and unbind the PBO.

Returns:
pointer to the PBO memory
Version:
1.3

The documentation for this class was generated from the following file:
Generated on Mon Nov 26 2012 14:41:51 for Equalizer 1.4.1 by  doxygen 1.7.6.1