# Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics

[Home] [Tutorials] [All Classes] [Grouped Classes]

Public Member Functions | Protected Member Functions | Protected Attributes

# vl::Clear Class Reference

The Clear class is a Renderable used to clear the whole or a portion of the color, stencil or depth buffer. More...

`#include <Clear.hpp>`

Inheritance diagram for vl::Clear:

List of all members.

## Public Member Functions

| Clear ()
virtual void | render_Implementation (const Actor *, const Shader *, const Camera *, OpenGLContext *) const
void | setClearColorBuffer (bool clear)
void | setClearDepthBuffer (bool clear)
void | setClearStencilBuffer (bool clear)
void | setClearColorValue (const fvec4 &clear_val)
void | setClearColorValueInt (const ivec4 &clear_val)
void | setClearColorValueUInt (const uvec4 &clear_val)
void | setClearDepthValue (float clear_val)
void | setClearStencilValue (int clear_val)
void | setClearColorMode (EClearColorMode mode)
EClearColorMode | clearColorMode () const
void | setScissorBox (int x, int y, int w, int h)
| Defines which portion of the rendering buffers should be cleared.
void | getScissorBox (int &x, int &y, int &w, int &h)
virtual void | updateDirtyBufferObject (EBufferObjectUpdateMode)
| Uploads the data stored in the local buffers on the GPU memory.
virtual void | deleteBufferObject ()
| Destroys the BufferObject (vertex buffer objects) associated to this a Renderable.

## Protected Member Functions

virtual void | computeBounds_Implementation ()

## Protected Attributes

fvec4 | mClearColorValue
ivec4 | mClearColorValueInt
uvec4 | mClearColorValueUInt
int | mScissorBox [4]
EClearColorMode | mClearColorMode
float | mClearDepthValue
int | mClearStencilValue
bool | mClearColorBuffer
bool | mClearDepthBuffer
bool | mClearStencilBuffer

## Detailed Description

The Clear class is a Renderable used to clear the whole or a portion of the color, stencil or depth buffer.

The Clear class is a special Renderable that wraps the functionalities of the following OpenGL functions:

- glClear() - http://www.opengl.org/sdk/docs/man/xhtml/glClear.xml
- glClearColor() - http://www.opengl.org/sdk/docs/man/xhtml/glClearColor.xml
- glClearDepth() - http://www.opengl.org/sdk/docs/man/xhtml/glClearDepth.xml
- glClearStencil() - http://www.opengl.org/sdk/docs/man/xhtml/glClearStencil.xml
- glScissor() - http://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml

Usually the color, depth and stencil buffers are cleared at the beginning of a rendering when the Viewport is initialized. To handle less common cases the Clear class allows you to perform a clear operation also in the middle of a rendering. Just bind it to an an Actor and setup the appropriate clearing options.

Note:

- Binding a Transform to the same Actor will not affect the clearing operation in any way.
- You still need to bind an Effect to the same Actor infact the Effect's renderRank() and blending state enabled/disabled might affect the rendering order of the Actor bound to your Clear object, i.e. the moment at which your buffers are cleared. In other words the usual rules to determine the rendering order of an Actor apply also when a Clear object is bound to it. For this reason in order to define the exact point at which the buffers are cleared you should pay special attention to your Actor's and Effect's renderRank() and Actor's renderBlock().
- The following render states also affect the clearing process: ColorMask, StencilMask, DepthMask.

Definition at line 69 of file Clear.hpp.

## Constructor & Destructor Documentation

Clear::Clear | ( | ) |

Definition at line 40 of file Clear.cpp.

References mScissorBox, and VL_DEBUG_SET_OBJECT_NAME.

## Member Function Documentation

void Clear::render_Implementation | ( | const Actor * | ,
|  | const Shader * | ,
|  | const Camera * | camera,
|  | OpenGLContext * |
| ) |  | const`[virtual]`

Implements vl::Renderable.

Definition at line 51 of file Clear.cpp.

References vl::Vector4< T_Scalar >::a(), vl::Vector4< T_Scalar >::b(), vl::CCM_Float, vl::CCM_Int, vl::CCM_UInt, clearColorMode(), vl::Log::error(), vl::Vector4< T_Scalar >::g(), vl::Viewport::height(), mClearColorBuffer, mClearColorValue, mClearColorValueInt, mClearColorValueUInt, mClearDepthBuffer, mClearDepthValue, mClearStencilBuffer, mClearStencilValue, mScissorBox, vl::Vector4< T_Scalar >::r(), vl::Camera::viewport(), VL_CHECK_OGL, vl::Viewport::width(), vl::Viewport::x(), and vl::Viewport::y().

void vl::Clear::setClearColorBuffer | ( | bool | clear ) | `[inline]`

Definition at line 78 of file Clear.hpp.

