Factory for GL Frame Buffer Objects, and related things. More...
#include <OgreGLFBORenderTexture.h>
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. | |
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 GLFBORenderTexture * | createRenderTexture (const String &name, const GLSurfaceDesc &target, bool writeGamma, uint fsaa) |
Create a texture rendertarget object. | |
virtual MultiRenderTarget * | createMultiRenderTarget (const String &name) |
Create a multi render target. | |
GLSurfaceDesc | requestRenderBuffer (GLenum format, size_t width, size_t height, uint fsaa) |
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. | |
Static Public Member Functions | |
static GLRTTManager & | getSingleton (void) |
static GLRTTManager * | getSingletonPtr (void) |
Static Protected Attributes | |
static GLRTTManager * | msSingleton |
Private Types | |
typedef map< RBFormat, RBRef > ::type | 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? |
Factory for GL Frame Buffer Objects, and related things.
Definition at line 64 of file OgreGLFBORenderTexture.h.
typedef map<RBFormat, RBRef>::type Ogre::GLFBOManager::RenderBufferMap [private] |
Definition at line 180 of file OgreGLFBORenderTexture.h.
Ogre::GLFBOManager::GLFBOManager | ( | bool | atimode | ) |
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 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 | ) | [static, inherited] |
Definition at line 90 of file OgreSingleton.h.
static GLRTTManager * Ogre::Singleton< GLRTTManager >::getSingletonPtr | ( | void | ) | [static, inherited] |
Definition at line 92 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 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, |
size_t | width, | ||
size_t | 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 | ) | [virtual] |
Unbind a certain render target.
No-op for FBOs.
Implements Ogre::GLRTTManager.
Definition at line 77 of file OgreGLFBORenderTexture.h.
bool Ogre::GLFBOManager::mATIMode [private] |
Buggy ATI driver?
Definition at line 189 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.
Definition at line 181 of file OgreGLFBORenderTexture.h.
GLRTTManager * Ogre::Singleton< GLRTTManager >::msSingleton [static, protected, inherited] |
Definition at line 75 of file OgreSingleton.h.
GLuint Ogre::GLFBOManager::mTempFBO [private] |
Temporary FBO identifier.
Definition at line 186 of file OgreGLFBORenderTexture.h.
Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 2012 21:49:18