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

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

#include <OgreGLES2FBORenderTexture.h>

+ Inheritance diagram for Ogre::GLES2FBOManager:
+ Collaboration diagram for Ogre::GLES2FBOManager:

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

 GLES2FBOManager ()
 
 ~GLES2FBOManager ()
 
void _reload ()
 Detects all supported fbo's and recreates the tempory fbo. More...
 
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 GLES2FBORenderTexturecreateRenderTexture (const String &name, const GLES2SurfaceDesc &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 GLES2SurfaceDesc &surface)
 Release a render buffer. More...
 
GLES2SurfaceDesc requestRenderBuffer (GLenum format, uint32 width, uint32 height, uint fsaa)
 Request a render buffer. More...
 
void requestRenderBuffer (const GLES2SurfaceDesc &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 GLES2RTTManagergetSingleton (void)
 
static GLES2RTTManagergetSingletonPtr (void)
 

Static Protected Attributes

static GLES2RTTManagermsSingleton
 

Private Types

typedef map< RBFormat, RBRef >
::type 
RenderBufferMap
 

Private Member Functions

void _createTempFramebuffer (PixelFormat pixFmt, 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. More...
 

Private Attributes

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 ES 2 Frame Buffer Objects, and related things.

Definition at line 70 of file OgreGLES2FBORenderTexture.h.

Member Typedef Documentation

Definition at line 190 of file OgreGLES2FBORenderTexture.h.

Constructor & Destructor Documentation

Ogre::GLES2FBOManager::GLES2FBOManager ( )
Ogre::GLES2FBOManager::~GLES2FBOManager ( )

Member Function Documentation

void Ogre::GLES2FBOManager::_createTempFramebuffer ( PixelFormat  pixFmt,
GLuint  internalFormat,
GLuint  fmt,
GLenum  dataType,
GLuint &  fb,
GLuint &  tid 
)
private
void Ogre::GLES2FBOManager::_reload ( )

Detects all supported fbo's and recreates the tempory fbo.

GLuint Ogre::GLES2FBOManager::_tryFormat ( GLenum  depthFormat,
GLenum  stencilFormat 
)
private
bool Ogre::GLES2FBOManager::_tryPackedFormat ( GLenum  packedFormat)
private
void Ogre::GLES2FBOManager::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::GLES2RTTManager.

bool Ogre::GLES2FBOManager::checkFormat ( PixelFormat  format)
inlinevirtual

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

Implements Ogre::GLES2RTTManager.

Definition at line 111 of file OgreGLES2FBORenderTexture.h.

virtual MultiRenderTarget* Ogre::GLES2FBOManager::createMultiRenderTarget ( const String name)
virtual

Create a multi render target.

Reimplemented from Ogre::GLES2RTTManager.

virtual GLES2FBORenderTexture* Ogre::GLES2FBOManager::createRenderTexture ( const String name,
const GLES2SurfaceDesc target,
bool  writeGamma,
uint  fsaa 
)
virtual

Create a texture rendertarget object.

Implements Ogre::GLES2RTTManager.

void Ogre::GLES2FBOManager::detectFBOFormats ( )
private

Detect allowed FBO formats.

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

Get best depth and stencil supported for given internalFormat.

Reimplemented from Ogre::GLES2RTTManager.

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

Definition at line 90 of file OgreSingleton.h.

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

Definition at line 92 of file OgreSingleton.h.

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

Get the closest supported alternative format.

If format is supported, returns format.

GLuint Ogre::GLES2FBOManager::getTemporaryFBO ( )
inline

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

Definition at line 115 of file OgreGLES2FBORenderTexture.h.

void Ogre::GLES2FBOManager::releaseRenderBuffer ( const GLES2SurfaceDesc surface)

Release a render buffer.

Ignore silently if surface.buffer is 0.

GLES2SurfaceDesc Ogre::GLES2FBOManager::requestRenderBuffer ( GLenum  format,
uint32  width,
uint32  height,
uint  fsaa 
)

Request a render buffer.

If format is GL_NONE, return a zero buffer.

void Ogre::GLES2FBOManager::requestRenderBuffer ( const GLES2SurfaceDesc surface)

Request the specify render buffer in case shared somewhere.

Ignore silently if surface.buffer is 0.

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

Unbind a certain render target.

No-op for FBOs.

Implements Ogre::GLES2RTTManager.

Definition at line 83 of file OgreGLES2FBORenderTexture.h.

Member Data Documentation

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

Properties for all internal formats defined by OGRE.

Definition at line 139 of file OgreGLES2FBORenderTexture.h.

RenderBufferMap Ogre::GLES2FBOManager::mRenderBufferMap
private

Definition at line 191 of file OgreGLES2FBORenderTexture.h.

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

Definition at line 75 of file OgreSingleton.h.

GLuint Ogre::GLES2FBOManager::mTempFBO
private

Temporary FBO identifier.

Definition at line 196 of file OgreGLES2FBORenderTexture.h.


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