Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ glstencilfunc(3G) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



glStencilFunc(3G)              OpenGL Reference              glStencilFunc(3G)



NAME
     glStencilFunc - set function and reference value for stencil testing


C SPECIFICATION
     void glStencilFunc( GLenum func,
                         GLint ref,
                         GLuint mask )


PARAMETERS
     func  Specifies the test function.  Eight tokens are valid:  GLNEVER,
           GLLESS, GLLEQUAL, GLGREATER, GLGEQUAL, GLEQUAL, GLNOTEQUAL,
           and GLALWAYS. The initial value is GLALWAYS.

     ref   Specifies the reference value for the stencil test.  ref is clamped
                            n
           to the range [0,2 -1], where n is the number of bitplanes in the
           stencil buffer. The initial value is 0.

     mask  Specifies a mask that is ANDed with both the reference value and
           the stored stencil value when the test is done. The initial value
           is all 1's.

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 reference value and the value in the stencil
     buffer.  To enable and disable the test, call glEnable and glDisable with
     argument GLSTENCILTEST.  To specify actions based on the outcome of the
     stencil test, call glStencilOp.

     func is a symbolic constant that determines the stencil comparison
     function.  It accepts one of eight values, shown in the following list.
     ref is an integer reference value that is used in the stencil comparison.
                                    n
     It is clamped to the range [0,2 -1], where n is the number of bitplanes
     in the stencil buffer.  mask is bitwise ANDed with both the reference
     value and the stored stencil value, with the ANDed values participating
     in the comparison.

     If stencil represents the value stored in the corresponding stencil
     buffer location, the following list shows the effect of each comparison
     function that can be specified by func.  Only if the comparison succeeds
     is the pixel passed through to the next stage in the rasterization
     process (see glStencilOp).  All tests treat stencil values as unsigned
                               n
     integers in the range [0,2 -1], where n is the number of bitplanes in the
     stencil buffer.



                                                                        Page 1





glStencilFunc(3G)              OpenGL Reference              glStencilFunc(3G)



     The following values are accepted by func:

     GLNEVER          Always fails.

     GLLESS           Passes if ( ref & mask ) < ( stencil & mask ).

     GLLEQUAL         Passes if ( ref & mask ) < ( stencil & mask ).

     GLGREATER        Passes if ( ref & mask ) > ( stencil & mask ).

     GLGEQUAL         Passes if ( ref & mask ) > ( stencil & mask ).

     GLEQUAL          Passes if ( ref & mask ) = ( stencil & mask ).

     GLNOTEQUAL       Passes if ( ref & mask ) ≠  ( stencil & mask ).

     GLALWAYS         Always passes.

NOTES
     Initially, the stencil test is disabled.  If there is no stencil buffer,
     no stencil modification can occur and it is as if the stencil test always
     passes.

ERRORS
     GLINVALIDENUM is generated if func is not one of the eight accepted
     values.

     GLINVALIDOPERATION is generated if glStencilFunc is executed between
     the execution of glBegin and the corresponding execution of glEnd.

ASSOCIATED GETS
     glGet with argument GLSTENCILFUNC
     glGet with argument GLSTENCILVALUEMASK
     glGet with argument GLSTENCILREF
     glGet with argument GLSTENCILBITS
     glIsEnabled with argument GLSTENCILTEST


SEE ALSO
     glAlphaFunc, glBlendFunc, glDepthFunc, glEnable, glIsEnabled, glLogicOp,
     glStencilOp














                                                                        Page 2


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026