## Name

glStencilMaskSeparate — control the front and/or back writing of individual bits in the stencil planes

## C Specification

`void glStencilMaskSeparate(` | GLenum face,
| GLuint mask`)`;

## Parameters

`face`

  Specifies whether the front and/or back stencil writemask is updated. Three symbolic constants are valid: `GL_FRONT`, `GL_BACK`, and `GL_FRONT_AND_BACK`.

`mask`

  Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1's.

## Description

`glStencilMaskSeparate` controls the writing of individual bits in the stencil planes. The least significant n bits of `mask`, where n is the number of bits in the stencil buffer, specify a mask. Where a 1 appears in the mask, it's possible to write to the corresponding bit in the stencil buffer. Where a 0 appears, the corresponding bit is write-protected. Initially, all bits are enabled for writing.

There can be two separate `mask` writemasks; one affects back-facing polygons, and the other affects front-facing polygons as well as other non-polygon primitives. glStencilMask sets both front and back stencil writemasks to the same values, as if glStencilMaskSeparate were called with `face` set to `GL_FRONT_AND_BACK`.

## Errors

`GL_INVALID_ENUM` is generated if `face` is not one of the accepted tokens.

## Associated Gets

glGet with argument `GL_STENCIL_WRITEMASK`, `GL_STENCIL_BACK_WRITEMASK`, or `GL_STENCIL_BITS`

## Version Support

| OpenGL Version
--- | ---
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5
`glStencilMaskSeparate` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glColorMask, glDepthMask, glStencilFunc, glStencilFuncSeparate, glStencilMask, glStencilOp, glStencilOpSeparate

## Copyright

Copyright © 2006 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.