WebGL constants
===============

The WebGL API provides several constants that are passed into or returned by functions. All constants are of type `GLenum`.

Standard WebGL constants are installed on the `WebGLRenderingContext` and `WebGL2RenderingContext` objects, so that you use them as `gl.CONSTANT_NAME`:


```js
const canvas = document.getElementById("myCanvas");
const gl = canvas.getContext("webgl");

gl.getParameter(gl.LINE\_WIDTH);
```


Some constants are also provided by WebGL extensions. A list is provided below.


```js
const debugInfo = gl.getExtension("WEBGL\_debug\_renderer\_info");
const vendor = gl.getParameter(debugInfo.UNMASKED\_VENDOR\_WEBGL);
```


The WebGL tutorial has more information, examples, and resources on how to get started with WebGL.

Table of contents
-----------------

* Standard WebGL 1 constants
* Standard WebGL 2 constants
* WebGL extension constants
Standard WebGL 1 constants
--------------------------

These constants are defined on the `WebGLRenderingContext` interface.

### Clearing buffers

Constants passed to `WebGLRenderingContext.clear()` to clear buffer masks.

| Constant name | Value | Description |
| --- | --- | --- |
| `DEPTH_BUFFER_BIT` | 0x00000100 | Passed to `clear` to clear the current depth buffer. |
| `STENCIL_BUFFER_BIT` | 0x00000400 | Passed to `clear` to clear the current stencil buffer. |
| `COLOR_BUFFER_BIT` | 0x00004000 | Passed to `clear` to clear the current color buffer. |

### Rendering primitives

Constants passed to `WebGLRenderingContext.drawElements()` or `WebGLRenderingContext.drawArrays()` to specify what kind of primitive to render.

| Constant name | Value | Description |
| --- | --- | --- |
| `POINTS` | 0x0000 | 
 Passed to `drawElements` or `drawArrays` to draw
 single points.
  |
| `LINES` | 0x0001 | 
 Passed to `drawElements` or `drawArrays` to draw
 lines. Each vertex connects to the one after it.
  |
| `LINE_LOOP` | 0x0002 | 
 Passed to `drawElements` or `drawArrays` to draw
 lines. Each set of two vertices is treated as a separate line segment.
  |
| `LINE_STRIP` | 0x0003 | 
 Passed to `drawElements` or `drawArrays` to draw a
 connected group of line segments from the first vertex to the last.
  |
| `TRIANGLES` | 0x0004 | 
 Passed to `drawElements` or `drawArrays` to draw
 triangles. Each set of three vertices creates a separate triangle.
  |
| `TRIANGLE_STRIP` | 0x0005 | 
 Passed to `drawElements` or `drawArrays` to draw a
 connected group of triangles.
  |
| `TRIANGLE_FAN` | 0x0006 | 
 Passed to `drawElements` or `drawArrays` to draw a
 connected group of triangles. Each vertex connects to the previous and
 the first vertex in the fan.
  |

### Blending modes

Constants passed to `WebGLRenderingContext.blendFunc()` or `WebGLRenderingContext.blendFuncSeparate()` to specify the blending mode (for both, RGB and alpha, or separately).

| Constant name | Value | Description |
| --- | --- | --- |
| `ZERO` | 0 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 turn off a component.
  |
| `ONE` | 1 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 turn on a component.
  |
| `SRC_COLOR` | 0x0300 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by the source elements color.
  |
| `ONE_MINUS_SRC_COLOR` | 0x0301 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by one minus the source elements color.
  |
| `SRC_ALPHA` | 0x0302 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by the source's alpha.
  |
| `ONE_MINUS_SRC_ALPHA` | 0x0303 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by one minus the source's alpha.
  |
| `DST_ALPHA` | 0x0304 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by the destination's alpha.
  |
| `ONE_MINUS_DST_ALPHA` | 0x0305 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by one minus the destination's alpha.
  |
| `DST_COLOR` | 0x0306 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by the destination's color.
  |
| `ONE_MINUS_DST_COLOR` | 0x0307 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by one minus the destination's color.
  |
| `SRC_ALPHA_SATURATE` | 0x0308 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 multiply a component by the minimum of source's alpha or one minus the
 destination's alpha.
  |
| `CONSTANT_COLOR` | 0x8001 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 specify a constant color blend function.
  |
| `ONE_MINUS_CONSTANT_COLOR` | 0x8002 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 specify one minus a constant color blend function.
  |
| `CONSTANT_ALPHA` | 0x8003 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 specify a constant alpha blend function.
  |
| `ONE_MINUS_CONSTANT_ALPHA` | 0x8004 | 
 Passed to `blendFunc` or `blendFuncSeparate` to
 specify one minus a constant alpha blend function.
  |

### Blending equations

Constants passed to `WebGLRenderingContext.blendEquation()` or `WebGLRenderingContext.blendEquationSeparate()` to control how the blending is calculated (for both, RGB and alpha, or separately).

| Constant name | Value | Description |
| --- | --- | --- |
| `FUNC_ADD` | 0x8006 | 
 Passed to `blendEquation` or
 `blendEquationSeparate` to set an addition blend function.
  |
| `FUNC_SUBTRACT` | 0x800A | 
 Passed to `blendEquation` or
 `blendEquationSeparate` to specify a subtraction blend
 function (source - destination).
  |
| `FUNC_REVERSE_SUBTRACT` | 0x800B | 
 Passed to `blendEquation` or
 `blendEquationSeparate` to specify a reverse subtraction
 blend function (destination - source).
  |

### Getting GL parameter information

Constants passed to `WebGLRenderingContext.getParameter()` to specify what information to return.

| Constant name | Value | Description |
| --- | --- | --- |
| `BLEND_EQUATION` | 0x8009 | 
 Passed to `getParameter` to get the current RGB blend
 function.
  |
| `BLEND_EQUATION_RGB` | 0x8009 | 
 Passed to `getParameter` to get the current RGB blend
 function. Same as BLEND\_EQUATION
  |
| `BLEND_EQUATION_ALPHA` | 0x883D | 
 Passed to `getParameter` to get the current alpha blend
 function.
  |
| `BLEND_DST_RGB` | 0x80C8 | 
 Passed to `getParameter` to get the current destination RGB
 blend function.
  |
| `BLEND_SRC_RGB` | 0x80C9 | 
 Passed to `getParameter` to get the current destination RGB
 blend function.
  |
| `BLEND_DST_ALPHA` | 0x80CA | 
 Passed to `getParameter` to get the current destination alpha
 blend function.
  |
| `BLEND_SRC_ALPHA` | 0x80CB | 
 Passed to `getParameter` to get the current source alpha
 blend function.
  |
| `BLEND_COLOR` | 0x8005 | Passed to `getParameter` to return a the current blend color. |
| `ARRAY_BUFFER_BINDING` | 0x8894 | Passed to `getParameter` to get the array buffer binding. |
| `ELEMENT_ARRAY_BUFFER_BINDING` | 0x8895 | 
 Passed to `getParameter` to get the current element array
 buffer.
  |
| `LINE_WIDTH` | 0x0B21 | 
 Passed to `getParameter` to get the current
 `lineWidth` (set by the `lineWidth` method).
  |
| `ALIASED_POINT_SIZE_RANGE` | 0x846D | 
 Passed to `getParameter` to get the current size of a point
 drawn with `gl.POINTS` |
| `ALIASED_LINE_WIDTH_RANGE` | 0x846E | 
 Passed to `getParameter` to get the range of available widths
 for a line. Returns a length-2 array with the lo value at 0, and hight
 at 1.
  |
| `CULL_FACE_MODE` | 0x0B45 | 
 Passed to `getParameter` to get the current value of
 `cullFace`. Should return `FRONT`,
 `BACK`, or `FRONT_AND_BACK` |
