Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Ogre::GLFBOManager Class Reference

Factory for GL Frame Buffer Objects, and related things. More...

#include <OgreGLFBORenderTexture.h>

Inheritance diagram for Ogre::GLFBOManager:

Ogre::GLRTTManager Ogre::Singleton< GLRTTManager > List of all members.

Public Member Functions

 GLFBOManager (bool atimode)
 ~GLFBOManager ()
void bind (RenderTarget *target)
 Bind a certain render target if it is a FBO.
void unbind (RenderTarget *target)
 Unbind a certain render target.
void getBestDepthStencil (GLenum internalFormat, GLenum *depthFormat, GLenum *stencilFormat)
 Get best depth and stencil supported for given internalFormat.
virtual GLFBORenderTexturecreateRenderTexture (const String &name, const GLSurfaceDesc &target)
 Create a texture rendertarget object.
virtual MultiRenderTargetcreateMultiRenderTarget (const String &name)
 Create a multi render target.
GLFrameBufferObjectcreateFrameBufferObject ()
 Create a framebuffer object.
void destroyFrameBufferObject (GLFrameBufferObject *)
 Destroy a framebuffer object.
GLSurfaceDesc requestRenderBuffer (GLenum format, size_t width, size_t height)
 Request a render buffer.
void requestRenderBuffer (const GLSurfaceDesc &surface)
 Request the specify render buffer in case shared somewhere.
void releaseRenderBuffer (const GLSurfaceDesc &surface)
 Release a render buffer.
bool checkFormat (PixelFormat format)
 Check if a certain format is usable as FBO rendertarget format.
GLuint getTemporaryFBO ()
 Get a FBO without depth/stencil for temporary use, like blitting between textures.
virtual PixelFormat getSupportedAlternative (PixelFormat format)
 Get the closest supported alternative format.
 Singleton (void)

Static Public Member Functions

static GLRTTManagergetSingleton (void)
static GLRTTManagergetSingletonPtr (void)

Static Protected Attributes

static GLRTTManagerms_Singleton

Private Types

typedef std::map< RBFormat,
RBRef
RenderBufferMap

Private Member Functions

void detectFBOFormats ()
 Detect allowed FBO formats.
GLuint _tryFormat (GLenum depthFormat, GLenum stencilFormat)
bool _tryPackedFormat (GLenum packedFormat)

Private Attributes

FormatProperties mProps [PF_COUNT]
 Properties for all internal formats defined by OGRE.
RenderBufferMap mRenderBufferMap
GLuint mTempFBO
 Temporary FBO identifier.
bool mATIMode
 Buggy ATI driver?

Classes

struct  FormatProperties
 Frame Buffer Object properties for a certain texture format. More...
struct  RBFormat
 Stencil and depth renderbuffers of the same format are re-used between surfaces of the same size and format. More...
struct  RBRef

Detailed Description

Factory for GL Frame Buffer Objects, and related things.

Definition at line 53 of file OgreGLFBORenderTexture.h.


Member Typedef Documentation

typedef std::map<RBFormat, RBRef> Ogre::GLFBOManager::RenderBufferMap [private]
 

Definition at line 170 of file OgreGLFBORenderTexture.h.


Constructor & Destructor Documentation

Ogre::GLFBOManager::GLFBOManager bool  atimode  ) 
 

Ogre::GLFBOManager::~GLFBOManager  ) 
 


Member Function Documentation

GLuint Ogre::GLFBOManager::_tryFormat GLenum  depthFormat,
GLenum  stencilFormat
[private]
 

bool Ogre::GLFBOManager::_tryPackedFormat GLenum  packedFormat  )  [private]
 

void Ogre::GLFBOManager::bind RenderTarget target  )  [virtual]
 

Bind a certain render target if it is a FBO.

If it is not a FBO, bind the main frame buffer.

Implements Ogre::GLRTTManager.

bool Ogre::GLFBOManager::checkFormat PixelFormat  format  )  [virtual]
 

Check if a certain format is usable as FBO rendertarget format.

