Equalizer  1.13.0
Parallel Rendering Framework
eq::util::FrameBufferObject Class Reference

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

#include <frameBufferObject.h>

+ Inheritance diagram for eq::util::FrameBufferObject:
+ Collaboration diagram for eq::util::FrameBufferObject:

Public Member Functions

EQ_API FrameBufferObject (const GLEWContext *const glewContext, const unsigned textureTarget=0x84F5)
 Construct a new Frame Buffer Object. More...
 
EQ_API ~FrameBufferObject ()
 Destruct the Frame Buffer Object. More...
 
EQ_API bool addColorTexture ()
 Add one color texture to the FBO. More...
 
EQ_API Error init (const int32_t width, const int32_t height, const unsigned colorFormat, const int32_t depthSize, const int32_t stencilSize, const int32_t samplesSize=1)
 Initialize the Frame Buffer Object. More...
 
EQ_API void exit ()
 De-initialize the Frame Buffer Object. More...
 
EQ_API void bind (const uint32_t target=0x8D40)
 Bind to the Frame Buffer Object. More...
 
EQ_API void unbind (const uint32_t target=0x8D40)
 Unbind any Frame Buffer Object and use the default drawable for the current context. More...
 
EQ_API Error resize (const int32_t width, const int32_t height)
 Resize the FBO. More...
 
int32_t getWidth () const
 
int32_t getHeight () const
 
const TexturesgetColorTextures () const
 
const TexturegetDepthTexture () const
 
const GLEWContext * glewGetContext () const
 
bool isValid () const
 

Detailed Description

A C++ class to abstract OpenGL frame buffer objects.

Definition at line 33 of file frameBufferObject.h.

Constructor & Destructor Documentation

EQ_API eq::util::FrameBufferObject::FrameBufferObject ( const GLEWContext *const  glewContext,
const unsigned  textureTarget = 0x84F5 
)

Construct a new Frame Buffer Object.

The first color texture is automatically created.

Version
1.0
EQ_API eq::util::FrameBufferObject::~FrameBufferObject ( )

Destruct the Frame Buffer Object.

Version
1.0

Member Function Documentation

EQ_API bool eq::util::FrameBufferObject::addColorTexture ( )

Add one color texture to the FBO.

The maximum number of textures per FBO is 16. Added color textures will have the same format as the existing texture(s). This method has to be called on an uninitialized FBO.

Returns
false if color texture can't be added, otherwise true.
Version
1.0
EQ_API void eq::util::FrameBufferObject::bind ( const uint32_t  target = 0x8D40)

Bind to the Frame Buffer Object.

The FBO becomes the read and/or draw buffer of the current context, depending on the given target.

Parameters
targetthe framebuffer target to bind, default read and draw
Version
1.0
EQ_API void eq::util::FrameBufferObject::exit ( )

De-initialize the Frame Buffer Object.

Version
1.0
const Textures& eq::util::FrameBufferObject::getColorTextures ( ) const
inline
Returns
the vector of color textures.
Version
1.0

Definition at line 122 of file frameBufferObject.h.

const Texture& eq::util::FrameBufferObject::getDepthTexture ( ) const
inline
Returns
the depth texture.
Version
1.0

Definition at line 125 of file frameBufferObject.h.

int32_t eq::util::FrameBufferObject::getHeight ( ) const
inline
Returns
the current height.
Version
1.0

Definition at line 118 of file frameBufferObject.h.

int32_t eq::util::FrameBufferObject::getWidth ( ) const
inline
Returns
the current width.
Version
1.0

Definition at line 114 of file frameBufferObject.h.

const GLEWContext* eq::util::FrameBufferObject::glewGetContext ( ) const
inline
Returns
the GLEW context.
Version
1.0

Definition at line 128 of file frameBufferObject.h.

EQ_API Error eq::util::FrameBufferObject::init ( const int32_t  width,
const int32_t  height,
const unsigned  colorFormat,
const int32_t  depthSize,
const int32_t  stencilSize,
const int32_t  samplesSize = 1 
)

Initialize the Frame Buffer Object.

On successful initialization, the FBO is bound.

Parameters
widththe initial width of the rendering buffer.
heightthe initial height of the rendering buffer.
colorFormatThe internal color texture format, e.g., GL_RGBA.
depthSizeThe bit depth of the depth attachment.
stencilSizeThe bit depth of the stencil attachment.
samplesSizeThe number of multisamples.
Returns
ERROR_NONE on success, Error code on failure.
See also
resize()
Version
1.0
bool eq::util::FrameBufferObject::isValid ( ) const
inline
Returns
true if the fbo is valid.
Version
1.0

Definition at line 131 of file frameBufferObject.h.

EQ_API Error eq::util::FrameBufferObject::resize ( const int32_t  width,
const int32_t  height 
)

Resize the FBO.

The FBO has to be initialized and bound. It is not changed if the size does not change.

Returns
true on success, false on error.
ERROR_NONE on success, Error code on failure.
Version
1.0
EQ_API void eq::util::FrameBufferObject::unbind ( const uint32_t  target = 0x8D40)

Unbind any Frame Buffer Object and use the default drawable for the current context.

Parameters
targetthe framebuffer target to unbind, default read and draw
Version
1.0

The documentation for this class was generated from the following file: