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

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

#include <OgreGLESFBORenderTexture.h>

Inheritance diagram for Ogre::GLESFBOManager:
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

 GLESFBOManager ()
 
 ~GLESFBOManager ()
 
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 GLESFBORenderTexturecreateRenderTexture (const String &name, const GLESSurfaceDesc &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 GLESSurfaceDesc &surface)
 Release a render buffer. More...
 
void requestRenderBuffer (const GLESSurfaceDesc &surface)
 Request the specify render buffer in case shared somewhere. More...
 
GLESSurfaceDesc 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 GLESRTTManagergetSingleton (void)
 
static GLESRTTManagergetSingletonPtr (void)
 

Static Protected Attributes

static GLESRTTManagermsSingleton
 

Private Types

typedef map< RBFormat, RBRef >::type RenderBufferMap
 

Private Member Functions

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

Definition at line 70 of file OgreGLESFBORenderTexture.h.

Member Typedef Documentation

◆ RenderBufferMap

Definition at line 190 of file OgreGLESFBORenderTexture.h.

Constructor & Destructor Documentation

◆ GLESFBOManager()

Ogre::GLESFBOManager::GLESFBOManager ( )

◆ ~GLESFBOManager()

Ogre::GLESFBOManager::~GLESFBOManager ( )

Member Function Documentation

◆ _reload()

void Ogre::GLESFBOManager::_reload ( )

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

◆ _tryFormat()

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

◆ _tryPackedFormat()

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

◆ bind()

void Ogre::GLESFBOManager::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::GLESRTTManager.

◆ checkFormat()

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

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

Implements Ogre::GLESRTTManager.

Definition at line 111 of file OgreGLESFBORenderTexture.h.

◆ createMultiRenderTarget()

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

Create a multi render target.

Reimplemented from Ogre::GLESRTTManager.

◆ createRenderTexture()

virtual GLESFBORenderTexture* Ogre::GLESFBOManager::createRenderTexture ( const String name,
const GLESSurfaceDesc target,
bool  writeGamma,
uint  fsaa 
)
virtual

Create a texture rendertarget object.

Implements Ogre::GLESRTTManager.

◆ detectFBOFormats()

void Ogre::GLESFBOManager::detectFBOFormats ( )
private

Detect allowed FBO formats.

◆ getBestDepthStencil()

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

Get best depth and stencil supported for given internalFormat.

Reimplemented from Ogre::GLESRTTManager.

◆ getSingleton()

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

Definition at line 90 of file OgreSingleton.h.

◆ getSingletonPtr()

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

Definition at line 92 of file OgreSingleton.h.

◆ getSupportedAlternative()

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

Get the closest supported alternative format.

If format is supported, returns format.

◆ getTemporaryFBO()

GLuint Ogre::GLESFBOManager::getTemporaryFBO ( )

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

Definition at line 115 of file OgreGLESFBORenderTexture.h.

◆ releaseRenderBuffer()

void Ogre::GLESFBOManager::releaseRenderBuffer ( const GLESSurfaceDesc surface)

Release a render buffer.

Ignore silently if surface.buffer is 0.

◆ requestRenderBuffer() [1/2]

void Ogre::GLESFBOManager::requestRenderBuffer ( const GLESSurfaceDesc surface)

Request the specify render buffer in case shared somewhere.

Ignore silently if surface.buffer is 0.

◆ requestRenderBuffer() [2/2]

GLESSurfaceDesc Ogre::GLESFBOManager::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::GLESFBOManager::unbind ( RenderTarget target)
virtual

Unbind a certain render target.

No-op for FBOs.

Implements Ogre::GLESRTTManager.

Definition at line 83 of file OgreGLESFBORenderTexture.h.

Member Data Documentation

◆ mProps

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

Properties for all internal formats defined by OGRE.

Definition at line 139 of file OgreGLESFBORenderTexture.h.

◆ mRenderBufferMap

RenderBufferMap Ogre::GLESFBOManager::mRenderBufferMap
private

Definition at line 191 of file OgreGLESFBORenderTexture.h.

◆ msSingleton

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

Definition at line 75 of file OgreSingleton.h.

◆ mTempFBO

GLuint Ogre::GLESFBOManager::mTempFBO
private

Temporary FBO identifier.

Definition at line 196 of file OgreGLESFBORenderTexture.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