Open CASCADE Technology  6.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Attributes
OpenGl_FrameBuffer Class Reference

Class implements FrameBuffer Object (FBO) resource intended for off-screen rendering. More...

#include <OpenGl_FrameBuffer.hxx>

Inheritance diagram for OpenGl_FrameBuffer:
Inheritance graph
[legend]

Public Member Functions

 OpenGl_FrameBuffer (GLint theTextureFormat=GL_RGBA8)
 Empty constructor. More...
 
virtual ~OpenGl_FrameBuffer ()
 Destructor. More...
 
virtual void Release (const OpenGl_Context *theGlCtx)
 Destroy object - will release GPU memory if any. More...
 
GLsizei GetSizeX () const
 Texture width. More...
 
GLsizei GetSizeY () const
 Texture height. More...
 
GLsizei GetVPSizeX () const
 Viewport width. More...
 
GLsizei GetVPSizeY () const
 Viewport height. More...
 
Standard_Boolean IsValid () const
 Returns true if current object was initialized. More...
 
Standard_Boolean Init (const Handle< OpenGl_Context > &theGlCtx, const GLsizei theViewportSizeX, const GLsizei theViewportSizeY, const GLboolean toForcePowerOfTwo=GL_FALSE)
 Notice! Obsolete hardware (GeForce FX etc) doesn't support rectangular textures! There are 3 possible results if you are trying to create non power-of-two FBO on these cards: 1) FBO creation will fail, current implementation will try to generate compatible FBO; 2) FBO rendering will be done in software mode (ForceWare 'hack'); 3) FBO rendering will be incorrect (some obsolete Catalyst drivers). More...
 
void SetupViewport (const Handle< OpenGl_Context > &theGlCtx)
 Setup viewport to render into FBO. More...
 
void ChangeViewport (const GLsizei theVPSizeX, const GLsizei theVPSizeY)
 Override viewport settings. More...
 
void BindBuffer (const Handle< OpenGl_Context > &theGlCtx)
 Bind frame buffer (to render into the texture). More...
 
void UnbindBuffer (const Handle< OpenGl_Context > &theGlCtx)
 Unbind frame buffer. More...
 
void BindTexture (const Handle< OpenGl_Context > &theGlCtx)
 Bind the texture. More...
 
void UnbindTexture (const Handle< OpenGl_Context > &theGlCtx)
 Unbind the texture. More...
 
- Public Member Functions inherited from OpenGl_Resource
 OpenGl_Resource ()
 Empty constructor. More...
 
virtual ~OpenGl_Resource ()
 Destructor. Inheritors should call Clean (NULL) within it. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual void ShallowDump (Standard_OStream &) const
 
virtual const
Handle_Standard_Type & 
DynamicType () const
 Returns a type information object about this object. More...
 
Standard_Boolean IsInstance (const Handle_Standard_Type &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const Handle_Standard_Type &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
virtual Handle_Standard_Transient This () const
 Returns a Handle which references this object. Must never be called to objects created in stack. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 

Static Public Attributes

static const GLuint NO_TEXTURE = 0
 Helpful constants. More...
 
static const GLuint NO_FRAMEBUFFER = 0
 
static const GLuint NO_RENDERBUFFER = 0
 

Detailed Description

Class implements FrameBuffer Object (FBO) resource intended for off-screen rendering.

Constructor & Destructor Documentation

OpenGl_FrameBuffer::OpenGl_FrameBuffer ( GLint  theTextureFormat = GL_RGBA8)

Empty constructor.

virtual OpenGl_FrameBuffer::~OpenGl_FrameBuffer ( )
virtual

Destructor.

Member Function Documentation

void OpenGl_FrameBuffer::BindBuffer ( const Handle< OpenGl_Context > &  theGlCtx)

Bind frame buffer (to render into the texture).

void OpenGl_FrameBuffer::BindTexture ( const Handle< OpenGl_Context > &  theGlCtx)

Bind the texture.

void OpenGl_FrameBuffer::ChangeViewport ( const GLsizei  theVPSizeX,
const GLsizei  theVPSizeY 
)

Override viewport settings.

GLsizei OpenGl_FrameBuffer::GetSizeX ( ) const
inline

Texture width.

GLsizei OpenGl_FrameBuffer::GetSizeY ( ) const
inline

Texture height.

GLsizei OpenGl_FrameBuffer::GetVPSizeX ( ) const
inline

Viewport width.

GLsizei OpenGl_FrameBuffer::GetVPSizeY ( ) const
inline

Viewport height.

Standard_Boolean OpenGl_FrameBuffer::Init ( const Handle< OpenGl_Context > &  theGlCtx,
const GLsizei  theViewportSizeX,
const GLsizei  theViewportSizeY,
const GLboolean  toForcePowerOfTwo = GL_FALSE 
)

Notice! Obsolete hardware (GeForce FX etc) doesn't support rectangular textures! There are 3 possible results if you are trying to create non power-of-two FBO on these cards: 1) FBO creation will fail, current implementation will try to generate compatible FBO; 2) FBO rendering will be done in software mode (ForceWare 'hack'); 3) FBO rendering will be incorrect (some obsolete Catalyst drivers).

Standard_Boolean OpenGl_FrameBuffer::IsValid ( ) const
inline

Returns true if current object was initialized.

virtual void OpenGl_FrameBuffer::Release ( const OpenGl_Context theGlCtx)
virtual

Destroy object - will release GPU memory if any.

Implements OpenGl_Resource.

void OpenGl_FrameBuffer::SetupViewport ( const Handle< OpenGl_Context > &  theGlCtx)

Setup viewport to render into FBO.

void OpenGl_FrameBuffer::UnbindBuffer ( const Handle< OpenGl_Context > &  theGlCtx)

Unbind frame buffer.

void OpenGl_FrameBuffer::UnbindTexture ( const Handle< OpenGl_Context > &  theGlCtx)

Unbind the texture.

Field Documentation

const GLuint OpenGl_FrameBuffer::NO_FRAMEBUFFER = 0
static
const GLuint OpenGl_FrameBuffer::NO_RENDERBUFFER = 0
static
const GLuint OpenGl_FrameBuffer::NO_TEXTURE = 0
static

Helpful constants.


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