# glEnable

## Name

glEnable — enable or disable server-side GL capabilities

## C Specification

 void glEnable( GLenum cap);

 void glDisable( GLenum cap);

## Parameters

cap

Specifies a symbolic constant indicating a GL capability.

## Description

glEnable and glDisable enable and disable various capabilities. Use glIsEnabled or glGet to determine the current setting of any capability. The initial value for each capability with the exception of GL_DITHER is GL_FALSE. The initial value for GL_DITHER is GL_TRUE.

Both glEnable and glDisable take a single argument, cap, which can assume one of the following values:

GL_BLEND

If enabled, blend the computed fragment color values with the values in the color buffers. See glBlendFunc.

GL_CULL_FACE

If enabled, cull polygons based on their winding in window coordinates. See glCullFace.

GL_DEPTH_TEST

If enabled, do depth comparisons and update the depth buffer. Note that even if the depth buffer exists and the depth mask is non-zero, the depth buffer is not updated if the depth test is disabled. See glDepthFunc and glDepthRangef.

GL_DITHER

If enabled, dither color components or indices before they are written to the color buffer.

GL_POLYGON_OFFSET_FILL

If enabled, an offset is added to depth values of a polygon's fragments before the depth comparison is performed. See glPolygonOffset.

GL_PRIMITIVE_RESTART_FIXED_INDEX

Enables primitive restarting. If enabled, any one of the draw commands which transfers a set of generic attribute array elements to the GL will restart the primitive when the index of the vertex is equal to $2 n − 1$ where n is 8, 16 or 32 if the type is GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT, respectively.

GL_RASTERIZER_DISCARD

If enabled, primitives are discarded immediately before the rasterization stage, but after the optional transform feedback stage. glClear and glClearBuffer* commands are also ignored.

GL_SAMPLE_ALPHA_TO_COVERAGE

If enabled, compute a temporary coverage value where each bit is determined by the alpha value at the corresponding sample location. The temporary coverage value is then ANDed with the fragment coverage value.

GL_SAMPLE_COVERAGE

If enabled, the fragment's coverage is ANDed with the temporary coverage value. If GL_SAMPLE_COVERAGE_INVERT is set to GL_TRUE, invert the coverage value. See glSampleCoverage.

GL_SAMPLE_MASK

If enabled, the fragment's coverage is ANDed with the coverage value GL_SAMPLE_MASK_VALUE. See glSampleMaski.

GL_SCISSOR_TEST

If enabled, discard fragments that are outside the scissor rectangle. See glScissor.

GL_STENCIL_TEST

If enabled, do stencil testing and update the stencil buffer. See glStencilFunc and glStencilOp.

## Errors

GL_INVALID_ENUM is generated if cap is not one of the values listed previously.

## API Version Support

OpenGL ES API Version
Function Name 2.0 3.0 3.1
glEnable
glDisable