| `FRONT_FACE` | 0x0B46 | 
 Passed to `getParameter` to determine the current value of
 `frontFace`. Should return `CW` or
 `CCW`.
  |
| `DEPTH_RANGE` | 0x0B70 | 
 Passed to `getParameter` to return a length-2 array of floats
 giving the current depth range.
  |
| `DEPTH_WRITEMASK` | 0x0B72 | 
 Passed to `getParameter` to determine if the depth write mask
 is enabled.
  |
| `DEPTH_CLEAR_VALUE` | 0x0B73 | 
 Passed to `getParameter` to determine the current depth clear
 value.
  |
| `DEPTH_FUNC` | 0x0B74 | 
 Passed to `getParameter` to get the current depth function.
 Returns `NEVER`, `ALWAYS`, `LESS`,
 `EQUAL`, `LEQUAL`, `GREATER`,
 `GEQUAL`, or `NOTEQUAL`.
  |
| `STENCIL_CLEAR_VALUE` | 0x0B91 | 
 Passed to `getParameter` to get the value the stencil will be
 cleared to.
  |
| `STENCIL_FUNC` | 0x0B92 | 
 Passed to `getParameter` to get the current stencil function.
 Returns `NEVER`, `ALWAYS`, `LESS`,
 `EQUAL`, `LEQUAL`, `GREATER`,
 `GEQUAL`, or `NOTEQUAL`.
  |
| `STENCIL_FAIL` | 0x0B94 | 
 Passed to `getParameter` to get the current stencil fail
 function. Should return `KEEP`, `REPLACE`,
 `INCR`, `DECR`, `INVERT`,
 `INCR_WRAP`, or `DECR_WRAP`.
  |
| `STENCIL_PASS_DEPTH_FAIL` | 0x0B95 | 
 Passed to `getParameter` to get the current stencil fail
 function should the depth buffer test fail. Should return
 `KEEP`, `REPLACE`, `INCR`,
 `DECR`, `INVERT`, `INCR_WRAP`, or
 `DECR_WRAP`.
  |
| `STENCIL_PASS_DEPTH_PASS` | 0x0B96 | 
 Passed to `getParameter` to get the current stencil fail
 function should the depth buffer test pass. Should return KEEP, REPLACE,
 INCR, DECR, INVERT, INCR\_WRAP, or DECR\_WRAP.
  |
| `STENCIL_REF` | 0x0B97 | 
 Passed to `getParameter` to get the reference value used for
 stencil tests.
  |
| `STENCIL_VALUE_MASK` | 0x0B93 |  |
| `STENCIL_WRITEMASK` | 0x0B98 |  |
| `STENCIL_BACK_FUNC` | 0x8800 |  |
| `STENCIL_BACK_FAIL` | 0x8801 |  |
| `STENCIL_BACK_PASS_DEPTH_FAIL` | 0x8802 |  |
| `STENCIL_BACK_PASS_DEPTH_PASS` | 0x8803 |  |
| `STENCIL_BACK_REF` | 0x8CA3 |  |
| `STENCIL_BACK_VALUE_MASK` | 0x8CA4 |  |
| `STENCIL_BACK_WRITEMASK` | 0x8CA5 |  |
| `VIEWPORT` | 0x0BA2 | 
 Returns an `Int32Array` with four elements for the
 current viewport dimensions.
  |
| `SCISSOR_BOX` | 0x0C10 | 
 Returns an `Int32Array` with four elements for the
 current scissor box dimensions.
  |
| `COLOR_CLEAR_VALUE` | 0x0C22 |  |
| `COLOR_WRITEMASK` | 0x0C23 |  |
| `UNPACK_ALIGNMENT` | 0x0CF5 |  |
| `PACK_ALIGNMENT` | 0x0D05 |  |
| `MAX_TEXTURE_SIZE` | 0x0D33 |  |
| `MAX_VIEWPORT_DIMS` | 0x0D3A |  |
| `SUBPIXEL_BITS` | 0x0D50 |  |
| `RED_BITS` | 0x0D52 |  |
| `GREEN_BITS` | 0x0D53 |  |
| `BLUE_BITS` | 0x0D54 |  |
| `ALPHA_BITS` | 0x0D55 |  |
| `DEPTH_BITS` | 0x0D56 |  |
| `STENCIL_BITS` | 0x0D57 |  |
| `POLYGON_OFFSET_UNITS` | 0x2A00 |  |
| `POLYGON_OFFSET_FACTOR` | 0x8038 |  |
| `TEXTURE_BINDING_2D` | 0x8069 |  |
| `SAMPLE_BUFFERS` | 0x80A8 |  |
| `SAMPLES` | 0x80A9 |  |
| `SAMPLE_COVERAGE_VALUE` | 0x80AA |  |
| `SAMPLE_COVERAGE_INVERT` | 0x80AB |  |
| `COMPRESSED_TEXTURE_FORMATS` | 0x86A3 |  |
| `VENDOR` | 0x1F00 |  |
| `RENDERER` | 0x1F01 |  |
| `VERSION` | 0x1F02 |  |
| `IMPLEMENTATION_COLOR_READ_TYPE` | 0x8B9A |  |
| `IMPLEMENTATION_COLOR_READ_FORMAT` | 0x8B9B |  |
| `BROWSER_DEFAULT_WEBGL` | 0x9244 |  |

### Buffers

Constants passed to `WebGLRenderingContext.bufferData()`, `WebGLRenderingContext.bufferSubData()`, `WebGLRenderingContext.bindBuffer()`, or `WebGLRenderingContext.getBufferParameter()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `STATIC_DRAW` | 0x88E4 | 
 Passed to `bufferData` as a hint about whether the contents
 of the buffer are likely to be used often and not change often.
  |
| `STREAM_DRAW` | 0x88E0 | 
 Passed to `bufferData` as a hint about whether the contents
 of the buffer are likely to not be used often.
  |
| `DYNAMIC_DRAW` | 0x88E8 | 
 Passed to `bufferData` as a hint about whether the contents
 of the buffer are likely to be used often and change often.
  |
| `ARRAY_BUFFER` | 0x8892 | 
 Passed to `bindBuffer` or `bufferData` to specify
 the type of buffer being used.
  |
| `ELEMENT_ARRAY_BUFFER` | 0x8893 | 
 Passed to `bindBuffer` or `bufferData` to specify
 the type of buffer being used.
  |
| `BUFFER_SIZE` | 0x8764 | Passed to `getBufferParameter` to get a buffer's size. |
| `BUFFER_USAGE` | 0x8765 | 
 Passed to `getBufferParameter` to get the hint for the buffer
 passed in when it was created.
  |

### Vertex attributes

Constants passed to `WebGLRenderingContext.getVertexAttrib()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `CURRENT_VERTEX_ATTRIB` | 0x8626 | Passed to `getVertexAttrib` to read back the current vertex attribute. |
| `VERTEX_ATTRIB_ARRAY_ENABLED` | 0x8622 |  |
| `VERTEX_ATTRIB_ARRAY_SIZE` | 0x8623 |  |
| `VERTEX_ATTRIB_ARRAY_STRIDE` | 0x8624 |  |
| `VERTEX_ATTRIB_ARRAY_TYPE` | 0x8625 |  |
| `VERTEX_ATTRIB_ARRAY_NORMALIZED` | 0x886A |  |
| `VERTEX_ATTRIB_ARRAY_POINTER` | 0x8645 |  |
| `VERTEX_ATTRIB_ARRAY_BUFFER_BINDING` | 0x889F |  |

### Culling

Constants passed to `WebGLRenderingContext.cullFace()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `CULL_FACE` | 0x0B44 | 
 Passed to `enable`/`disable` to turn on/off
 culling. Can also be used with `getParameter` to find the
 current culling method.
  |
| `FRONT` | 0x0404 | 
 Passed to `cullFace` to specify that only front faces should
 be culled.
  |
| `BACK` | 0x0405 | 
 Passed to `cullFace` to specify that only back faces should
 be culled.
  |
| `FRONT_AND_BACK` | 0x0408 | 
 Passed to `cullFace` to specify that front and back faces
 should be culled.
  |

### Enabling and disabling

Constants passed to `WebGLRenderingContext.enable()` or `WebGLRenderingContext.disable()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `BLEND` | 0x0BE2 | 
 Passed to `enable`/`disable` to turn on/off
 blending. Can also be used with `getParameter` to find the
 current blending method.
  |
| `DEPTH_TEST` | 0x0B71 | 
 Passed to `enable`/`disable` to turn on/off the
 depth test. Can also be used with `getParameter` to query the
 depth test.
  |
| `DITHER` | 0x0BD0 | 
 Passed to `enable`/`disable` to turn on/off
 dithering. Can also be used with `getParameter` to find the
 current dithering method.
  |
| `POLYGON_OFFSET_FILL` | 0x8037 | 
 Passed to `enable`/`disable` to turn on/off the
 polygon offset. Useful for rendering hidden-line images, decals, and or
 solids with highlighted edges. Can also be used with
 `getParameter` to query the scissor test.
  |
| `SAMPLE_ALPHA_TO_COVERAGE` | 0x809E | 
 Passed to `enable`/`disable` to turn on/off the
 alpha to coverage. Used in multi-sampling alpha channels.
  |
| `SAMPLE_COVERAGE` | 0x80A0 | 
 Passed to `enable`/`disable` to turn on/off the
 sample coverage. Used in multi-sampling.
  |
| `SCISSOR_TEST` | 0x0C11 | 
 Passed to `enable`/`disable` to turn on/off the
 scissor test. Can also be used with `getParameter` to query
 the scissor test.
  |
| `STENCIL_TEST` | 0x0B90 | 
 Passed to `enable`/`disable` to turn on/off the
 stencil test. Can also be used with `getParameter` to query
 the stencil test.
  |

### Errors

Constants returned from `WebGLRenderingContext.getError()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `NO_ERROR` | 0 | Returned from `getError`. |
| `INVALID_ENUM` | 0x0500 | Returned from `getError`. |
| `INVALID_VALUE` | 0x0501 | Returned from `getError`. |
| `INVALID_OPERATION` | 0x0502 | Returned from `getError`. |
| `OUT_OF_MEMORY` | 0x0505 | Returned from `getError`. |
| `CONTEXT_LOST_WEBGL` | 0x9242 | Returned from `getError`. |

### Front face directions

Constants passed to `WebGLRenderingContext.frontFace()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `CW` | 0x0900 | Passed to `frontFace` to specify the front face of a polygon is drawn in the clockwise direction |
| `CCW` | 0x0901 | Passed to `frontFace` to specify the front face of a polygon is drawn in the counter clockwise direction |

### Hints

Constants passed to `WebGLRenderingContext.hint()`

| Constant name | Value | Description |
| --- | --- | --- |
| `DONT_CARE` | 0x1100 | There is no preference for this behavior. |
| `FASTEST` | 0x1101 | The most efficient behavior should be used. |
| `NICEST` | 0x1102 | The most correct or the highest quality option should be used. |
| `GENERATE_MIPMAP_HINT` | 0x8192 | 
 Hint for the quality of filtering when generating mipmap images with
 `WebGLRenderingContext.generateMipmap()`.
  |

### Data types

| Constant name | Value | Description |
| --- | --- | --- |
| `BYTE` | 0x1400 |  |
| `UNSIGNED_BYTE` | 0x1401 |  |
| `SHORT` | 0x1402 |  |
| `UNSIGNED_SHORT` | 0x1403 |  |
| `INT` | 0x1404 |  |
| `UNSIGNED_INT` | 0x1405 |  |
| `FLOAT` | 0x1406 |  |

### Pixel formats

| Constant name | Value | Description |
| --- | --- | --- |
| `DEPTH_COMPONENT` | 0x1902 |  |
| `ALPHA` | 0x1906 |  |
| `RGB` | 0x1907 |  |
| `RGBA` | 0x1908 |  |
| `LUMINANCE` | 0x1909 |  |
| `LUMINANCE_ALPHA` | 0x190A |  |

### Pixel types

| Constant name | Value | Description |
| --- | --- | --- |
| `UNSIGNED_BYTE` | 0x1401 |  |
| `UNSIGNED_SHORT_4_4_4_4` | 0x8033 |  |
| `UNSIGNED_SHORT_5_5_5_1` | 0x8034 |  |
| `UNSIGNED_SHORT_5_6_5` | 0x8363 |  |

### Shaders

Constants passed to `WebGLRenderingContext.createShader()` or `WebGLRenderingContext.getShaderParameter()`

| Constant name | Value | Description |
| --- | --- | --- |
| `FRAGMENT_SHADER` | 0x8B30 | Passed to `createShader` to define a fragment shader. |
| `VERTEX_SHADER` | 0x8B31 | Passed to `createShader` to define a vertex shader |
| `COMPILE_STATUS` | 0x8B81 | 
 Passed to `getShaderParameter` to get the status of the
 compilation. Returns false if the shader was not compiled. You can then
 query `getShaderInfoLog` to find the exact error
  |
| `DELETE_STATUS` | 0x8B80 | 
 Passed to `getShaderParameter` to determine if a shader was
 deleted via `deleteShader`. Returns true if it was, false
 otherwise.
  |
| `LINK_STATUS` | 0x8B82 | 
 Passed to `getProgramParameter` after calling
 `linkProgram` to determine if a program was linked correctly.
 Returns false if there were errors. Use
 `getProgramInfoLog` to find the exact error.
  |
| `VALIDATE_STATUS` | 0x8B83 | 
 Passed to `getProgramParameter` after calling
 `validateProgram` to determine if it is valid. Returns false
 if errors were found.
  |
| `ATTACHED_SHADERS` | 0x8B85 | 
 Passed to `getProgramParameter` after calling
 `attachShader` to determine if the shader was attached
 correctly. Returns false if errors occurred.
  |
| `ACTIVE_ATTRIBUTES` | 0x8B89 | 
 Passed to `getProgramParameter` to get the number of
 attributes active in a program.
  |
| `ACTIVE_UNIFORMS` | 0x8B86 | 
 Passed to `getProgramParameter` to get the number of uniforms
 active in a program.
  |
| `MAX_VERTEX_ATTRIBS` | 0x8869 | The maximum number of entries possible in the vertex attribute list. |
| `MAX_VERTEX_UNIFORM_VECTORS` | 0x8DFB |  |
| `MAX_VARYING_VECTORS` | 0x8DFC |  |
| `MAX_COMBINED_TEXTURE_IMAGE_UNITS` | 0x8B4D |  |
| `MAX_VERTEX_TEXTURE_IMAGE_UNITS` | 0x8B4C |  |
| `MAX_TEXTURE_IMAGE_UNITS` | 0x8872 | Implementation dependent number of maximum texture units. At least 8. |
| `MAX_FRAGMENT_UNIFORM_VECTORS` | 0x8DFD |  |
| `SHADER_TYPE` | 0x8B4F |  |
| `SHADING_LANGUAGE_VERSION` | 0x8B8C |  |
| `CURRENT_PROGRAM` | 0x8B8D |  |

### Depth or stencil tests

Constants passed to `WebGLRenderingContext.depthFunc()` or `WebGLRenderingContext.stencilFunc()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `NEVER` | 0x0200 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will never pass, i.e., nothing will be
 drawn.
  |
| `LESS` | 0x0201 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will pass if the new depth value is less
 than the stored value.
  |
| `EQUAL` | 0x0202 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will pass if the new depth value is
 equals to the stored value.
  |
| `LEQUAL` | 0x0203 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will pass if the new depth value is less
 than or equal to the stored value.
  |
| `GREATER` | 0x0204 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will pass if the new depth value is
 greater than the stored value.
  |
| `NOTEQUAL` | 0x0205 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will pass if the new depth value is not
 equal to the stored value.
  |
| `GEQUAL` | 0x0206 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will pass if the new depth value is
 greater than or equal to the stored value.
  |
| `ALWAYS` | 0x0207 | 
 Passed to `depthFunction` or `stencilFunction` to
 specify depth or stencil tests will always pass, i.e., pixels will be
 drawn in the order they are drawn.
  |

### Stencil actions

Constants passed to `WebGLRenderingContext.stencilOp()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `KEEP` | 0x1E00 |  |
| `REPLACE` | 0x1E01 |  |
| `INCR` | 0x1E02 |  |
| `DECR` | 0x1E03 |  |
| `INVERT` | 0x150A |  |
| `INCR_WRAP` | 0x8507 |  |
| `DECR_WRAP` | 0x8508 |  |

### Textures

Constants passed to `WebGLRenderingContext.texParameteri()`, `WebGLRenderingContext.texParameterf()`, `WebGLRenderingContext.bindTexture()`, `WebGLRenderingContext.texImage2D()`, and others.

| Constant name | Value | Description |
| --- | --- | --- |
| `NEAREST` | 0x2600 |  |
| `LINEAR` | 0x2601 |  |
| `NEAREST_MIPMAP_NEAREST` | 0x2700 |  |
| `LINEAR_MIPMAP_NEAREST` | 0x2701 |  |
| `NEAREST_MIPMAP_LINEAR` | 0x2702 |  |
| `LINEAR_MIPMAP_LINEAR` | 0x2703 |  |
| `TEXTURE_MAG_FILTER` | 0x2800 |  |
| `TEXTURE_MIN_FILTER` | 0x2801 |  |
| `TEXTURE_WRAP_S` | 0x2802 |  |
| `TEXTURE_WRAP_T` | 0x2803 |  |
| `TEXTURE_2D` | 0x0DE1 |  |
| `TEXTURE` | 0x1702 |  |
| `TEXTURE_CUBE_MAP` | 0x8513 |  |
| `TEXTURE_BINDING_CUBE_MAP` | 0x8514 |  |
| `TEXTURE_CUBE_MAP_POSITIVE_X` | 0x8515 |  |
| `TEXTURE_CUBE_MAP_NEGATIVE_X` | 0x8516 |  |
| `TEXTURE_CUBE_MAP_POSITIVE_Y` | 0x8517 |  |
| `TEXTURE_CUBE_MAP_NEGATIVE_Y` | 0x8518 |  |
| `TEXTURE_CUBE_MAP_POSITIVE_Z` | 0x8519 |  |
| `TEXTURE_CUBE_MAP_NEGATIVE_Z` | 0x851A |  |
| `MAX_CUBE_MAP_TEXTURE_SIZE` | 0x851C |  |
| `TEXTURE0 - 31` | 0x84C0 - 0x84DF | A texture unit. |
| `ACTIVE_TEXTURE` | 0x84E0 | The current active texture unit. |
| `REPEAT` | 0x2901 |  |
| `CLAMP_TO_EDGE` | 0x812F |  |
| `MIRRORED_REPEAT` | 0x8370 |  |

### Uniform types

| Constant name | Value | Description |
| --- | --- | --- |
| `FLOAT_VEC2` | 0x8B50 |  |
| `FLOAT_VEC3` | 0x8B51 |  |
| `FLOAT_VEC4` | 0x8B52 |  |
| `INT_VEC2` | 0x8B53 |  |
| `INT_VEC3` | 0x8B54 |  |
| `INT_VEC4` | 0x8B55 |  |
| `BOOL` | 0x8B56 |  |
| `BOOL_VEC2` | 0x8B57 |  |
| `BOOL_VEC3` | 0x8B58 |  |
| `BOOL_VEC4` | 0x8B59 |  |
| `FLOAT_MAT2` | 0x8B5A |  |
| `FLOAT_MAT3` | 0x8B5B |  |
| `FLOAT_MAT4` | 0x8B5C |  |
| `SAMPLER_2D` | 0x8B5E |  |
| `SAMPLER_CUBE` | 0x8B60 |  |

### Shader precision-specified types

| Constant name | Value | Description |
| --- | --- | --- |
| `LOW_FLOAT` | 0x8DF0 |  |
| `MEDIUM_FLOAT` | 0x8DF1 |  |
| `HIGH_FLOAT` | 0x8DF2 |  |
| `LOW_INT` | 0x8DF3 |  |
| `MEDIUM_INT` | 0x8DF4 |  |
| `HIGH_INT` | 0x8DF5 |  |

### Framebuffers and renderbuffers

| Constant name | Value | Description |
| --- | --- | --- |
| `FRAMEBUFFER` | 0x8D40 |  |
| `RENDERBUFFER` | 0x8D41 |  |
| `RGBA4` | 0x8056 |  |
| `RGB5_A1` | 0x8057 |  |
| `RGB565` | 0x8D62 |  |
| `DEPTH_COMPONENT16` | 0x81A5 |  |
| `STENCIL_INDEX8` | 0x8D48 |  |
| `DEPTH_STENCIL` | 0x84F9 |  |
| `RENDERBUFFER_WIDTH` | 0x8D42 |  |
| `RENDERBUFFER_HEIGHT` | 0x8D43 |  |
| `RENDERBUFFER_INTERNAL_FORMAT` | 0x8D44 |  |
| `RENDERBUFFER_RED_SIZE` | 0x8D50 |  |
| `RENDERBUFFER_GREEN_SIZE` | 0x8D51 |  |
| `RENDERBUFFER_BLUE_SIZE` | 0x8D52 |  |
| `RENDERBUFFER_ALPHA_SIZE` | 0x8D53 |  |
| `RENDERBUFFER_DEPTH_SIZE` | 0x8D54 |  |
| `RENDERBUFFER_STENCIL_SIZE` | 0x8D55 |  |
| `FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE` | 0x8CD0 |  |
| `FRAMEBUFFER_ATTACHMENT_OBJECT_NAME` | 0x8CD1 |  |
| `FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL` | 0x8CD2 |  |
| `FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE` | 0x8CD3 |  |
| `COLOR_ATTACHMENT0` | 0x8CE0 |  |
| `DEPTH_ATTACHMENT` | 0x8D00 |  |
| `STENCIL_ATTACHMENT` | 0x8D20 |  |
| `DEPTH_STENCIL_ATTACHMENT` | 0x821A |  |
| `NONE` | 0 |  |
| `FRAMEBUFFER_COMPLETE` | 0x8CD5 |  |
| `FRAMEBUFFER_INCOMPLETE_ATTACHMENT` | 0x8CD6 |  |
| `FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT` | 0x8CD7 |  |
| `FRAMEBUFFER_INCOMPLETE_DIMENSIONS` | 0x8CD9 |  |
| `FRAMEBUFFER_UNSUPPORTED` | 0x8CDD |  |
| `FRAMEBUFFER_BINDING` | 0x8CA6 |  |
| `RENDERBUFFER_BINDING` | 0x8CA7 |  |
| `MAX_RENDERBUFFER_SIZE` | 0x84E8 |  |
| `INVALID_FRAMEBUFFER_OPERATION` | 0x0506 |  |

### Pixel storage modes

Constants passed to `WebGLRenderingContext.pixelStorei()`.

| Constant name | Value | Description |
| --- | --- | --- |
| `UNPACK_FLIP_Y_WEBGL` | 0x9240 |  |
| `UNPACK_PREMULTIPLY_ALPHA_WEBGL` | 0x9241 |  |
| `UNPACK_COLORSPACE_CONVERSION_WEBGL` | 0x9243 |  |

Additional constants defined WebGL 2
------------------------------------

These constants are defined on the `WebGL2RenderingContext` interface. All WebGL 1 constants are also available in a WebGL 2 context.

### Getting GL parameter information

Constants passed to `WebGLRenderingContext.getParameter()` to specify what information to return.

| Constant name | Value | Description |
| --- | --- | --- |
| `READ_BUFFER` | 0x0C02 |  |
| `UNPACK_ROW_LENGTH` | 0x0CF2 |  |
| `UNPACK_SKIP_ROWS` | 0x0CF3 |  |
| `UNPACK_SKIP_PIXELS` | 0x0CF4 |  |
| `PACK_ROW_LENGTH` | 0x0D02 |  |
| `PACK_SKIP_ROWS` | 0x0D03 |  |
| `PACK_SKIP_PIXELS` | 0x0D04 |  |
| `TEXTURE_BINDING_3D` | 0x806A |  |
| `UNPACK_SKIP_IMAGES` | 0x806D |  |
| `UNPACK_IMAGE_HEIGHT` | 0x806E |  |
| `MAX_3D_TEXTURE_SIZE` | 0x8073 |  |
| `MAX_ELEMENTS_VERTICES` | 0x80E8 |  |
| `MAX_ELEMENTS_INDICES` | 0x80E9 |  |
| `MAX_TEXTURE_LOD_BIAS` | 0x84FD |  |
| `MAX_FRAGMENT_UNIFORM_COMPONENTS` | 0x8B49 |  |
| `MAX_VERTEX_UNIFORM_COMPONENTS` | 0x8B4A |  |
| `MAX_ARRAY_TEXTURE_LAYERS` | 0x88FF |  |
| `MIN_PROGRAM_TEXEL_OFFSET` | 0x8904 |  |
| `MAX_PROGRAM_TEXEL_OFFSET` | 0x8905 |  |
| `MAX_VARYING_COMPONENTS` | 0x8B4B |  |
| `FRAGMENT_SHADER_DERIVATIVE_HINT` | 0x8B8B |  |
| `RASTERIZER_DISCARD` | 0x8C89 |  |
| `VERTEX_ARRAY_BINDING` | 0x85B5 |  |
| `MAX_VERTEX_OUTPUT_COMPONENTS` | 0x9122 |  |
| `MAX_FRAGMENT_INPUT_COMPONENTS` | 0x9125 |  |
| `MAX_SERVER_WAIT_TIMEOUT` | 0x9111 |  |
| `MAX_ELEMENT_INDEX` | 0x8D6B |  |

### Textures

Constants passed to `WebGLRenderingContext.texParameteri()`, `WebGLRenderingContext.texParameterf()`, `WebGLRenderingContext.bindTexture()`, `WebGLRenderingContext.texImage2D()`, and others.

| Constant name | Value | Description |
| --- | --- | --- |
| `RED` | 0x1903 |  |
| `RGB8` | 0x8051 |  |
| `RGBA8` | 0x8058 |  |
| `RGB10_A2` | 0x8059 |  |
| `TEXTURE_3D` | 0x806F |  |
| `TEXTURE_WRAP_R` | 0x8072 |  |
| `TEXTURE_MIN_LOD` | 0x813A |  |
| `TEXTURE_MAX_LOD` | 0x813B |  |
| `TEXTURE_BASE_LEVEL` | 0x813C |  |
| `TEXTURE_MAX_LEVEL` | 0x813D |  |
| `TEXTURE_COMPARE_MODE` | 0x884C |  |
| `TEXTURE_COMPARE_FUNC` | 0x884D |  |
| `SRGB` | 0x8C40 |  |
| `SRGB8` | 0x8C41 |  |
| `SRGB8_ALPHA8` | 0x8C43 |  |
| `COMPARE_REF_TO_TEXTURE` | 0x884E |  |
| `RGBA32F` | 0x8814 |  |
| `RGB32F` | 0x8815 |  |
| `RGBA16F` | 0x881A |  |
| `RGB16F` | 0x881B |  |
| `TEXTURE_2D_ARRAY` | 0x8C1A |  |
| `TEXTURE_BINDING_2D_ARRAY` | 0x8C1D |  |
| `R11F_G11F_B10F` | 0x8C3A |  |
| `RGB9_E5` | 0x8C3D |  |
| `RGBA32UI` | 0x8D70 |  |
| `RGB32UI` | 0x8D71 |  |
| `RGBA16UI` | 0x8D76 |  |
| `RGB16UI` | 0x8D77 |  |
| `RGBA8UI` | 0x8D7C |  |
| `RGB8UI` | 0x8D7D |  |
| `RGBA32I` | 0x8D82 |  |
| `RGB32I` | 0x8D83 |  |
| `RGBA16I` | 0x8D88 |  |
| `RGB16I` | 0x8D89 |  |
| `RGBA8I` | 0x8D8E |  |
| `RGB8I` | 0x8D8F |  |
| `RED_INTEGER` | 0x8D94 |  |
| `RGB_INTEGER` | 0x8D98 |  |
| `RGBA_INTEGER` | 0x8D99 |  |
| `R8` | 0x8229 |  |
| `RG8` | 0x822B |  |
| R16F | 0x822D |  |
| R32F | 0x822E |  |
| RG16F | 0x822F |  |
| RG32F | 0x8230 |  |
| R8I | 0x8231 |  |
| R8UI | 0x8232 |  |
| R16I | 0x8233 |  |
| R16UI | 0x8234 |  |
| R32I | 0x8235 |  |
| R32UI | 0x8236 |  |
| RG8I | 0x8237 |  |
| RG8UI | 0x8238 |  |
| RG16I | 0x8239 |  |
| RG16UI | 0x823A |  |
| RG32I | 0x823B |  |
| RG32UI | 0x823C |  |
| R8\_SNORM | 0x8F94 |  |
| RG8\_SNORM | 0x8F95 |  |
| RGB8\_SNORM | 0x8F96 |  |
| RGBA8\_SNORM | 0x8F97 |  |
| `RGB10_A2UI` | 0x906F |  |
| `TEXTURE_IMMUTABLE_FORMAT` | 0x912F |  |
| `TEXTURE_IMMUTABLE_LEVELS` | 0x82DF |  |

### Pixel types

| Constant name | Value | Description |
| --- | --- | --- |
| `UNSIGNED_INT_2_10_10_10_REV` | 0x8368 |  |
| `UNSIGNED_INT_10F_11F_11F_REV` | 0x8C3B |  |
| `UNSIGNED_INT_5_9_9_9_REV` | 0x8C3E |  |
| `FLOAT_32_UNSIGNED_INT_24_8_REV` | 0x8DAD |  |
| UNSIGNED\_INT\_24\_8 | 0x84FA |  |
| `HALF_FLOAT` | 0x140B |  |
| `RG` | 0x8227 |  |
| `RG_INTEGER` | 0x8228 |  |
| `INT_2_10_10_10_REV` | 0x8D9F |  |

### Queries

| Constant name | Value | Description |
| --- | --- | --- |
| `CURRENT_QUERY` | 0x8865 |  |
| `QUERY_RESULT` | 0x8866 |  |
| `QUERY_RESULT_AVAILABLE` | 0x8867 |  |
| `ANY_SAMPLES_PASSED` | 0x8C2F |  |
| `ANY_SAMPLES_PASSED_CONSERVATIVE` | 0x8D6A |  |

### Draw buffers

