web api instance method
WebGLRenderingContext: stencilFuncSeparate() method
Available in workers
The WebGLRenderingContext.stencilFuncSeparate() method of
the WebGL API sets the front and/or back
function and reference value for stencil testing.
Stencilling enables and disables drawing on a per-pixel basis. It is typically used in multipass rendering to achieve special effects.
Syntax
stencilFuncSeparate(face, func, ref, mask)
Parameters
-
face- : A
GLenumspecifying whether the front and/or back stencil state is updated. The possible values are:gl.FRONTgl.BACKgl.FRONT_AND_BACK
- : A
-
func- : A
GLenumspecifying the test function. The default function isgl.ALWAYS. The possible values are:gl.NEVER: Never pass.gl.LESS: Pass if(ref & mask) < (stencil & mask).gl.EQUAL: Pass if(ref & mask) = (stencil & mask).gl.LEQUAL: Pass if(ref & mask) <= (stencil & mask).gl.GREATER: Pass if(ref & mask) > (stencil & mask).gl.NOTEQUAL: Pass if(ref & mask) !== (stencil & mask).gl.GEQUAL: Pass if(ref & mask) >= (stencil & mask).gl.ALWAYS: Always pass.
- : A
-
ref- : A
GLintspecifying the reference value for the stencil test. This value is clamped to the range 0 to 2^n - 1 where n is the number of bitplanes in the stencil buffer. The default value is 0.
- : A
-
mask- : A
GLuintspecifying a bit-wise mask that is used to AND the reference value and the stored stencil value when the test is done. The default value is all 1.
- : A
Return value
None (undefined).
Examples
The stencil testing is disabled by default. To enable or disable stencil testing, use
the enable() and
disable() methods with the argument
gl.STENCIL_TEST.
gl.enable(gl.STENCIL_TEST);
gl.stencilFuncSeparate(gl.FRONT, gl.LESS, 0.2, 1110011);
To get the current stencil function, reference value, or other stencil information,
query the following constants with getParameter().
gl.getParameter(gl.STENCIL_FUNC);
gl.getParameter(gl.STENCIL_VALUE_MASK);
gl.getParameter(gl.STENCIL_REF);
gl.getParameter(gl.STENCIL_BACK_FUNC);
gl.getParameter(gl.STENCIL_BACK_VALUE_MASK);
gl.getParameter(gl.STENCIL_BACK_REF);
gl.getParameter(gl.STENCIL_BITS);
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.