Classes | Public Member Functions | Static Public Member Functions | Static Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
Ogre::GLES2FBOManager Class Reference

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

#include <OgreGLES2FBORenderTexture.h>

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

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...
 
void requestRenderBuffer (const GLES2SurfaceDesc &surface)
 Request the specify render buffer in case shared somewhere. More...
 
GLES2SurfaceDesc requestRenderBuffer (GLenum format, size_t width, size_t height, uint fsaa)
 Request a render buffer. 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

◆ RenderBufferMap

Definition at line 190 of file OgreGLES2FBORenderTexture.h.

Constructor & Destructor Documentation

◆ GLES2FBOManager()

Ogre::GLES2FBOManager::GLES2FBOManager ( )

◆ ~GLES2FBOManager()

Ogre::GLES2FBOManager::~GLES2FBOManager ( )

Member Function Documentation

◆ _createTempFramebuffer()

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

◆ _reload()

void Ogre::GLES2FBOManager::_reload ( )

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

◆ _tryFormat()

GLuint Ogre::GLES2FBOManager::_tryFormat ( GLenum  depthFormat,
GLenum  stencilFormat 
)
private

◆ _tryPackedFormat()

bool Ogre::GLES2FBOManager::_tryPackedFormat ( GLenum  packedFormat)
private

◆ bind()

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.

◆ checkFormat()

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

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

Implements Ogre::GLES2RTTManager.

Definition at line 111 of file OgreGLES2FBORenderTexture.h.

◆ createMultiRenderTarget()

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

Create a multi render target.

Reimplemented from Ogre::GLES2RTTManager.

◆ createRenderTexture()

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

Create a texture rendertarget object.

Implements Ogre::GLES2RTTManager.

◆ detectFBOFormats()

void Ogre::GLES2FBOManager::detectFBOFormats ( )
private

Detect allowed FBO formats.

◆ getBestDepthStencil()

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

Get best depth and stencil supported for given internalFormat.

Reimplemented from Ogre::GLES2RTTManager.

◆ getSingleton()

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

Definition at line 90 of file OgreSingleton.h.

◆ getSingletonPtr()

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

Definition at line 92 of file OgreSingleton.h.

◆ getSupportedAlternative()

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

Get the closest supported alternative format.

If format is supported, returns format.

◆ getTemporaryFBO()

GLuint Ogre::GLES2FBOManager::getTemporaryFBO ( )

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

Definition at line 115 of file OgreGLES2FBORenderTexture.h.

◆ releaseRenderBuffer()

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

Release a render buffer.

Ignore silently if surface.buffer is 0.

◆ requestRenderBuffer() [1/2]

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

Request the specify render buffer in case shared somewhere.

Ignore silently if surface.buffer is 0.

◆ requestRenderBuffer() [2/2]

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

Request a render buffer.

If format is GL_NONE, return a zero buffer.

◆ unbind()

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

Unbind a certain render target.

No-op for FBOs.

Implements Ogre::GLES2RTTManager.

Definition at line 83 of file OgreGLES2FBORenderTexture.h.

Member Data Documentation

◆ mProps

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

Properties for all internal formats defined by OGRE.

Definition at line 139 of file OgreGLES2FBORenderTexture.h.

◆ mRenderBufferMap

RenderBufferMap Ogre::GLES2FBOManager::mRenderBufferMap
private

Definition at line 191 of file OgreGLES2FBORenderTexture.h.

◆ msSingleton

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

Definition at line 75 of file OgreSingleton.h.

◆ mTempFBO

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:

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 Tue Apr 13 2021 08:53:15