glStencilOp man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

glStencilOp(3G)						       glStencilOp(3G)

       glStencilOp - set stencil test actions

       void glStencilOp(
	       GLenum fail,
	       GLenum zfail,
	       GLenum zpass );

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

       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 follow‐
       ing six actions are possible.  Keeps the current value.	Sets the sten‐
       cil buffer value to 0.  Sets the stencil buffer value to ref, as speci‐
       fied  by glStencilFunc().  Increments the current stencil buffer value.
       Clamps to the maximum representable  unsigned  value.   Decrements  the
       current stencil buffer value. Clamps to 0.  Bitwise inverts the current
       stencil buffer value.

       Stencil buffer values are treated as  unsigned  integers.  When	incre‐
       mented  and decremented, values are clamped to 0 and 2 sup n - 1, where
       n is the value returned by querying GL_STENCIL_BITS.

       The other two arguments to glStencilOp() specify stencil buffer actions
       that depend on whether subsequent depth buffer tests succeed (zpass) or
       fail (zfail) (see glDepthFunc()). The actions are specified  using  the
       same  six  symbolic  constants as fail. Note that zfail is ignored when
       there is no depth buffer, or when the depth buffer is not  enabled.  In
       these  cases,  fail  and	 zpass specify stencil action when the stencil
       test fails and passes, respectively.

       Initially the stencil test is disabled. If there is no stencil  buffer,
       no  stencil  modification  can  occur and it is as if the stencil tests
       always pass, regardless of any call to glStencilOp().

       GL_INVALID_ENUM is generated if fail, zfail,  or	 zpass	is  any	 value
       other than the six defined constant values.

       GL_INVALID_OPERATION  is generated if glStencilOp() is executed between
       the execution of glBegin() and the corresponding execution of glEnd().

       glGet() with argument GL_STENCIL_FAIL
       glGet() with argument GL_STENCIL_PASS_DEPTH_PASS
       glGet() with argument GL_STENCIL_PASS_DEPTH_FAIL
       glGet() with argument GL_STENCIL_BITS
       glIsEnabled() with argument GL_STENCIL_TEST

       glAlphaFunc(3), glBlendFunc(3),	glDepthFunc(3),	 glEnable(3),  glLogi‐
       cOp(3), glStencilFunc(3)


List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net