void vl::Clear::setClearDepthBuffer | ( | bool | clear ) | `[inline]`

Definition at line 80 of file Clear.hpp.

void vl::Clear::setClearStencilBuffer | ( | bool | clear ) | `[inline]`

Definition at line 82 of file Clear.hpp.

void vl::Clear::setClearColorValue | ( | const fvec4 & | clear_val ) | `[inline]`

Definition at line 84 of file Clear.hpp.

void vl::Clear::setClearColorValueInt | ( | const ivec4 & | clear_val ) | `[inline]`

Definition at line 86 of file Clear.hpp.

void vl::Clear::setClearColorValueUInt | ( | const uvec4 & | clear_val ) | `[inline]`

Definition at line 88 of file Clear.hpp.

void vl::Clear::setClearDepthValue | ( | float | clear_val ) | `[inline]`

Definition at line 90 of file Clear.hpp.

void vl::Clear::setClearStencilValue | ( | int | clear_val ) | `[inline]`

Definition at line 92 of file Clear.hpp.

void vl::Clear::setClearColorMode | ( | EClearColorMode | mode ) | `[inline]`

Definition at line 94 of file Clear.hpp.

EClearColorMode vl::Clear::clearColorMode | ( | ) | const`[inline]`

Definition at line 96 of file Clear.hpp.

Referenced by render_Implementation().

void vl::Clear::setScissorBox | ( | int | x,
|  | int | y,
|  | int | w,
|  | int | h
| ) |  | `[inline]`

Defines which portion of the rendering buffers should be cleared.

The parameters 'x', 'y', 'z', 'w' specify a rectangular area in viewport coordinates. Such area is also clipped against the viewport borders. If 'w' or 'h' are set to -1 then the whole viewport is cleared.

Definition at line 102 of file Clear.hpp.

void vl::Clear::getScissorBox | ( | int & | x,
|  | int & | y,
|  | int & | w,
|  | int & | h
| ) |  | `[inline]`

Definition at line 104 of file Clear.hpp.

virtual void vl::Clear::updateDirtyBufferObject | ( | EBufferObjectUpdateMode | ) | `[inline, virtual]`

Uploads the data stored in the local buffers on the GPU memory.

If 'discard_local_data' is set to `true` the memory used by the local buffers is released.

Implements vl::Renderable.

Definition at line 108 of file Clear.hpp.

virtual void vl::Clear::deleteBufferObject | ( | ) | `[inline, virtual]`

Destroys the BufferObject (vertex buffer objects) associated to this a Renderable.

Note:
  This function does not touch the local (non GPU) data stored in the buffers associated to the vertex attributes and DrawCall.

Implements vl::Renderable.

Definition at line 110 of file Clear.hpp.

virtual void vl::Clear::computeBounds_Implementation | ( | ) | `[inline, protected, virtual]`

Implements vl::Renderable.

Definition at line 113 of file Clear.hpp.

## Member Data Documentation

fvec4 vl::Clear::mClearColorValue`[protected]`

Definition at line 116 of file Clear.hpp.

Referenced by render_Implementation().

ivec4 vl::Clear::mClearColorValueInt`[protected]`

Definition at line 117 of file Clear.hpp.

Referenced by render_Implementation().

uvec4 vl::Clear::mClearColorValueUInt`[protected]`

Definition at line 118 of file Clear.hpp.

Referenced by render_Implementation().

int vl::Clear::mScissorBox[4]`[protected]`

Definition at line 119 of file Clear.hpp.

Referenced by Clear(), and render_Implementation().

EClearColorMode vl::Clear::mClearColorMode`[protected]`

Definition at line 120 of file Clear.hpp.

float vl::Clear::mClearDepthValue`[protected]`

Definition at line 121 of file Clear.hpp.

Referenced by render_Implementation().

int vl::Clear::mClearStencilValue`[protected]`

Definition at line 122 of file Clear.hpp.

Referenced by render_Implementation().

bool vl::Clear::mClearColorBuffer`[protected]`

Definition at line 123 of file Clear.hpp.

Referenced by render_Implementation().

bool vl::Clear::mClearDepthBuffer`[protected]`

Definition at line 124 of file Clear.hpp.

Referenced by render_Implementation().

bool vl::Clear::mClearStencilBuffer`[protected]`

Definition at line 125 of file Clear.hpp.

Referenced by render_Implementation().

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

- D:/VL/BuildSystem/VL_DISTRO/Visualization_Library_SDK/src/vlGraphics/Clear.hpp
- D:/VL/BuildSystem/VL_DISTRO/Visualization_Library_SDK/src/vlGraphics/Clear.cpp

Visualization Library v2011.09.1162 Reference Documentation
Copyright 2005-2011 Michele Bosi. All rights reserved.
Updated on Thu Jan 26 2012 00:44:30.
Permission is granted to use this page to write and publish articles regarding Visualization Library.