
S
glStencilOp
Chapter 17
406
glStencilOp
glStencilOp
: set stencil test actions.
C Specification
void glStencilOp(
GLenum fail,
GLenum zfail,
GLenum zpass)
Parameters
fail
Specifies the action to take when the stencil test fails. Six symbolic
constants are accepted: GL_KEEP, GL_ZERO, GL_REPLACE,
GL_INCR, GL_DECR, and GL_INVERT. The initial value is
GL_KEEP.
zfail
Specifies the stencil action when the stencil test passes, but the depth
test fails. zfail accepts the same symbolic constants as fail. The initial
value is GL_KEEP.
zpass
Specifies the stencil action when both the stencil test and the depth
test pass, or when the stencil test passes and either there is no depth
buffer or depth testing is not enabled. zpass accepts the same symbolic
constants as fail. The initial value is GL_KEEP.
Description
Stenciling, like depth-buffering, enables and disables drawing on a per-pixel basis. You
draw into the stencil planes using GL drawing primitives, then render geometry and
images, using the stencil planes to mask out portions of the screen. Stenciling is typically
used in multipass rendering algorithms to achieve special effects, such as decals,
outlining, and constructive solid geometry rendering.
The stencil test conditionally eliminates a pixel based on the outcome of a comparison
between the value in the stencil buffer and a reference value. To enable and disable the
test, call glEnable and glDisable with argument GL_STENCIL_TEST; to control it, call
glStencilFunc.
glStencilOp takes three arguments that indicate what happens to the stored stencil
value while stenciling is enabled. If the stencil test fails, no change is made to the pixel’s
color or depth buffers, and fail specifies what happens to the stencil buffer contents. The
following six actions are possible.
GL_KEEP
Keeps the current value.
GL_ZERO
Sets the stencil buffer value to 0.
GL_REPLACE
Sets the stencil buffer value to ref, as specified by glStencilFunc.
Summary of Contents for c3700 - Workstation
Page 9: ...Chapter 1 9 1 A ...
Page 18: ...A glArrayElement Chapter 1 18 glNormalPointer glTexCoordPointer glVertexPointer ...
Page 19: ...Chapter 2 19 2 B ...
Page 40: ...B gluBuild2DMipmaps Chapter 2 40 ...
Page 41: ...Chapter 3 41 3 C ...
Page 49: ...C glXChooseVisual Chapter 3 49 See Also glXCreateContext glXGetConfig ...
Page 73: ...C glCopyPixels Chapter 3 73 glReadBuffer glReadPixels glStencilFunc ...
Page 84: ...C glCopyTexSubImage2D Chapter 3 84 glTexParameter glTexSubImage1D glTexSubImage2D ...
Page 93: ...Chapter 4 93 4 D ...
Page 99: ...D glDeleteTextures Chapter 4 99 glTexImage1D glTexImage2D glTexParameter ...
Page 127: ...Chapter 5 127 5 E ...
Page 148: ...E glEvalPoint Chapter 5 148 ...
Page 149: ...Chapter 6 149 6 F ...
Page 161: ...Chapter 7 161 7 G ...
Page 164: ...G glGenTextures Chapter 7 164 glTexImage1D glTexImage2D glTexParameter ...
Page 207: ...G glGetPointer Chapter 7 207 glSelectBuffer glTexCoordPointer glVertexPointer ...
Page 225: ...Chapter 8 225 8 H ...
Page 228: ...H glHint Chapter 8 228 ...
Page 229: ...Chapter 9 229 9 I ...
Page 248: ...I glIsTexture Chapter 9 248 ...
Page 249: ...Chapter 10 249 10 L ...
Page 256: ...L glLightModel Chapter 10 256 See Also glLight glMaterial ...
Page 271: ...Chapter 11 271 11 M ...
Page 291: ...Chapter 12 291 12 N ...
Page 312: ...N gluNurbsSurface Chapter 12 312 ...
Page 313: ...Chapter 13 313 13 O ...
Page 317: ...Chapter 14 317 14 P ...
Page 360: ...P glPushName Chapter 14 360 See Also glInitNames glLoadName glRenderMode glSelectBuffer ...
Page 362: ...P gluPwlCurve Chapter 14 362 ...
Page 363: ...Chapter 15 363 15 Q ...
Page 372: ...Q glXQueryVersion Chapter 15 372 glXQueryVersion ...
Page 373: ...Chapter 16 373 16 R ...
Page 390: ...R glRotate Chapter 16 390 ...
Page 391: ...Chapter 17 391 17 S ...
Page 397: ...S glScissor Chapter 17 397 See Also glEnable glViewport ...
Page 409: ...Chapter 18 409 18 T ...
Page 448: ...T glTexImage3DEXT Chapter 18 448 glTexGen glTexImage1D glTexImage2D glTexParameter ...
Page 457: ...T glTexSubImage1D Chapter 18 457 glTexImage2D glTexParameter glTexSubImage2D ...
Page 465: ...T glTranslate Chapter 18 465 See Also glMatrixMode glMultMatrix glPushMatrix glScale ...
Page 466: ...T glTranslate Chapter 18 466 ...
Page 467: ...Chapter 19 467 19 U ...
Page 469: ...U gluUnProject Chapter 19 469 See Also glGet gluProject ...
Page 471: ...U glXUseXFont Chapter 19 471 See Also glBitmap glXMakeCurrent ...
Page 472: ...U glXUseXFont Chapter 19 472 ...
Page 473: ...Chapter 20 473 20 V ...
Page 482: ...V glVisibilityBufferhp Chapter 20 482 ...
Page 483: ...Chapter 21 483 21 W ...
Page 486: ...W glXWaitX Chapter 21 486 ...