| Constant name | Value | Description |
| --- | --- | --- |
| `MAX_DRAW_BUFFERS` | 0x8824 |  |
| `DRAW_BUFFER0` | 0x8825 |  |
| `DRAW_BUFFER1` | 0x8826 |  |
| `DRAW_BUFFER2` | 0x8827 |  |
| `DRAW_BUFFER3` | 0x8828 |  |
| `DRAW_BUFFER4` | 0x8829 |  |
| `DRAW_BUFFER5` | 0x882A |  |
| `DRAW_BUFFER6` | 0x882B |  |
| `DRAW_BUFFER7` | 0x882C |  |
| `DRAW_BUFFER8` | 0x882D |  |
| `DRAW_BUFFER9` | 0x882E |  |
| `DRAW_BUFFER10` | 0x882F |  |
| `DRAW_BUFFER11` | 0x8830 |  |
| `DRAW_BUFFER12` | 0x8831 |  |
| `DRAW_BUFFER13` | 0x8832 |  |
| `DRAW_BUFFER14` | 0x8833 |  |
| `DRAW_BUFFER15` | 0x8834 |  |
| `MAX_COLOR_ATTACHMENTS` | 0x8CDF |  |
| `COLOR_ATTACHMENT1` | 0x8CE1 |  |
| `COLOR_ATTACHMENT2` | 0x8CE2 |  |
| `COLOR_ATTACHMENT3` | 0x8CE3 |  |
| `COLOR_ATTACHMENT4` | 0x8CE4 |  |
| `COLOR_ATTACHMENT5` | 0x8CE5 |  |
| `COLOR_ATTACHMENT6` | 0x8CE6 |  |
| `COLOR_ATTACHMENT7` | 0x8CE7 |  |
| `COLOR_ATTACHMENT8` | 0x8CE8 |  |
| `COLOR_ATTACHMENT9` | 0x8CE9 |  |
| `COLOR_ATTACHMENT10` | 0x8CEA |  |
| `COLOR_ATTACHMENT11` | 0x8CEB |  |
| `COLOR_ATTACHMENT12` | 0x8CEC |  |
| `COLOR_ATTACHMENT13` | 0x8CED |  |
| `COLOR_ATTACHMENT14` | 0x8CEE |  |
| `COLOR_ATTACHMENT15` | 0x8CEF |  |

### Samplers

| Constant name | Value | Description |
| --- | --- | --- |
| `SAMPLER_3D` | 0x8B5F |  |
| `SAMPLER_2D_SHADOW` | 0x8B62 |  |
| `SAMPLER_2D_ARRAY` | 0x8DC1 |  |
| `SAMPLER_2D_ARRAY_SHADOW` | 0x8DC4 |  |
| `SAMPLER_CUBE_SHADOW` | 0x8DC5 |  |
| `INT_SAMPLER_2D` | 0x8DCA |  |
| `INT_SAMPLER_3D` | 0x8DCB |  |
| `INT_SAMPLER_CUBE` | 0x8DCC |  |
| `INT_SAMPLER_2D_ARRAY` | 0x8DCF |  |
| `UNSIGNED_INT_SAMPLER_2D` | 0x8DD2 |  |
| `UNSIGNED_INT_SAMPLER_3D` | 0x8DD3 |  |
| `UNSIGNED_INT_SAMPLER_CUBE` | 0x8DD4 |  |
| `UNSIGNED_INT_SAMPLER_2D_ARRAY` | 0x8DD7 |  |
| `MAX_SAMPLES` | 0x8D57 |  |
| `SAMPLER_BINDING` | 0x8919 |  |

### Buffers

| Constant name | Value | Description |
| --- | --- | --- |
| `PIXEL_PACK_BUFFER` | 0x88EB |  |
| `PIXEL_UNPACK_BUFFER` | 0x88EC |  |
| `PIXEL_PACK_BUFFER_BINDING` | 0x88ED |  |
| `PIXEL_UNPACK_BUFFER_BINDING` | 0x88EF |  |
| `COPY_READ_BUFFER` | 0x8F36 |  |
| `COPY_WRITE_BUFFER` | 0x8F37 |  |
| `COPY_READ_BUFFER_BINDING` | 0x8F36 |  |
| `COPY_WRITE_BUFFER_BINDING` | 0x8F37 |  |

### Data types

| Constant name | Value | Description |
| --- | --- | --- |
| `FLOAT_MAT2x3` | 0x8B65 |  |
| `FLOAT_MAT2x4` | 0x8B66 |  |
| `FLOAT_MAT3x2` | 0x8B67 |  |
| `FLOAT_MAT3x4` | 0x8B68 |  |
| `FLOAT_MAT4x2` | 0x8B69 |  |
| `FLOAT_MAT4x3` | 0x8B6A |  |
| `UNSIGNED_INT_VEC2` | 0x8DC6 |  |
| `UNSIGNED_INT_VEC3` | 0x8DC7 |  |
| `UNSIGNED_INT_VEC4` | 0x8DC8 |  |
| `UNSIGNED_NORMALIZED` | 0x8C17 |  |
| `SIGNED_NORMALIZED` | 0x8F9C |  |

### Vertex attributes

| Constant name | Value | Description |
| --- | --- | --- |
| `VERTEX_ATTRIB_ARRAY_INTEGER` | 0x88FD |  |
| `VERTEX_ATTRIB_ARRAY_DIVISOR` | 0x88FE |  |

### Transform feedback

| Constant name | Value | Description |
| --- | --- | --- |
| `TRANSFORM_FEEDBACK_BUFFER_MODE` | 0x8C7F |  |
| `MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS` | 0x8C80 |  |
| `TRANSFORM_FEEDBACK_VARYINGS` | 0x8C83 |  |
| `TRANSFORM_FEEDBACK_BUFFER_START` | 0x8C84 |  |
| `TRANSFORM_FEEDBACK_BUFFER_SIZE` | 0x8C85 |  |
| `TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN` | 0x8C88 |  |
| `MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS` | 0x8C8A |  |
| `MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS` | 0x8C8B |  |
| `INTERLEAVED_ATTRIBS` | 0x8C8C |  |
| `SEPARATE_ATTRIBS` | 0x8C8D |  |
| `TRANSFORM_FEEDBACK_BUFFER` | 0x8C8E |  |
| `TRANSFORM_FEEDBACK_BUFFER_BINDING` | 0x8C8F |  |
| `TRANSFORM_FEEDBACK` | 0x8E22 |  |
| `TRANSFORM_FEEDBACK_PAUSED` | 0x8E23 |  |
| `TRANSFORM_FEEDBACK_ACTIVE` | 0x8E24 |  |
| `TRANSFORM_FEEDBACK_BINDING` | 0x8E25 |  |

### Framebuffers and renderbuffers

| Constant name | Value | Description |
| --- | --- | --- |
| `FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING` | 0x8210 |  |
| `FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE` | 0x8211 |  |
| `FRAMEBUFFER_ATTACHMENT_RED_SIZE` | 0x8212 |  |
| `FRAMEBUFFER_ATTACHMENT_GREEN_SIZE` | 0x8213 |  |
| `FRAMEBUFFER_ATTACHMENT_BLUE_SIZE` | 0x8214 |  |
| `FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE` | 0x8215 |  |
| `FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE` | 0x8216 |  |
| `FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE` | 0x8217 |  |
| `FRAMEBUFFER_DEFAULT` | 0x8218 |  |
| `DEPTH_STENCIL_ATTACHMENT` | 0x821A |  |
| `DEPTH_STENCIL` | 0x84F9 |  |
| `DEPTH24_STENCIL8` | 0x88F0 |  |
| `DRAW_FRAMEBUFFER_BINDING` | 0x8CA6 |  |
| `READ_FRAMEBUFFER` | 0x8CA8 |  |
| `DRAW_FRAMEBUFFER` | 0x8CA9 |  |
| `READ_FRAMEBUFFER_BINDING` | 0x8CAA |  |
| `RENDERBUFFER_SAMPLES` | 0x8CAB |  |
| `FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER` | 0x8CD4 |  |
| `FRAMEBUFFER_INCOMPLETE_MULTISAMPLE` | 0x8D56 |  |

### Uniforms

