Classes | Public Member Functions | Static Public Member Functions | Static Protected Attributes | Private Types | Private Member Functions | Private Attributes
Ogre::GL3PlusFBOManager Class Reference

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

#include <OgreGL3PlusFBORenderTexture.h>

Inheritance diagram for Ogre::GL3PlusFBOManager:
Inheritance graph
[legend]

List of all members.

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

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

Static Public Member Functions

static GL3PlusRTTManagergetSingleton (void)
static GL3PlusRTTManagergetSingletonPtr (void)

Static Protected Attributes

static GL3PlusRTTManagermsSingleton

Private Types

typedef map< RBFormat, RBRef >
::type 
RenderBufferMap

Private Member Functions

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

Private Attributes

FormatProperties mProps [PF_COUNT]
 Properties for all internal formats defined by OGRE.
RenderBufferMap mRenderBufferMap
GLuint mTempFBO
 Temporary FBO identifier.

Detailed Description

Factory for GL Frame Buffer Objects, and related things.

Definition at line 61 of file OgreGL3PlusFBORenderTexture.h.


Member Typedef Documentation

Definition at line 178 of file OgreGL3PlusFBORenderTexture.h.


Constructor & Destructor Documentation


Member Function Documentation

void Ogre::GL3PlusFBOManager::_createTempFramebuffer ( int  ogreFormat,
GLuint  internalFormat,
GLuint  fmt,
GLenum  dataType,
GLuint &  fb,
GLuint &  tid 
) [private]
GLuint Ogre::GL3PlusFBOManager::_tryFormat ( GLenum  depthFormat,
GLenum  stencilFormat 
) [private]
bool Ogre::GL3PlusFBOManager::_tryPackedFormat ( GLenum  packedFormat) [private]
void Ogre::GL3PlusFBOManager::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::GL3PlusRTTManager.

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

Implements Ogre::GL3PlusRTTManager.

Definition at line 102 of file OgreGL3PlusFBORenderTexture.h.

Create a multi render target.

Reimplemented from Ogre::GL3PlusRTTManager.

virtual GL3PlusFBORenderTexture* Ogre::GL3PlusFBOManager::createRenderTexture ( const String name,
const GL3PlusSurfaceDesc target,
bool  writeGamma,
uint  fsaa 
) [virtual]

Create a texture rendertarget object.

Implements Ogre::GL3PlusRTTManager.

Detect allowed FBO formats.

void Ogre::GL3PlusFBOManager::getBestDepthStencil ( GLenum  internalFormat,
GLenum *  depthFormat,
GLenum *  stencilFormat 
) [virtual]

Get best depth and stencil supported for given internalFormat.

Reimplemented from Ogre::GL3PlusRTTManager.

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

Definition at line 90 of file OgreSingleton.h.

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

Definition at line 92 of file OgreSingleton.h.

Get the closest supported alternative format.

If format is supported, returns format.

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

Definition at line 106 of file OgreGL3PlusFBORenderTexture.h.

Release a render buffer.

Ignore silently if surface.buffer is 0.

GL3PlusSurfaceDesc Ogre::GL3PlusFBOManager::requestRenderBuffer ( GLenum  format,
uint32  width,
uint32  height,
uint  fsaa 
)

Request a render buffer.

If format is GL_NONE, return a zero buffer.

Request the specify render buffer in case shared somewhere.

Ignore silently if surface.buffer is 0.

void Ogre::GL3PlusFBOManager::unbind ( RenderTarget target) [virtual]

Unbind a certain render target.

No-op for FBOs.

Implements Ogre::GL3PlusRTTManager.

Definition at line 74 of file OgreGL3PlusFBORenderTexture.h.


Member Data Documentation

Properties for all internal formats defined by OGRE.

Definition at line 126 of file OgreGL3PlusFBORenderTexture.h.

Definition at line 179 of file OgreGL3PlusFBORenderTexture.h.

GL3PlusRTTManager * Ogre::Singleton< GL3PlusRTTManager >::msSingleton [static, protected, inherited]

Definition at line 75 of file OgreSingleton.h.

Temporary FBO identifier.

Definition at line 183 of file OgreGL3PlusFBORenderTexture.h.


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

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Mon Jul 27 2020 13:41:03