# Visualization Library

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

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

# 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 const char * | className ()
| Returns the name of the class.
virtual void | render (const Actor *actor, const OpenGLContext *, const Camera *camera) const
| Renders the Renderable.
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)

## Protected Member Functions

virtual void | computeBounds_Implementation ()

## Protected Attributes

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

## 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.

## Constructor & Destructor Documentation

vl::Clear::Clear | ( |  | ) | `[inline]`

## Member Function Documentation

virtual const char* vl::Clear::className | ( |  | ) | `[inline, virtual]`

Returns the name of the class.

Reimplemented from vl::Renderable.

virtual void vl::Clear::render | ( | const Actor * | actor,
|  | const OpenGLContext * | ,
|  | const Camera * | camera |
| ) |  |  | const`[inline, virtual]`

Renders the Renderable.

Implements vl::Renderable.

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

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

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

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

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

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

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

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

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

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

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.

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

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

Implements vl::Renderable.

## Member Data Documentation

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

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

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

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

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

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

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

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

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

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

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

- E:/VisualizationLibrary/BuildSystem/VL_DISTRO/Visualization_Library_SDK/src/vl/Clear.hpp

Visualization Library v2009.07 Reference Documentation
Copyright 2005-2009 Michele Bosi. All rights reserved.
Updated on Mon Aug 10 21:41:34 2009.
Permission is granted to use this page to write and publish articles regarding Visualization Library.