OGRE  1.9
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Ogre::GLFBOManager Class Reference

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

#include <OgreGLFBORenderTexture.h>

+ Inheritance diagram for Ogre::GLFBOManager:
+ Collaboration diagram for Ogre::GLFBOManager:

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
 

Public Member Functions

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

Static Public Member Functions

static GLRTTManagergetSingleton (void)
 
static GLRTTManagergetSingletonPtr (void)
 

Static Protected Attributes

static GLRTTManagermsSingleton
 

Private Types

typedef map< RBFormat, RBRef >
::type 
RenderBufferMap
 

Private Member Functions

void _createTempFramebuffer (GLuint fmt, GLuint &fb, GLuint &tid)
 
GLuint _tryFormat (GLenum depthFormat, GLenum stencilFormat)
 
bool _tryPackedFormat (GLenum packedFormat)
 
void detectFBOFormats ()
 Detect allowed FBO formats. More...
 

Private Attributes

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

Detailed Description

Factory for GL Frame Buffer Objects, and related things.

Definition at line 64 of file OgreGLFBORenderTexture.h.

Member Typedef Documentation

Definition at line 181 of file OgreGLFBORenderTexture.h.

Constructor & Destructor Documentation

Ogre::GLFBOManager::GLFBOManager ( bool  atimode)
Ogre::GLFBOManager::~GLFBOManager ( )

Member Function Documentation

void Ogre::GLFBOManager::_createTempFramebuffer ( GLuint  fmt,
GLuint &  fb,
GLuint &  tid 
)
private
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)
inlinevirtual

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

Implements Ogre::GLRTTManager.

Definition at line 105 of file OgreGLFBORenderTexture.h.

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,
bool  writeGamma,
uint  fsaa 
)
virtual

Create a texture rendertarget object.

Implements Ogre::GLRTTManager.

void Ogre::GLFBOManager::detectFBOFormats ( )
private

Detect allowed FBO formats.

void Ogre::GLFBOManager::getBestDepthStencil ( GLenum  internalFormat,
GLenum *  depthFormat,
GLenum *  stencilFormat 
)
virtual

Get best depth and stencil supported for given internalFormat.

Reimplemented from Ogre::GLRTTManager.

static GLRTTManager & Ogre::Singleton< GLRTTManager >::getSingleton ( void  )
inlinestaticinherited

Definition at line 90 of file OgreSingleton.h.

static GLRTTManager * Ogre::Singleton< GLRTTManager >::getSingletonPtr ( void  )
inlinestaticinherited

Definition at line 92 of file OgreSingleton.h.

virtual PixelFormat Ogre::GLRTTManager::getSupportedAlternative ( PixelFormat  format)
virtualinherited

Get the closest supported alternative format.

If format is supported, returns format.

GLuint Ogre::GLFBOManager::getTemporaryFBO ( )
inline

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

Definition at line 109 of file OgreGLFBORenderTexture.h.

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

Release a render buffer.

Ignore silently if surface.buffer is 0.

GLSurfaceDesc Ogre::GLFBOManager::requestRenderBuffer ( GLenum  format,
uint32  width,
uint32  height,
uint  fsaa 
)

Request a render buffer.

If format is GL_NONE, return a zero buffer.

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

Request the specify render buffer in case shared somewhere.

Ignore silently if surface.buffer is 0.

void Ogre::GLFBOManager::unbind ( RenderTarget target)
inlinevirtual

Unbind a certain render target.

No-op for FBOs.

Implements Ogre::GLRTTManager.

Definition at line 77 of file OgreGLFBORenderTexture.h.

Member Data Documentation

bool Ogre::GLFBOManager::mATIMode
private

Buggy ATI driver?

Definition at line 190 of file OgreGLFBORenderTexture.h.

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

Properties for all internal formats defined by OGRE.

Definition at line 129 of file OgreGLFBORenderTexture.h.

RenderBufferMap Ogre::GLFBOManager::mRenderBufferMap
private

Definition at line 182 of file OgreGLFBORenderTexture.h.

GLRTTManager * Ogre::Singleton< GLRTTManager >::msSingleton
staticprotectedinherited

Definition at line 75 of file OgreSingleton.h.

GLuint Ogre::GLFBOManager::mTempFBO
private

Temporary FBO identifier.

Definition at line 187 of file OgreGLFBORenderTexture.h.


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