files/en-us/web/api/webglrenderingcontext/stencilfuncseparate/index.md
{{APIRef("WebGL")}}{{AvailableInWorkers}}
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.
stencilFuncSeparate(face, func, ref, mask)
face
gl.FRONTgl.BACKgl.FRONT_AND_BACKfunc
gl.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.ref
mask
None ({{jsxref("undefined")}}).
The stencil testing is disabled by default. To enable or disable stencil testing, use
the {{domxref("WebGLRenderingContext.enable", "enable()")}} and
{{domxref("WebGLRenderingContext.disable", "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 {{domxref("WebGLRenderingContext.getParameter", "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}}
{{Compat}}