MirBSD manpage: glStencilFunc(3)


GLSTENCILFUNC(3G)   UNIX Programmer's Manual    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:
           GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL,
           GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial
           value is GL_ALWAYS.

     ref   Specifies the reference value for the stencil test.
           ref is clamped to the range [0,2n-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 draw-
     ing 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, out-
     lining, 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
     GL_STENCIL_TEST. To specify actions based on the outcome of
     the stencil test, call glStencilOp.

     func is a symbolic constant that determines the stencil com-
     parison 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. It is clamped to the
     range [0,2n-1], where n is the number of bitplanes in the
     stencil buffer. mask is bitwise ANDed with both the refer-
     ence value and the stored stencil value, with the ANDed
     values participating in the comparison.

MirBSD #10-current     Printed 2021-12-07                       1

GLSTENCILFUNC(3G)   UNIX Programmer's Manual    GLSTENCILFUNC(3G)

     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
     integers in the range [0,2n-1], where n is the number of
     bitplanes in the stencil buffer.

     The following values are accepted by func:

     GL_NEVER          Always fails.

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

     GL_LEQUAL         Passes if ( ref & mask ) ≤ ( stencil &
                       mask ).

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

     GL_GEQUAL         Passes if ( ref & mask ) ≥ ( stencil &
                       mask ).

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

     GL_NOTEQUAL       Passes if ( ref & mask ) /  ( stencil &
                       mask ).

     GL_ALWAYS         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

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

     GL_INVALID_OPERATION is generated if glStencilFunc is exe-
     cuted between the execution of glBegin and the corresponding
     execution of glEnd.

ASSOCIATED GETS

     glGet with argument GL_STENCIL_FUNC
     glGet with argument GL_STENCIL_VALUE_MASK
     glGet with argument GL_STENCIL_REF
     glGet with argument GL_STENCIL_BITS
     glIsEnabled with argument GL_STENCIL_TEST

MirBSD #10-current     Printed 2021-12-07                       2

GLSTENCILFUNC(3G)   UNIX Programmer's Manual    GLSTENCILFUNC(3G)

SEE ALSO

     glAlphaFunc(3G), glBlendFunc(3G), glDepthFunc(3G),
     glEnable(3G), glIsEnabled(3G), glLogicOp(3G),
     glStencilOp(3G)

MirBSD #10-current     Printed 2021-12-07                       3

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.