Name
glClear — clear buffers to preset values
C Specification
void glClear(
GLbitfield mask)
;Parameters
mask
- Bitwise OR of masks that indicate the buffers to be cleared. The three masks are
GL_COLOR_BUFFER_BIT
,GL_DEPTH_BUFFER_BIT
, andGL_STENCIL_BUFFER_BIT
.
Description
glClear
sets the bitplane area of the window to values previously selected by glClearColor
, glClearDepth
, and glClearStencil
. Multiple color buffers can be cleared simultaneously by selecting more than one buffer at a time using glDrawBuffer.The pixel ownership test, the scissor test, dithering, and the buffer writemasks affect the operation of
glClear
. The scissor box bounds the cleared region. Alpha function, blend function, logical operation, stenciling, texture mapping, and depth-buffering are ignored by glClear
.glClear
takes a single argument that is the bitwise OR of several values indicating which buffer is to be cleared.The values are as follows:
GL_COLOR_BUFFER_BIT
- Indicates the buffers currently enabled for color writing.
GL_DEPTH_BUFFER_BIT
- Indicates the depth buffer.
GL_STENCIL_BUFFER_BIT
- Indicates the stencil buffer.
Associated Gets
glGet with argumentGL_DEPTH_CLEAR_VALUE
glGet with argument
GL_COLOR_CLEAR_VALUE
glGet with argument
GL_STENCIL_CLEAR_VALUE
See Also
glClearColor
, glClearDepth
, glClearStencil
, glColorMask, glDepthMask, glDrawBuffer, glScissor, glStencilMaskCopyright
Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.Example of glClear
void Render()
{
//clear color and depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();//load identity matrix
glTranslatef(0.0f,0.0f,-4.0f);//move forward 4 units
glColor3f(0.0f,0.0f,1.0f); //blue color
glBegin(GL_TRIANGLES);//start drawing triangles
glVertex3f(-1.0f,-0.25f,0.0f);//triangle one first vertex
glVertex3f(-0.5f,-0.25f,0.0f);//triangle one second vertex
glVertex3f(-0.75f,0.25f,0.0f);//triangle one third vertex
//drawing a new triangle
glVertex3f(0.5f,-0.25f,0.0f);//triangle two first vertex
glVertex3f(1.0f,-0.25f,0.0f);//triangle two second vertex
glVertex3f(0.75f,0.25f,0.0f);//triangle two third vertex
glEnd();//end drawing of triangles
}
void DrawIt()
{
unsigned char *pBuffer = new unsigned char[300*300*4];
// Drawing OpenGL Geometry.
//
glClear(GL_COLOR_BUFFER_BIT);
//glPushMatrix();
glScalef(0.5f, 0.5f, 0.5f);
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex3f(1.0f, -1.0f, -1.0f);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex3f(0.0f, 1.0f, -1.0f);
glEnd();
//glPopMatrix();
SwapBuffers(g_hDC);
// Read pixels from color buffer.
//
memset(pBuffer, 0, 300*300*4);
glPixelStorei(GL_PACK_ALIGNMENT, 4);
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
// Choose where to read from.
//
glReadBuffer(GL_FRONT);
glReadPixels((GLdouble)300, (GLdouble)300, 30, 30, GL_RGBA, GL_UNSIGNED_BYTE, pBuffer);
delete[] pBuffer;
return;
}