| Constant name | Value | Description |
| --- | --- | --- |
| `UNIFORM_BUFFER` | 0x8A11 |  |
| `UNIFORM_BUFFER_BINDING` | 0x8A28 |  |
| `UNIFORM_BUFFER_START` | 0x8A29 |  |
| `UNIFORM_BUFFER_SIZE` | 0x8A2A |  |
| `MAX_VERTEX_UNIFORM_BLOCKS` | 0x8A2B |  |
| `MAX_FRAGMENT_UNIFORM_BLOCKS` | 0x8A2D |  |
| `MAX_COMBINED_UNIFORM_BLOCKS` | 0x8A2E |  |
| `MAX_UNIFORM_BUFFER_BINDINGS` | 0x8A2F |  |
| `MAX_UNIFORM_BLOCK_SIZE` | 0x8A30 |  |
| `MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS` | 0x8A31 |  |
| `MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS` | 0x8A33 |  |
| `UNIFORM_BUFFER_OFFSET_ALIGNMENT` | 0x8A34 |  |
| `ACTIVE_UNIFORM_BLOCKS` | 0x8A36 |  |
| `UNIFORM_TYPE` | 0x8A37 |  |
| `UNIFORM_SIZE` | 0x8A38 |  |
| `UNIFORM_BLOCK_INDEX` | 0x8A3A |  |
| `UNIFORM_OFFSET` | 0x8A3B |  |
| `UNIFORM_ARRAY_STRIDE` | 0x8A3C |  |
| `UNIFORM_MATRIX_STRIDE` | 0x8A3D |  |
| `UNIFORM_IS_ROW_MAJOR` | 0x8A3E |  |
| `UNIFORM_BLOCK_BINDING` | 0x8A3F |  |
| `UNIFORM_BLOCK_DATA_SIZE` | 0x8A40 |  |
| `UNIFORM_BLOCK_ACTIVE_UNIFORMS` | 0x8A42 |  |
| `UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES` | 0x8A43 |  |
| `UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER` | 0x8A44 |  |
| `UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER` | 0x8A46 |  |

### Sync objects

| Constant name | Value | Description |
| --- | --- | --- |
| `OBJECT_TYPE` | 0x9112 |  |
| `SYNC_CONDITION` | 0x9113 |  |
| `SYNC_STATUS` | 0x9114 |  |
| `SYNC_FLAGS` | 0x9115 |  |
| `SYNC_FENCE` | 0x9116 |  |
| `SYNC_GPU_COMMANDS_COMPLETE` | 0x9117 |  |
| `UNSIGNALED` | 0x9118 |  |
| `SIGNALED` | 0x9119 |  |
| `ALREADY_SIGNALED` | 0x911A |  |
| `TIMEOUT_EXPIRED` | 0x911B |  |
| `CONDITION_SATISFIED` | 0x911C |  |
| `WAIT_FAILED` | 0x911D |  |
| `SYNC_FLUSH_COMMANDS_BIT` | 0x00000001 |  |

### Miscellaneous constants

| Constant name | Value | Description |
| --- | --- | --- |
| `COLOR` | 0x1800 |  |
| DEPTH | 0x1801 |  |
| `STENCIL` | 0x1802 |  |
| `MIN` | 0x8007 |  |
| MAX | 0x8008 |  |
| `DEPTH_COMPONENT24` | 0x81A6 |  |
| `STREAM_READ` | 0x88E1 |  |
| `STREAM_COPY` | 0x88E2 |  |
| `STATIC_READ` | 0x88E5 |  |
| `STATIC_COPY` | 0x88E6 |  |
| `DYNAMIC_READ` | 0x88E9 |  |
| `DYNAMIC_COPY` | 0x88EA |  |
| `DEPTH_COMPONENT32F` | 0x8CAC |  |
| `DEPTH32F_STENCIL8` | 0x8CAD |  |
| `INVALID_INDEX` | 0xFFFFFFFF |  |
| `TIMEOUT_IGNORED` | -1 |  |
| `MAX_CLIENT_WAIT_TIMEOUT_WEBGL` | 0x9247 |  |

Constants defined in WebGL extensions
-------------------------------------

### ANGLE\_instanced\_arrays

| Constant name | Value | Description |
| --- | --- | --- |
| `VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE` | 0x88FE | Describes the frequency divisor used for instanced rendering. |

For more information, see `ANGLE_instanced_arrays`.

### WEBGL\_debug\_renderer\_info

| Constant name | Value | Description |
| --- | --- | --- |
| `UNMASKED_VENDOR_WEBGL` | 0x9245 | Passed to `getParameter` to get the vendor string of the graphics driver. |
| `UNMASKED_RENDERER_WEBGL` | 0x9246 | Passed to `getParameter` to get the renderer string of the graphics driver. |

For more information, see `WEBGL_debug_renderer_info`.

### EXT\_texture\_filter\_anisotropic

| Constant name | Value | Description |
| --- | --- | --- |
| `MAX_TEXTURE_MAX_ANISOTROPY_EXT` | 0x84FF | Returns the maximum available anisotropy. |
| `TEXTURE_MAX_ANISOTROPY_EXT` | 0x84FE | Passed to `texParameter` to set the desired maximum anisotropy for a texture. |

For more information, see `EXT_texture_filter_anisotropic`.

### WEBGL\_compressed\_texture\_s3tc

| Constant name | Value | Description |
| --- | --- | --- |
| `COMPRESSED_RGB_S3TC_DXT1_EXT` | 0x83F0 | A DXT1-compressed image in an RGB image format. |
| `COMPRESSED_RGBA_S3TC_DXT1_EXT` | 0x83F1 | 
 A DXT1-compressed image in an RGB image format with a simple on/off
 alpha value.
  |
| `COMPRESSED_RGBA_S3TC_DXT3_EXT` | 0x83F2 | 
 A DXT3-compressed image in an RGBA image format. Compared to a 32-bit
 RGBA texture, it offers 4:1 compression.
  |
| `COMPRESSED_RGBA_S3TC_DXT5_EXT` | 0x83F3 | 
 A DXT5-compressed image in an RGBA image format. It also provides a 4:1
 compression, but differs to the DXT3 compression in how the alpha
 compression is done.
  |

For more information, see `WEBGL_compressed_texture_s3tc`.

### WEBGL\_compressed\_texture\_etc

| Constant name | Value | Description |
| --- | --- | --- |
| `COMPRESSED_R11_EAC` | 0x9270 | One-channel (red) unsigned format compression. |
| `COMPRESSED_SIGNED_R11_EAC` | 0x9271 | One-channel (red) signed format compression. |
| `COMPRESSED_RG11_EAC` | 0x9272 | Two-channel (red and green) unsigned format compression. |
| `COMPRESSED_SIGNED_RG11_EAC` | 0x9273 | Two-channel (red and green) signed format compression. |
| `COMPRESSED_RGB8_ETC2` | 0x9274 | Compresses RGB8 data with no alpha channel. |
| `COMPRESSED_RGBA8_ETC2_EAC` | 0x9275 | 
 Compresses RGBA8 data. The RGB part is encoded the same as
 `RGB_ETC2`, but the alpha part is encoded separately.
  |
| `COMPRESSED_SRGB8_ETC2` | 0x9276 | Compresses sRGB8 data with no alpha channel. |
| `COMPRESSED_SRGB8_ALPHA8_ETC2_EAC` | 0x9277 | 
 Compresses sRGBA8 data. The sRGB part is encoded the same as
 `SRGB_ETC2`, but the alpha part is encoded separately.
  |
| `COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2` | 0x9278 | 
 Similar to `RGB8_ETC`, but with ability to punch through the
 alpha channel, which means to make it completely opaque or transparent.
  |
| `COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2` | 0x9279 | 
 Similar to `SRGB8_ETC`, but with ability to punch through the
 alpha channel, which means to make it completely opaque or transparent.
  |

For more information, see `WEBGL_compressed_texture_etc`.

