Ogre::GLFrameBufferObject Class Reference

Frame Buffer Object abstraction. More...

`#include <OgreGLFrameBufferObject.h>`

List of all members.

## Public Member Functions

| GLFrameBufferObject (GLFBOManager *manager, uint fsaa)
| ~GLFrameBufferObject ()
void | bindSurface (size_t attachment, const GLSurfaceDesc &target)
| Bind a surface to a certain attachment point.
void | unbindSurface (size_t attachment)
| Unbind attachment.
void | bind ()
| Bind FrameBufferObject.
void | swapBuffers ()
| Swap buffers - only useful when using multisample buffers.
void | attachDepthBuffer (DepthBuffer *depthBuffer)
| This function acts very similar to.
void | detachDepthBuffer ()
GLuint | getGLFBOID () const
| Get the GL id for the FBO.
GLuint | getGLMultisampleFBOID () const
| Get the GL id for the multisample FBO.
size_t | getWidth ()
| Accessors.
size_t | getHeight ()
PixelFormat | getFormat ()
GLsizei | getFSAA ()
GLFBOManager * | getManager ()
const GLSurfaceDesc & | getSurface (size_t attachment)

## Private Member Functions

void | initialise ()
| Initialise object (find suitable depth and stencil format).

## Private Attributes

GLFBOManager * | mManager
GLsizei | mNumSamples
GLuint | mFB
GLuint | mMultisampleFB
GLSurfaceDesc | mMultisampleColourBuffer
GLSurfaceDesc | mDepth
GLSurfaceDesc | mStencil
GLSurfaceDesc | mColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS]

## Detailed Description

Frame Buffer Object abstraction.

Definition at line 38 of file OgreGLFrameBufferObject.h.

## Constructor & Destructor Documentation

Ogre::GLFrameBufferObject::GLFrameBufferObject | ( | GLFBOManager * | manager,
|  | uint | fsaa
| ) |  |

Ogre::GLFrameBufferObject::~GLFrameBufferObject | ( |  | ) |

## Member Function Documentation

void Ogre::GLFrameBufferObject::attachDepthBuffer | ( | DepthBuffer * | depthBuffer | ) |

This function acts very similar to.

See also:
  GLFBORenderTexture::attachDepthBuffer The difference between D3D & OGL is that D3D setups the DepthBuffer before rendering, while OGL setups the DepthBuffer per FBO. So the DepthBuffer (RenderBuffer) needs to be attached for OGL.

void Ogre::GLFrameBufferObject::bind | ( |  | ) |

Bind FrameBufferObject.

void Ogre::GLFrameBufferObject::bindSurface | ( | size_t | attachment,
|  | const GLSurfaceDesc & | target
| ) |  |

Bind a surface to a certain attachment point.

attachment: 0..OGRE_MAX_MULTIPLE_RENDER_TARGETS-1

void Ogre::GLFrameBufferObject::detachDepthBuffer | ( |  | ) |

PixelFormat Ogre::GLFrameBufferObject::getFormat | ( |  | ) |

GLsizei Ogre::GLFrameBufferObject::getFSAA | ( |  | ) |

GLuint Ogre::GLFrameBufferObject::getGLFBOID | ( |  | ) | const

Get the GL id for the FBO.

Definition at line 69 of file OgreGLFrameBufferObject.h.

GLuint Ogre::GLFrameBufferObject::getGLMultisampleFBOID | ( |  | ) | const

Get the GL id for the multisample FBO.

Definition at line 71 of file OgreGLFrameBufferObject.h.

size_t Ogre::GLFrameBufferObject::getHeight | ( |  | ) |

GLFBOManager* Ogre::GLFrameBufferObject::getManager | ( |  | ) |

Definition at line 79 of file OgreGLFrameBufferObject.h.

const GLSurfaceDesc& Ogre::GLFrameBufferObject::getSurface | ( | size_t | attachment | ) |

Definition at line 80 of file OgreGLFrameBufferObject.h.

size_t Ogre::GLFrameBufferObject::getWidth | ( |  | ) |

Accessors.

void Ogre::GLFrameBufferObject::initialise | ( |  | ) | `[private]`

Initialise object (find suitable depth and stencil format).

Must be called every time the bindings change. It fails with an exception (ERR_INVALIDPARAMS) if:

- Attachment point 0 has no binding
- Not all bound surfaces have the same size
- Not all bound surfaces have the same internal format

void Ogre::GLFrameBufferObject::swapBuffers | ( |  | ) |

Swap buffers - only useful when using multisample buffers.

void Ogre::GLFrameBufferObject::unbindSurface | ( | size_t | attachment | ) |

Unbind attachment.

## Member Data Documentation

GLSurfaceDesc Ogre::GLFrameBufferObject::mColour[OGRE_MAX_MULTIPLE_RENDER_TARGETS]`[private]`

Definition at line 90 of file OgreGLFrameBufferObject.h.

GLSurfaceDesc Ogre::GLFrameBufferObject::mDepth`[private]`

Definition at line 87 of file OgreGLFrameBufferObject.h.

GLuint Ogre::GLFrameBufferObject::mFB`[private]`

Definition at line 84 of file OgreGLFrameBufferObject.h.

GLFBOManager* Ogre::GLFrameBufferObject::mManager`[private]`

Definition at line 82 of file OgreGLFrameBufferObject.h.

GLSurfaceDesc Ogre::GLFrameBufferObject::mMultisampleColourBuffer`[private]`

Definition at line 86 of file OgreGLFrameBufferObject.h.

GLuint Ogre::GLFrameBufferObject::mMultisampleFB`[private]`

Definition at line 85 of file OgreGLFrameBufferObject.h.

GLsizei Ogre::GLFrameBufferObject::mNumSamples`[private]`

Definition at line 83 of file OgreGLFrameBufferObject.h.

GLSurfaceDesc Ogre::GLFrameBufferObject::mStencil`[private]`

Definition at line 88 of file OgreGLFrameBufferObject.h.

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

- OgreGLFrameBufferObject.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun Sep 2 2012 07:27:51