Implements Ogre::GLRTTManager.

Definition at line 101 of file OgreGLFBORenderTexture.h.

References mProps, and Ogre::GLFBOManager::FormatProperties::valid.

GLFrameBufferObject* Ogre::GLFBOManager::createFrameBufferObject  ) 
 

Create a framebuffer object.

virtual MultiRenderTarget* Ogre::GLFBOManager::createMultiRenderTarget const String name  )  [virtual]
 

Create a multi render target.

Reimplemented from Ogre::GLRTTManager.

virtual GLFBORenderTexture* Ogre::GLFBOManager::createRenderTexture const String name,
const GLSurfaceDesc target
[virtual]
 

Create a texture rendertarget object.

Implements Ogre::GLRTTManager.

void Ogre::GLFBOManager::destroyFrameBufferObject GLFrameBufferObject  ) 
 

Destroy a framebuffer object.

void Ogre::GLFBOManager::detectFBOFormats  )  [private]
 

Detect allowed FBO formats.

void Ogre::GLFBOManager::getBestDepthStencil GLenum  internalFormat,
GLenum *  depthFormat,
GLenum *  stencilFormat
 

Get best depth and stencil supported for given internalFormat.

static GLRTTManager & Ogre::Singleton< GLRTTManager >::getSingleton void   )  [static, inherited]
 

Definition at line 69 of file OgreSingleton.h.

static GLRTTManager * Ogre::Singleton< GLRTTManager >::getSingletonPtr void   )  [static, inherited]
 

Definition at line 71 of file OgreSingleton.h.

virtual PixelFormat Ogre::GLRTTManager::getSupportedAlternative PixelFormat  format  )  [virtual, inherited]
 

Get the closest supported alternative format.

If format is supported, returns format.

GLuint Ogre::GLFBOManager::getTemporaryFBO  ) 
 

Get a FBO without depth/stencil for temporary use, like blitting between textures.

Definition at line 105 of file OgreGLFBORenderTexture.h.

References mTempFBO.

void Ogre::GLFBOManager::releaseRenderBuffer const GLSurfaceDesc surface  ) 
 

Release a render buffer.

Ignore silently if surface.buffer is 0.

void Ogre::GLFBOManager::requestRenderBuffer const GLSurfaceDesc surface  ) 
 

Request the specify render buffer in case shared somewhere.

Ignore silently if surface.buffer is 0.

GLSurfaceDesc Ogre::GLFBOManager::requestRenderBuffer GLenum  format,
size_t  width,
size_t  height
 

Request a render buffer.

If format is GL_NONE, return a zero buffer.

Ogre::Singleton< GLRTTManager >::Singleton void   )  [inherited]
 

Definition at line 57 of file OgreSingleton.h.

void Ogre::GLFBOManager::unbind RenderTarget target  )  [virtual]
 

Unbind a certain render target.

No-op for FBOs.

Implements Ogre::GLRTTManager.

Definition at line 66 of file OgreGLFBORenderTexture.h.


Member Data Documentation

bool Ogre::GLFBOManager::mATIMode [private]
 

Buggy ATI driver?

Definition at line 179 of file OgreGLFBORenderTexture.h.

FormatProperties Ogre::GLFBOManager::mProps[PF_COUNT] [private]
 

Properties for all internal formats defined by OGRE.

Definition at line 125 of file OgreGLFBORenderTexture.h.

Referenced by checkFormat().

RenderBufferMap Ogre::GLFBOManager::mRenderBufferMap [private]
 

Definition at line 171 of file OgreGLFBORenderTexture.h.

GLRTTManager * Ogre::Singleton< GLRTTManager >::ms_Singleton [static, protected, inherited]
 

Definition at line 54 of file OgreSingleton.h.

GLuint Ogre::GLFBOManager::mTempFBO [private]
 

Temporary FBO identifier.

Definition at line 176 of file OgreGLFBORenderTexture.h.

Referenced by getTemporaryFBO().


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

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Nov 12 10:59:31 2006