### WEBGL\_compressed\_texture\_pvrtc

| Constant name | Value | Description |
| --- | --- | --- |
| `COMPRESSED_RGB_PVRTC_4BPPV1_IMG` | 0x8C00 | RGB compression in 4-bit mode. One block for each 4×4 pixels. |
| `COMPRESSED_RGBA_PVRTC_4BPPV1_IMG` | 0x8C02 | RGBA compression in 4-bit mode. One block for each 4×4 pixels. |
| `COMPRESSED_RGB_PVRTC_2BPPV1_IMG` | 0x8C01 | RGB compression in 2-bit mode. One block for each 8×4 pixels. |
| `COMPRESSED_RGBA_PVRTC_2BPPV1_IMG` | 0x8C03 | RGBA compression in 2-bit mode. One block for each 8×4 pixels. |

For more information, see `WEBGL_compressed_texture_pvrtc`.

### WEBGL\_compressed\_texture\_etc1

| Constant name | Value | Description |
| --- | --- | --- |
| `COMPRESSED_RGB_ETC1_WEBGL` | 0x8D64 | Compresses 24-bit RGB data with no alpha channel. |

For more information, see `WEBGL_compressed_texture_etc1`.

### WEBGL\_depth\_texture

| Constant name | Value | Description |
| --- | --- | --- |
| `UNSIGNED_INT_24_8_WEBGL` | 0x84FA | Unsigned integer type for 24-bit depth texture data. |

For more information, see `WEBGL_depth_texture`.

### OES\_texture\_half\_float

| Constant name | Value | Description |
| --- | --- | --- |
| `HALF_FLOAT_OES` | 0x8D61 | Half floating-point type (16-bit). |

For more information, see `OES_texture_half_float`.

### WEBGL\_color\_buffer\_float

| Constant name | Value | Description |
| --- | --- | --- |
| `RGBA32F_EXT` | 0x8814 | RGBA 32-bit floating-point color-renderable format. |
| `RGB32F_EXT` | 0x8815 | RGB 32-bit floating-point color-renderable format. |
| `FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT` | 0x8211 |  |
| `UNSIGNED_NORMALIZED_EXT` | 0x8C17 |  |

For more information, see `WEBGL_color_buffer_float`.

### EXT\_blend\_minmax

| Constant name | Value | Description |
| --- | --- | --- |
| `MIN_EXT` | 0x8007 | Produces the minimum color components of the source and destination colors. |
| `MAX_EXT` | 0x8008 | Produces the maximum color components of the source and destination colors. |

For more information, see `EXT_blend_minmax`.

### EXT\_sRGB

| Constant name | Value | Description |
| --- | --- | --- |
| `SRGB_EXT` | 0x8C40 | Unsized sRGB format that leaves the precision up to the driver. |
| `SRGB_ALPHA_EXT` | 0x8C42 | Unsized sRGB format with unsized alpha component. |
| `SRGB8_ALPHA8_EXT` | 0x8C43 | Sized (8-bit) sRGB and alpha formats. |
| `FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT` | 0x8210 | Returns the framebuffer color encoding. |

For more information, see `EXT_sRGB`.

### OES\_standard\_derivatives

| Constant name | Value | Description |
| --- | --- | --- |
| `FRAGMENT_SHADER_DERIVATIVE_HINT_OES` | 0x8B8B | 
 Indicates the accuracy of the derivative calculation for the GLSL
 built-in functions: `dFdx`, `dFdy`, and
 `fwidth`.
  |

For more information, see `OES_standard_derivatives`.

### WEBGL\_draw\_buffers

| Constant name | Value | Description |
| --- | --- | --- |
| `COLOR_ATTACHMENT0_WEBGL` | 0x8CE0 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT1_WEBGL` | 0x8CE1 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT2_WEBGL` | 0x8CE2 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT3_WEBGL` | 0x8CE3 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT4_WEBGL` | 0x8CE4 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT5_WEBGL` | 0x8CE5 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT6_WEBGL` | 0x8CE6 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT7_WEBGL` | 0x8CE7 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT8_WEBGL` | 0x8CE8 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT9_WEBGL` | 0x8CE9 | Framebuffer color attachment point |
| `COLOR_ATTACHMENT10_WEBGL` | 0x8CEA | Framebuffer color attachment point |
| `COLOR_ATTACHMENT11_WEBGL` | 0x8CEB | Framebuffer color attachment point |
| `COLOR_ATTACHMENT12_WEBGL` | 0x8CEC | Framebuffer color attachment point |
| `COLOR_ATTACHMENT13_WEBGL` | 0x8CED | Framebuffer color attachment point |
| `COLOR_ATTACHMENT14_WEBGL` | 0x8CEE | Framebuffer color attachment point |
| `COLOR_ATTACHMENT15_WEBGL` | 0x8CEF | Framebuffer color attachment point |
| `DRAW_BUFFER0_WEBGL` | 0x8825 | Draw buffer |
| `DRAW_BUFFER1_WEBGL` | 0x8826 | Draw buffer |
| `DRAW_BUFFER2_WEBGL` | 0x8827 | Draw buffer |
| `DRAW_BUFFER3_WEBGL` | 0x8828 | Draw buffer |
| `DRAW_BUFFER4_WEBGL` | 0x8829 | Draw buffer |
| `DRAW_BUFFER5_WEBGL` | 0x882A | Draw buffer |
| `DRAW_BUFFER6_WEBGL` | 0x882B | Draw buffer |
| `DRAW_BUFFER7_WEBGL` | 0x882C | Draw buffer |
| `DRAW_BUFFER8_WEBGL` | 0x882D | Draw buffer |
| `DRAW_BUFFER9_WEBGL` | 0x882E | Draw buffer |
| `DRAW_BUFFER10_WEBGL` | 0x882F | Draw buffer |
| `DRAW_BUFFER11_WEBGL` | 0x8830 | Draw buffer |
| `DRAW_BUFFER12_WEBGL` | 0x8831 | Draw buffer |
| `DRAW_BUFFER13_WEBGL` | 0x8832 | Draw buffer |
| `DRAW_BUFFER14_WEBGL` | 0x8833 | Draw buffer |
| `DRAW_BUFFER15_WEBGL` | 0x8834 | Draw buffer |
| `MAX_COLOR_ATTACHMENTS_WEBGL` | 0x8CDF | Maximum number of framebuffer color attachment points |
| `MAX_DRAW_BUFFERS_WEBGL` | 0x8824 | Maximum number of draw buffers |

For more information, see `WEBGL_draw_buffers`.

### OES\_vertex\_array\_object

| Constant name | Value | Description |
| --- | --- | --- |
| `VERTEX_ARRAY_BINDING_OES` | 0x85B5 | The bound vertex array object (VAO). |

For more information, see `OES_vertex_array_object`.

### EXT\_disjoint\_timer\_query

| Constant name | Value | Description |
| --- | --- | --- |
| `QUERY_COUNTER_BITS_EXT` | 0x8864 | The number of bits used to hold the query result for the given target. |
| `CURRENT_QUERY_EXT` | 0x8865 | The currently active query. |
| `QUERY_RESULT_EXT` | 0x8866 | The query result. |
| `QUERY_RESULT_AVAILABLE_EXT` | 0x8867 | A Boolean indicating whether or not a query result is available. |
| `TIME_ELAPSED_EXT` | 0x88BF | Elapsed time (in nanoseconds). |
| `TIMESTAMP_EXT` | 0x8E28 | The current time. |
| `GPU_DISJOINT_EXT` | 0x8FBB | A Boolean indicating whether or not the GPU performed any disjoint operation. |

For more information, see `EXT_disjoint_timer_query`.

Specifications
--------------

| Specification |
| --- |
| WebGL # 5.14 |
| WebGL2 # 3.7 |

See also
--------

* `WebGLRenderingContext`