Skip to content

Instantly share code, notes, and snippets.

@peterbe
Created April 28, 2021 12:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save peterbe/c54a65335e4874249fe8187a11952adb to your computer and use it in GitHub Desktop.
Save peterbe/c54a65335e4874249fe8187a11952adb to your computer and use it in GitHub Desktop.
{"doc":{"isTranslated":false,"isActive":true,"flaws":{"macros":[{"id":"macro0","fixable":true,"suggestion":"{{domxref(\"WebGL_API.Types\")}}","explanation":"/en-US/docs/Web/API/GLenum redirects to /en-US/docs/Web/API/WebGL_API/Types","name":"MacroRedirectedLinkError","error":{},"errorStack":"Error: /en-US/docs/Web/API/GLenum redirects to /en-US/docs/Web/API/WebGL_API/Types\n at Object.recordNonFatalError (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:115:19)\n at Object.smartLink (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/api/web.js:62:27)\n at eval (eval at compile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:662:12), <anonymous>:60:18)\n at DOMxRef (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:692:17)\n at /Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:258:40\n at new Promise (<anonymous>)\n at tryHandleCache (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:256:14)\n at Object.exports.renderFile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:489:10)\n at Templates.render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/templates.js:120:32)\n at render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:220:48)","offset":9,"line":12,"column":162,"macroName":"domxref","sourceContext":" 10 | <div>{{WebGLSidebar}}</div>\n 11 | \n 12 | <p>The <a href=\"/en-US/docs/Web/API/WebGL_API\">WebGL API</a> provides several constants that are passed into or returned by functions. All constants are of type {{domxref(\"GLenum\")}}.</p>\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------^\n 13 | \n 14 | <p>Standard WebGL constants are installed on the {{domxref(\"WebGLRenderingContext\")}} and {{domxref(\"WebGL2RenderingContext\")}} objects, so that you use them as <code>gl.CONSTANT_NAME</code>:</p>","fatal":false,"macroSource":"{{domxref(\"GLenum\")}}","redirectInfo":{"current":"GLenum","suggested":"WebGL_API.Types"},"filepath":"/Users/peterbe/dev/MOZILLA/MDN/content/files/en-us/web/api/webgl_api/constants/index.html"},{"id":"macro1","fixable":true,"suggestion":"{{domxref(\"WebGLRenderingContext.texParameter\")}}","explanation":"/en-US/docs/Web/API/WebGLRenderingContext/texParameteri redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter","name":"MacroRedirectedLinkError","error":{},"errorStack":"Error: /en-US/docs/Web/API/WebGLRenderingContext/texParameteri redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter\n at Object.recordNonFatalError (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:115:19)\n at Object.smartLink (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/api/web.js:62:27)\n at eval (eval at compile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:662:12), <anonymous>:60:18)\n at DOMxRef (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:692:17)\n at /Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:258:40\n at new Promise (<anonymous>)\n at tryHandleCache (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:256:14)\n at Object.exports.renderFile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:489:10)\n at Templates.render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/templates.js:120:32)\n at render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:220:48)","offset":9,"line":1230,"column":24,"macroName":"domxref","sourceContext":" 1228 | <h3 id=\"Textures\">Textures</h3>\n 1229 | \n 1230 | <p>Constants passed to {{domxref(\"WebGLRenderingContext.texParameteri()\")}}, {{domxref(\"WebGLRenderingContext.texParameterf()\")}}, {{domxref(\"WebGLRenderingContext.bindTexture()\")}}, {{domxref(\"WebGLRenderingContext.texImage2D()\")}}, and others.</p>\n-------------------------------^\n 1231 | \n 1232 | <table class=\"standard-table\">","fatal":false,"macroSource":"{{domxref(\"WebGLRenderingContext.texParameteri()\")}}","redirectInfo":{"current":"WebGLRenderingContext.texParameteri()","suggested":"WebGLRenderingContext.texParameter"},"filepath":"/Users/peterbe/dev/MOZILLA/MDN/content/files/en-us/web/api/webgl_api/constants/index.html"},{"id":"macro2","fixable":true,"suggestion":"{{domxref(\"WebGLRenderingContext.texParameter\")}}","explanation":"/en-US/docs/Web/API/WebGLRenderingContext/texParameterf redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter","name":"MacroRedirectedLinkError","error":{},"errorStack":"Error: /en-US/docs/Web/API/WebGLRenderingContext/texParameterf redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter\n at Object.recordNonFatalError (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:115:19)\n at Object.smartLink (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/api/web.js:62:27)\n at eval (eval at compile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:662:12), <anonymous>:60:18)\n at DOMxRef (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:692:17)\n at /Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:258:40\n at new Promise (<anonymous>)\n at tryHandleCache (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:256:14)\n at Object.exports.renderFile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:489:10)\n at Templates.render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/templates.js:120:32)\n at render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:220:48)","offset":9,"line":1230,"column":78,"macroName":"domxref","sourceContext":" 1228 | <h3 id=\"Textures\">Textures</h3>\n 1229 | \n 1230 | <p>Constants passed to {{domxref(\"WebGLRenderingContext.texParameteri()\")}}, {{domxref(\"WebGLRenderingContext.texParameterf()\")}}, {{domxref(\"WebGLRenderingContext.bindTexture()\")}}, {{domxref(\"WebGLRenderingContext.texImage2D()\")}}, and others.</p>\n-------------------------------------------------------------------------------------^\n 1231 | \n 1232 | <table class=\"standard-table\">","fatal":false,"macroSource":"{{domxref(\"WebGLRenderingContext.texParameterf()\")}}","redirectInfo":{"current":"WebGLRenderingContext.texParameterf()","suggested":"WebGLRenderingContext.texParameter"},"filepath":"/Users/peterbe/dev/MOZILLA/MDN/content/files/en-us/web/api/webgl_api/constants/index.html"},{"id":"macro3","fixable":true,"suggestion":"{{domxref(\"WebGLRenderingContext.texParameter\")}}","explanation":"/en-US/docs/Web/API/WebGLRenderingContext/texParameteri redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter","name":"MacroRedirectedLinkError","error":{},"errorStack":"Error: /en-US/docs/Web/API/WebGLRenderingContext/texParameteri redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter\n at Object.recordNonFatalError (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:115:19)\n at Object.smartLink (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/api/web.js:62:27)\n at eval (eval at compile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:662:12), <anonymous>:60:18)\n at DOMxRef (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:692:17)\n at /Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:258:40\n at new Promise (<anonymous>)\n at tryHandleCache (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:256:14)\n at Object.exports.renderFile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:489:10)\n at Templates.render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/templates.js:120:32)\n at render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:220:48)","offset":9,"line":1884,"column":24,"macroName":"domxref","sourceContext":" 1882 | <h3 id=\"Textures_2\">Textures</h3>\n 1883 | \n 1884 | <p>Constants passed to {{domxref(\"WebGLRenderingContext.texParameteri()\")}}, {{domxref(\"WebGLRenderingContext.texParameterf()\")}}, {{domxref(\"WebGLRenderingContext.bindTexture()\")}}, {{domxref(\"WebGLRenderingContext.texImage2D()\")}}, and others.</p>\n-------------------------------^\n 1885 | \n 1886 | <table class=\"standard-table\">","fatal":false,"macroSource":"{{domxref(\"WebGLRenderingContext.texParameteri()\")}}","redirectInfo":{"current":"WebGLRenderingContext.texParameteri()","suggested":"WebGLRenderingContext.texParameter"},"filepath":"/Users/peterbe/dev/MOZILLA/MDN/content/files/en-us/web/api/webgl_api/constants/index.html"},{"id":"macro4","fixable":true,"suggestion":"{{domxref(\"WebGLRenderingContext.texParameter\")}}","explanation":"/en-US/docs/Web/API/WebGLRenderingContext/texParameterf redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter","name":"MacroRedirectedLinkError","error":{},"errorStack":"Error: /en-US/docs/Web/API/WebGLRenderingContext/texParameterf redirects to /en-US/docs/Web/API/WebGLRenderingContext/texParameter\n at Object.recordNonFatalError (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:115:19)\n at Object.smartLink (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/api/web.js:62:27)\n at eval (eval at compile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:662:12), <anonymous>:60:18)\n at DOMxRef (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:692:17)\n at /Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:258:40\n at new Promise (<anonymous>)\n at tryHandleCache (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:256:14)\n at Object.exports.renderFile (/Users/peterbe/dev/MOZILLA/MDN/yari/node_modules/ejs/lib/ejs.js:489:10)\n at Templates.render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/templates.js:120:32)\n at render (/Users/peterbe/dev/MOZILLA/MDN/yari/kumascript/src/render.js:220:48)","offset":9,"line":1884,"column":78,"macroName":"domxref","sourceContext":" 1882 | <h3 id=\"Textures_2\">Textures</h3>\n 1883 | \n 1884 | <p>Constants passed to {{domxref(\"WebGLRenderingContext.texParameteri()\")}}, {{domxref(\"WebGLRenderingContext.texParameterf()\")}}, {{domxref(\"WebGLRenderingContext.bindTexture()\")}}, {{domxref(\"WebGLRenderingContext.texImage2D()\")}}, and others.</p>\n-------------------------------------------------------------------------------------^\n 1885 | \n 1886 | <table class=\"standard-table\">","fatal":false,"macroSource":"{{domxref(\"WebGLRenderingContext.texParameterf()\")}}","redirectInfo":{"current":"WebGLRenderingContext.texParameterf()","suggested":"WebGLRenderingContext.texParameter"},"filepath":"/Users/peterbe/dev/MOZILLA/MDN/content/files/en-us/web/api/webgl_api/constants/index.html"}],"heading_links":[{"explanation":"h3 heading contains an <a> tag","id":"heading_links1","before":"<a href=\"/en-US/docs/Web/API/ANGLE_instanced_arrays\"><code>ANGLE_instanced_arrays</code></a>","fixable":false,"html":"<h3 id=\"domxref(ANGLE_instanced_arrays)\"><a href=\"/en-US/docs/Web/API/ANGLE_instanced_arrays\"><code>ANGLE_instanced_arrays</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links2","before":"<a href=\"/en-US/docs/Web/API/WEBGL_debug_renderer_info\"><code>WEBGL_debug_renderer_info</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_debug_renderer_info)\"><a href=\"/en-US/docs/Web/API/WEBGL_debug_renderer_info\"><code>WEBGL_debug_renderer_info</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links3","before":"<a href=\"/en-US/docs/Web/API/EXT_texture_filter_anisotropic\"><code>EXT_texture_filter_anisotropic</code></a>","fixable":false,"html":"<h3 id=\"domxref(EXT_texture_filter_anisotropic)\"><a href=\"/en-US/docs/Web/API/EXT_texture_filter_anisotropic\"><code>EXT_texture_filter_anisotropic</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links4","before":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_s3tc\"><code>WEBGL_compressed_texture_s3tc</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_compressed_texture_s3tc)\"><a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_s3tc\"><code>WEBGL_compressed_texture_s3tc</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links5","before":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_etc\"><code>WEBGL_compressed_texture_etc</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_compressed_texture_etc)\"><a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_etc\"><code>WEBGL_compressed_texture_etc</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links6","before":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_pvrtc\"><code>WEBGL_compressed_texture_pvrtc</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_compressed_texture_pvrtc)\"><a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_pvrtc\"><code>WEBGL_compressed_texture_pvrtc</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links7","before":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_etc1\"><code>WEBGL_compressed_texture_etc1</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_compressed_texture_etc1)\"><a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_etc1\"><code>WEBGL_compressed_texture_etc1</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links8","before":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_atc\"><code>WEBGL_compressed_texture_atc</code></a><svg class=\"icon deprecated\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\">\n <title>This deprecated API should no longer be used, but will probably still work.</title>\n <path d=\"M19.4 24.8a3.6 3.6 0 11-7.2 0 3.6 3.6 0 117.2 0zm9 28.8v-36a3.62 3.62 0 00-3.6-3.6H8.6A3.62 3.62 0 005 17.6v36a3.62 3.62 0 003.6 3.6h16.2a3.62 3.62 0 003.6-3.6zm63.51-8.38A13.16 13.16 0 0195 53.6a11 11 0 01-10.8 10.8H68.62a13.47 13.47 0 001.63 3.6c1.46 2.92 3.15 6.19 3.15 10.8 0 4.33 0 14.4-12.6 14.4a3.54 3.54 0 01-2.53-1.07c-2.42-2.36-3.1-5.85-3.71-9.17s-1.3-6.64-3.49-8.83a75.84 75.84 0 01-5.68-6.75c-2.48-3.26-7.88-10-10-10.12a3.76 3.76 0 01-3.39-3.6V17.6a3.71 3.71 0 013.6-3.6c2-.06 5.34-1.24 8.89-2.47C50.56 9.44 58.16 6.8 66.2 6.8h7.26c5 .06 8.66 1.52 11.08 4.39 2.13 2.53 3.09 6 2.75 10.18a11.47 11.47 0 013 5.29 11.87 11.87 0 010 6.58 11.87 11.87 0 012.42 7.7 15.2 15.2 0 01-.84 4.28z\" fill=\"currentColor\"></path>\n</svg>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_compressed_texture_atc)\"><a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_atc\"><code>WEBGL_compressed_texture_atc</code></a><svg class=\"icon deprecated\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\">\n <title>This deprecated API should no longer be used, but will probably still work.</title>\n <path d=\"M19.4 24.8a3.6 3.6 0 11-7.2 0 3.6 3.6 0 117.2 0zm9 28.8v-36a3.62 3.62 0 00-3.6-3.6H8.6A3.62 3.62 0 005 17.6v36a3.62 3.62 0 003.6 3.6h16.2a3.62 3.62 0 003.6-3.6zm63.51-8.38A13.16 13.16 0 0195 53.6a11 11 0 01-10.8 10.8H68.62a13.47 13.47 0 001.63 3.6c1.46 2.92 3.15 6.19 3.15 10.8 0 4.33 0 14.4-12.6 14.4a3.54 3.54 0 01-2.53-1.07c-2.42-2.36-3.1-5.85-3.71-9.17s-1.3-6.64-3.49-8.83a75.84 75.84 0 01-5.68-6.75c-2.48-3.26-7.88-10-10-10.12a3.76 3.76 0 01-3.39-3.6V17.6a3.71 3.71 0 013.6-3.6c2-.06 5.34-1.24 8.89-2.47C50.56 9.44 58.16 6.8 66.2 6.8h7.26c5 .06 8.66 1.52 11.08 4.39 2.13 2.53 3.09 6 2.75 10.18a11.47 11.47 0 013 5.29 11.87 11.87 0 010 6.58 11.87 11.87 0 012.42 7.7 15.2 15.2 0 01-.84 4.28z\" fill=\"currentColor\"></path>\n</svg></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links9","before":"<a href=\"/en-US/docs/Web/API/WEBGL_depth_texture\"><code>WEBGL_depth_texture</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_depth_texture)\"><a href=\"/en-US/docs/Web/API/WEBGL_depth_texture\"><code>WEBGL_depth_texture</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links10","before":"<a href=\"/en-US/docs/Web/API/OES_texture_half_float\"><code>OES_texture_half_float</code></a>","fixable":false,"html":"<h3 id=\"domxref(OES_texture_half_float)\"><a href=\"/en-US/docs/Web/API/OES_texture_half_float\"><code>OES_texture_half_float</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links11","before":"<a href=\"/en-US/docs/Web/API/WEBGL_color_buffer_float\"><code>WEBGL_color_buffer_float</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_color_buffer_float)\"><a href=\"/en-US/docs/Web/API/WEBGL_color_buffer_float\"><code>WEBGL_color_buffer_float</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links12","before":"<a href=\"/en-US/docs/Web/API/EXT_blend_minmax\"><code>EXT_blend_minmax</code></a>","fixable":false,"html":"<h3 id=\"domxref(EXT_blend_minmax)\"><a href=\"/en-US/docs/Web/API/EXT_blend_minmax\"><code>EXT_blend_minmax</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links13","before":"<a href=\"/en-US/docs/Web/API/EXT_sRGB\"><code>EXT_sRGB</code></a>","fixable":false,"html":"<h3 id=\"domxref(EXT_sRGB)\"><a href=\"/en-US/docs/Web/API/EXT_sRGB\"><code>EXT_sRGB</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links14","before":"<a href=\"/en-US/docs/Web/API/OES_standard_derivatives\"><code>OES_standard_derivatives</code></a>","fixable":false,"html":"<h3 id=\"domxref(OES_standard_derivatives)\"><a href=\"/en-US/docs/Web/API/OES_standard_derivatives\"><code>OES_standard_derivatives</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links15","before":"<a href=\"/en-US/docs/Web/API/WEBGL_draw_buffers\"><code>WEBGL_draw_buffers</code></a>","fixable":false,"html":"<h3 id=\"domxref(WEBGL_draw_buffers)\"><a href=\"/en-US/docs/Web/API/WEBGL_draw_buffers\"><code>WEBGL_draw_buffers</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links16","before":"<a href=\"/en-US/docs/Web/API/OES_vertex_array_object\"><code>OES_vertex_array_object</code></a>","fixable":false,"html":"<h3 id=\"domxref(OES_vertex_array_object)\"><a href=\"/en-US/docs/Web/API/OES_vertex_array_object\"><code>OES_vertex_array_object</code></a></h3>","suggestion":null,"line":null,"column":null},{"explanation":"h3 heading contains an <a> tag","id":"heading_links17","before":"<a href=\"/en-US/docs/Web/API/EXT_disjoint_timer_query\"><code>EXT_disjoint_timer_query</code></a>","fixable":false,"html":"<h3 id=\"domxref(EXT_disjoint_timer_query)\"><a href=\"/en-US/docs/Web/API/EXT_disjoint_timer_query\"><code>EXT_disjoint_timer_query</code></a></h3>","suggestion":null,"line":null,"column":null}]},"title":"WebGL constants","mdn_url":"/en-US/docs/Web/API/WebGL_API/Constants","locale":"en-US","native":"English (US)","sidebarHTML":"\n <ol>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API\"><strong>WebGL API</strong></a></li>\n <li class=\"toggle\">\n <details open=\"\">\n <summary>WebGL tutorial</summary>\n <ol>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL\">Getting started with WebGL</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context\">Adding 2D content to a WebGL context</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL\">Using shaders to apply color in WebGL</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL\">Animating objects with WebGL</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL\">Creating 3D objects using WebGL</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL\">Using textures in WebGL</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Lighting_in_WebGL\">Lighting in WebGL</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL\">Animating textures in WebGL</a></li>\n </ol>\n </details>\n </li>\n <li class=\"toggle\">\n <details open=\"\">\n <summary>Examples and articles</summary>\n <ol>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Matrix_math_for_the_web\">Matrix math for the web</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/WebGL_model_view_projection\">WebGL model view projection</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/WebGL_best_practices\">WebGL best practices</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Using_Extensions\">Using WebGL extensions</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/Basic_2D_animation_example\">A basic 2D WebGL animation example</a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL_API/By_example\">WebGL by example</a></li>\n </ol>\n </details>\n </li>\n <li class=\"toggle\">\n <details open=\"\">\n <summary>Interfaces</summary>\n <ol>\n <li><a href=\"/en-US/docs/Web/API/WebGLRenderingContext\"><code>WebGLRenderingContext</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGL2RenderingContext\"><code>WebGL2RenderingContext</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLActiveInfo\"><code>WebGLActiveInfo</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLBuffer\"><code>WebGLBuffer</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLContextEvent\"><code>WebGLContextEvent</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLFramebuffer\"><code>WebGLFramebuffer</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLProgram\"><code>WebGLProgram</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLQuery\"><code>WebGLQuery</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLRenderbuffer\"><code>WebGLRenderbuffer</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLSampler\"><code>WebGLSampler</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLShader\"><code>WebGLShader</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLShaderPrecisionFormat\"><code>WebGLShaderPrecisionFormat</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLSync\"><code>WebGLSync</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLTexture\"><code>WebGLTexture</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLTransformFeedback\"><code>WebGLTransformFeedback</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLUniformLocation\"><code>WebGLUniformLocation</code></a></li>\n <li><a href=\"/en-US/docs/Web/API/WebGLVertexArrayObject\"><code>WebGLVertexArrayObject</code></a></li>\n </ol>\n </details>\n </li>\n\n <li><strong><a href=\"/en-US/docs/MDN\">Documentation:</a></strong></li>\n <li class=\"toggle\">\n <details>\n <summary>Contribute</summary>\n <ol>\n <li><a href=\"/en-US/docs/MDN\">The MDN project</a></li>\n </ol>\n </details>\n </li>\n </ol>\n","body":[{"type":"prose","value":{"id":null,"title":null,"isH3":false,"content":"<div></div>\n\n<p>The <a href=\"/en-US/docs/Web/API/WebGL_API\">WebGL API</a> provides several constants that are passed into or returned by functions. All constants are of type <a href=\"/en-US/docs/Web/API/WebGL_API/Types\" data-flaw-src=\"{{domxref(&quot;GLenum&quot;)}}\"><code>GLenum</code></a>.</p>\n\n<p>Standard WebGL constants are installed on the <a href=\"/en-US/docs/Web/API/WebGLRenderingContext\"><code>WebGLRenderingContext</code></a> and <a href=\"/en-US/docs/Web/API/WebGL2RenderingContext\"><code>WebGL2RenderingContext</code></a> objects, so that you use them as <code>gl.CONSTANT_NAME</code>:</p>\n\n<pre class=\"brush: js notranslate\"><code><span class=\"token keyword\">var</span> canvas <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">getElementById</span><span class=\"token punctuation\">(</span><span class=\"token string\">'myCanvas'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">var</span> gl <span class=\"token operator\">=</span> canvas<span class=\"token punctuation\">.</span><span class=\"token function\">getContext</span><span class=\"token punctuation\">(</span><span class=\"token string\">'webgl'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\ngl<span class=\"token punctuation\">.</span><span class=\"token function\">getParameter</span><span class=\"token punctuation\">(</span>gl<span class=\"token punctuation\">.</span><span class=\"token constant\">LINE_WIDTH</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n\n<p>Some constants are also provided by <a href=\"/en-US/docs/Web/API/WebGL_API/Using_Extensions\">WebGL extensions</a>. A <a href=\"#constants_defined_in_webgl_extensions\">list</a> is provided below.</p>\n\n<pre class=\"brush: js notranslate\"><code><span class=\"token keyword\">var</span> debugInfo <span class=\"token operator\">=</span> gl<span class=\"token punctuation\">.</span><span class=\"token function\">getExtension</span><span class=\"token punctuation\">(</span><span class=\"token string\">'WEBGL_debug_renderer_info'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">var</span> vendor <span class=\"token operator\">=</span> gl<span class=\"token punctuation\">.</span><span class=\"token function\">getParameter</span><span class=\"token punctuation\">(</span>debugInfo<span class=\"token punctuation\">.</span><span class=\"token constant\">UNMASKED_VENDOR_WEBGL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n\n<p>The <a href=\"/en-US/docs/Web/API/WebGL_API/Tutorial\" title=\"WebGL tutorial\">WebGL tutorial</a> has more information, examples, and resources on how to get started with WebGL.</p>"}},{"type":"prose","value":{"id":"Table_of_contents","title":"Table of contents","isH3":false,"content":"<ul>\n <li><a href=\"#standard_webgl_1_constants\">Standard WebGL 1 constants</a></li>\n <li><a href=\"#additional_constants_defined_webgl_2\">Standard WebGL 2 constants</a></li>\n <li><a href=\"#constants_defined_in_webgl_extensions\">WebGL extension constants</a></li>\n</ul>"}},{"type":"prose","value":{"id":"Standard_WebGL_1_constants","title":"Standard WebGL 1 constants","isH3":false,"content":"<p>These constants are defined on the <a href=\"/en-US/docs/Web/API/WebGLRenderingContext\"><code>WebGLRenderingContext</code></a> interface.</p>"}},{"type":"prose","value":{"id":"Clearing_buffers","title":"Clearing buffers","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/clear\"><code>WebGLRenderingContext.clear()</code></a> to clear buffer masks.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DEPTH_BUFFER_BIT</code></td>\n <td>0x00000100</td>\n <td>Passed to <code>clear</code> to clear the current depth buffer.</td>\n </tr>\n <tr>\n <td><code>STENCIL_BUFFER_BIT</code></td>\n <td>0x00000400</td>\n <td>Passed to <code>clear</code> to clear the current stencil buffer.</td>\n </tr>\n <tr>\n <td><code>COLOR_BUFFER_BIT</code></td>\n <td>0x00004000</td>\n <td>Passed to <code>clear</code> to clear the current color buffer.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Rendering_primitives","title":"Rendering primitives","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/drawElements\"><code>WebGLRenderingContext.drawElements()</code></a> or <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/drawArrays\"><code>WebGLRenderingContext.drawArrays()</code></a> to specify what kind of primitive to render.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>POINTS</code></td>\n <td>0x0000</td>\n <td>Passed to <code>drawElements</code> or <code>drawArrays</code> to draw single points.</td>\n </tr>\n <tr>\n <td><code>LINES</code></td>\n <td>0x0001</td>\n <td>Passed to <code>drawElements</code> or <code>drawArrays</code> to draw lines. Each vertex connects to the one after it.</td>\n </tr>\n <tr>\n <td><code>LINE_LOOP</code></td>\n <td>0x0002</td>\n <td>Passed to <code>drawElements</code> or <code>drawArrays</code> to draw lines. Each set of two vertices is treated as a separate line segment.</td>\n </tr>\n <tr>\n <td><code>LINE_STRIP</code></td>\n <td>0x0003</td>\n <td>Passed to <code>drawElements</code> or <code>drawArrays</code> to draw a connected group of line segments from the first vertex to the last.</td>\n </tr>\n <tr>\n <td><code>TRIANGLES</code></td>\n <td>0x0004</td>\n <td>Passed to <code>drawElements</code> or <code>drawArrays</code> to draw triangles. Each set of three vertices creates a separate triangle.</td>\n </tr>\n <tr>\n <td><code>TRIANGLE_STRIP</code></td>\n <td>0x0005</td>\n <td>Passed to <code>drawElements</code> or <code>drawArrays</code> to draw a connected group of triangles.</td>\n </tr>\n <tr>\n <td><code>TRIANGLE_FAN</code></td>\n <td>0x0006</td>\n <td>Passed to <code>drawElements</code> or <code>drawArrays</code> to draw a connected group of triangles. Each vertex connects to the previous and the first vertex in the fan.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Blending_modes","title":"Blending modes","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/blendFunc\"><code>WebGLRenderingContext.blendFunc()</code></a> or <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/blendFuncSeparate\"><code>WebGLRenderingContext.blendFuncSeparate()</code></a> to specify the blending mode (for both, RBG and alpha, or separately).</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>ZERO</code></td>\n <td>0</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to turn off a component.</td>\n </tr>\n <tr>\n <td><code>ONE</code></td>\n <td>1</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to turn on a component.</td>\n </tr>\n <tr>\n <td><code>SRC_COLOR</code></td>\n <td>0x0300</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by the source elements color.</td>\n </tr>\n <tr>\n <td><code>ONE_MINUS_SRC_COLOR</code></td>\n <td>0x0301</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by one minus the source elements color.</td>\n </tr>\n <tr>\n <td><code>SRC_ALPHA</code></td>\n <td>0x0302</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by the source's alpha.</td>\n </tr>\n <tr>\n <td><code>ONE_MINUS_SRC_ALPHA</code></td>\n <td>0x0303</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by one minus the source's alpha.</td>\n </tr>\n <tr>\n <td><code>DST_ALPHA</code></td>\n <td>0x0304</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by the destination's alpha.</td>\n </tr>\n <tr>\n <td><code>ONE_MINUS_DST_ALPHA</code></td>\n <td>0x0305</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by one minus the destination's alpha.</td>\n </tr>\n <tr>\n <td><code>DST_COLOR</code></td>\n <td>0x0306</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by the destination's color.</td>\n </tr>\n <tr>\n <td><code>ONE_MINUS_DST_COLOR</code></td>\n <td>0x0307</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by one minus the destination's color.</td>\n </tr>\n <tr>\n <td><code>SRC_ALPHA_SATURATE</code></td>\n <td>0x0308</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to multiply a component by the minimum of source's alpha or one minus the destination's alpha.</td>\n </tr>\n <tr>\n <td><code>CONSTANT_COLOR</code></td>\n <td>0x8001</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to specify a constant color blend function.</td>\n </tr>\n <tr>\n <td><code>ONE_MINUS_CONSTANT_COLOR</code></td>\n <td>0x8002</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to specify one minus a constant color blend function.</td>\n </tr>\n <tr>\n <td><code>CONSTANT_ALPHA</code></td>\n <td>0x8003</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to specify a constant alpha blend function.</td>\n </tr>\n <tr>\n <td><code>ONE_MINUS_CONSTANT_ALPHA</code></td>\n <td>0x8004</td>\n <td>Passed to <code>blendFunc</code> or <code>blendFuncSeparate</code> to specify one minus a constant alpha blend function.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Blending_equations","title":"Blending equations","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/blendEquation\"><code>WebGLRenderingContext.blendEquation()</code></a> or <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/blendEquationSeparate\"><code>WebGLRenderingContext.blendEquationSeparate()</code></a> to control how the blending is calculated (for both, RBG and alpha, or separately).</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>FUNC_ADD</code></td>\n <td>0x8006</td>\n <td>Passed to <code>blendEquation</code> or <code>blendEquationSeparate</code> to set an addition blend function.</td>\n </tr>\n <tr>\n <td><code>FUNC_SUBTRACT</code></td>\n <td>0x800A</td>\n <td>Passed to <code>blendEquation</code> or <code>blendEquationSeparate</code> to specify a subtraction blend function (source - destination).</td>\n </tr>\n <tr>\n <td><code>FUNC_REVERSE_SUBTRACT</code></td>\n <td>0x800B</td>\n <td>Passed to <code>blendEquation</code> or <code>blendEquationSeparate</code> to specify a reverse subtraction blend function (destination - source).</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Getting_GL_parameter_information","title":"Getting GL parameter information","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/getParameter\"><code>WebGLRenderingContext.getParameter()</code></a> to specify what information to return.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>BLEND_EQUATION</code></td>\n <td>0x8009</td>\n <td>Passed to <code>getParameter</code> to get the current RGB blend function.</td>\n </tr>\n <tr>\n <td><code>BLEND_EQUATION_RGB</code></td>\n <td>0x8009</td>\n <td>Passed to <code>getParameter</code> to get the current RGB blend function. Same as BLEND_EQUATION</td>\n </tr>\n <tr>\n <td><code>BLEND_EQUATION_ALPHA</code></td>\n <td>0x883D</td>\n <td>Passed to <code>getParameter</code> to get the current alpha blend function. Same as BLEND_EQUATION</td>\n </tr>\n <tr>\n <td><code>BLEND_DST_RGB</code></td>\n <td>0x80C8</td>\n <td>Passed to <code>getParameter</code> to get the current destination RGB blend function.</td>\n </tr>\n <tr>\n <td><code>BLEND_SRC_RGB</code></td>\n <td>0x80C9</td>\n <td>Passed to <code>getParameter</code> to get the current destination RGB blend function.</td>\n </tr>\n <tr>\n <td><code>BLEND_DST_ALPHA</code></td>\n <td>0x80CA</td>\n <td>Passed to <code>getParameter</code> to get the current destination alpha blend function.</td>\n </tr>\n <tr>\n <td><code>BLEND_SRC_ALPHA</code></td>\n <td>0x80CB</td>\n <td>Passed to <code>getParameter</code> to get the current source alpha blend function.</td>\n </tr>\n <tr>\n <td><code>BLEND_COLOR</code></td>\n <td>0x8005</td>\n <td>Passed to <code>getParameter</code> to return a the current blend color.</td>\n </tr>\n <tr>\n <td><code>ARRAY_BUFFER_BINDING</code></td>\n <td>0x8894</td>\n <td>Passed to <code>getParameter</code> to get the array buffer binding.</td>\n </tr>\n <tr>\n <td><code>ELEMENT_ARRAY_BUFFER_BINDING</code></td>\n <td>0x8895</td>\n <td>Passed to <code>getParameter</code> to get the current element array buffer.</td>\n </tr>\n <tr>\n <td><code>LINE_WIDTH</code></td>\n <td>0x0B21</td>\n <td>Passed to <code>getParameter</code> to get the current <code>lineWidth</code> (set by the <code>lineWidth</code> method).</td>\n </tr>\n <tr>\n <td><code>ALIASED_POINT_SIZE_RANGE</code></td>\n <td>0x846D</td>\n <td>Passed to <code>getParameter</code> to get the current size of a point drawn with <code>gl.POINTS</code></td>\n </tr>\n <tr>\n <td><code>ALIASED_LINE_WIDTH_RANGE</code></td>\n <td>0x846E</td>\n <td>Passed to <code>getParameter</code> 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.</td>\n </tr>\n <tr>\n <td><code>CULL_FACE_MODE</code></td>\n <td>0x0B45</td>\n <td>Passed to <code>getParameter</code> to get the current value of <code>cullFace</code>. Should return <code>FRONT</code>, <code>BACK</code>, or <code>FRONT_AND_BACK</code></td>\n </tr>\n <tr>\n <td><code>FRONT_FACE</code></td>\n <td>0x0B46</td>\n <td>Passed to <code>getParameter</code> to determine the current value of <code>frontFace</code>. Should return <code>CW</code> or <code>CCW</code>.</td>\n </tr>\n <tr>\n <td><code>DEPTH_RANGE</code></td>\n <td>0x0B70</td>\n <td>Passed to <code>getParameter</code> to return a length-2 array of floats giving the current depth range.</td>\n </tr>\n <tr>\n <td><code>DEPTH_WRITEMASK</code></td>\n <td>0x0B72</td>\n <td>Passed to <code>getParameter</code> to determine if the depth write mask is enabled.</td>\n </tr>\n <tr>\n <td><code>DEPTH_CLEAR_VALUE</code></td>\n <td>0x0B73</td>\n <td>Passed to <code>getParameter</code> to determine the current depth clear value.</td>\n </tr>\n <tr>\n <td><code>DEPTH_FUNC</code></td>\n <td>0x0B74</td>\n <td>Passed to <code>getParameter</code> to get the current depth function. Returns <code>NEVER</code>, <code>ALWAYS</code>, <code>LESS</code>, <code>EQUAL</code>, <code>LEQUAL</code>, <code>GREATER</code>, <code>GEQUAL</code>, or <code>NOTEQUAL</code>.</td>\n </tr>\n <tr>\n <td><code>STENCIL_CLEAR_VALUE</code></td>\n <td>0x0B91</td>\n <td>Passed to <code>getParameter</code> to get the value the stencil will be cleared to.</td>\n </tr>\n <tr>\n <td><code>STENCIL_FUNC</code></td>\n <td>0x0B92</td>\n <td>Passed to <code>getParameter</code> to get the current stencil function. Returns <code>NEVER</code>, <code>ALWAYS</code>, <code>LESS</code>, <code>EQUAL</code>, <code>LEQUAL</code>, <code>GREATER</code>, <code>GEQUAL</code>, or <code>NOTEQUAL</code>.</td>\n </tr>\n <tr>\n <td><code>STENCIL_FAIL</code></td>\n <td>0x0B94</td>\n <td>Passed to <code>getParameter</code> to get the current stencil fail function. Should return <code>KEEP</code>, <code>REPLACE</code>, <code>INCR</code>, <code>DECR</code>, <code>INVERT</code>, <code>INCR_WRAP</code>, or <code>DECR_WRAP</code>.</td>\n </tr>\n <tr>\n <td><code>STENCIL_PASS_DEPTH_FAIL</code></td>\n <td>0x0B95</td>\n <td>Passed to <code>getParameter</code> to get the current stencil fail function should the depth buffer test fail. Should return <code>KEEP</code>, <code>REPLACE</code>, <code>INCR</code>, <code>DECR</code>, <code>INVERT</code>, <code>INCR_WRAP</code>, or <code>DECR_WRAP</code>.</td>\n </tr>\n <tr>\n <td><code>STENCIL_PASS_DEPTH_PASS</code></td>\n <td>0x0B96</td>\n <td>Passed to <code>getParameter</code> 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.</td>\n </tr>\n <tr>\n <td><code>STENCIL_REF</code></td>\n <td>0x0B97</td>\n <td>Passed to <code>getParameter</code> to get the reference value used for stencil tests.</td>\n </tr>\n <tr>\n <td><code>STENCIL_VALUE_MASK</code></td>\n <td>0x0B93</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_WRITEMASK</code></td>\n <td>0x0B98</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BACK_FUNC</code></td>\n <td>0x8800</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BACK_FAIL</code></td>\n <td>0x8801</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BACK_PASS_DEPTH_FAIL</code></td>\n <td>0x8802</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BACK_PASS_DEPTH_PASS</code></td>\n <td>0x8803</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BACK_REF</code></td>\n <td>0x8CA3</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BACK_VALUE_MASK</code></td>\n <td>0x8CA4</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BACK_WRITEMASK</code></td>\n <td>0x8CA5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VIEWPORT</code></td>\n <td>0x0BA2</td>\n <td>Returns an <a href=\"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array\"><code>Int32Array</code></a> with four elements for the current viewport dimensions.</td>\n </tr>\n <tr>\n <td><code>SCISSOR_BOX</code></td>\n <td>0x0C10</td>\n <td>Returns an <a href=\"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array\"><code>Int32Array</code></a> with four elements for the current scissor box dimensions.</td>\n </tr>\n <tr>\n <td><code>COLOR_CLEAR_VALUE</code></td>\n <td>0x0C22</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_WRITEMASK</code></td>\n <td>0x0C23</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_ALIGNMENT</code></td>\n <td>0x0CF5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>PACK_ALIGNMENT</code></td>\n <td>0x0D05</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_TEXTURE_SIZE</code></td>\n <td>0x0D33</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_VIEWPORT_DIMS</code></td>\n <td>0x0D3A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SUBPIXEL_BITS</code></td>\n <td>0x0D50</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RED_BITS</code></td>\n <td>0x0D52</td>\n <td></td>\n </tr>\n <tr>\n <td><code>GREEN_BITS</code></td>\n <td>0x0D53</td>\n <td></td>\n </tr>\n <tr>\n <td><code>BLUE_BITS</code></td>\n <td>0x0D54</td>\n <td></td>\n </tr>\n <tr>\n <td><code>ALPHA_BITS</code></td>\n <td>0x0D55</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_BITS</code></td>\n <td>0x0D56</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_BITS</code></td>\n <td>0x0D57</td>\n <td></td>\n </tr>\n <tr>\n <td><code>POLYGON_OFFSET_UNITS</code></td>\n <td>0x2A00</td>\n <td></td>\n </tr>\n <tr>\n <td><code>POLYGON_OFFSET_FACTOR</code></td>\n <td>0x8038</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_BINDING_2D</code></td>\n <td>0x8069</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLE_BUFFERS</code></td>\n <td>0x80A8</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLES</code></td>\n <td>0x80A9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLE_COVERAGE_VALUE</code></td>\n <td>0x80AA</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLE_COVERAGE_INVERT</code></td>\n <td>0x80AB</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COMPRESSED_TEXTURE_FORMATS</code></td>\n <td>0x86A3</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VENDOR</code></td>\n <td>0x1F00</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERER</code></td>\n <td>0x1F01</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERSION</code></td>\n <td>0x1F02</td>\n <td></td>\n </tr>\n <tr>\n <td><code>IMPLEMENTATION_COLOR_READ_TYPE</code></td>\n <td>0x8B9A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>IMPLEMENTATION_COLOR_READ_FORMAT</code></td>\n <td>0x8B9B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>BROWSER_DEFAULT_WEBGL</code></td>\n <td>0x9244</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Buffers","title":"Buffers","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/bufferData\"><code>WebGLRenderingContext.bufferData()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/bufferSubData\"><code>WebGLRenderingContext.bufferSubData()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/bindBuffer\"><code>WebGLRenderingContext.bindBuffer()</code></a>, or <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/getBufferParameter\"><code>WebGLRenderingContext.getBufferParameter()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>STATIC_DRAW</code></td>\n <td>0x88E4</td>\n <td>Passed to <code>bufferData</code> as a hint about whether the contents of the buffer are likely to be used often and not change often.</td>\n </tr>\n <tr>\n <td><code>STREAM_DRAW</code></td>\n <td>0x88E0</td>\n <td>Passed to <code>bufferData</code> as a hint about whether the contents of the buffer are likely to not be used often.</td>\n </tr>\n <tr>\n <td><code>DYNAMIC_DRAW</code></td>\n <td>0x88E8</td>\n <td>Passed to <code>bufferData</code> as a hint about whether the contents of the buffer are likely to be used often and change often.</td>\n </tr>\n <tr>\n <td><code>ARRAY_BUFFER</code></td>\n <td>0x8892</td>\n <td>Passed to <code>bindBuffer</code> or <code>bufferData</code> to specify the type of buffer being used.</td>\n </tr>\n <tr>\n <td><code>ELEMENT_ARRAY_BUFFER</code></td>\n <td>0x8893</td>\n <td>Passed to <code>bindBuffer</code> or <code>bufferData</code> to specify the type of buffer being used.</td>\n </tr>\n <tr>\n <td><code>BUFFER_SIZE</code></td>\n <td>0x8764</td>\n <td>Passed to <code>getBufferParameter</code> to get a buffer's size.</td>\n </tr>\n <tr>\n <td><code>BUFFER_USAGE</code></td>\n <td>0x8765</td>\n <td>Passed to&nbsp;<code>getBufferParameter</code> to get the hint for the buffer passed in when it was created.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Vertex_attributes","title":"Vertex attributes","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/getVertexAttrib\"><code>WebGLRenderingContext.getVertexAttrib()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>CURRENT_VERTEX_ATTRIB</code></td>\n <td>0x8626</td>\n <td>Passed to <code>getVertexAttrib</code> to read back the current vertex attribute.</td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_ENABLED</code></td>\n <td>0x8622</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_SIZE</code></td>\n <td>0x8623</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_STRIDE</code></td>\n <td>0x8624</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_TYPE</code></td>\n <td>0x8625</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_NORMALIZED</code></td>\n <td>0x886A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_POINTER</code></td>\n <td>0x8645</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_BUFFER_BINDING</code></td>\n <td>0x889F</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Culling","title":"Culling","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/cullFace\"><code>WebGLRenderingContext.cullFace()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>CULL_FACE</code></td>\n <td>0x0B44</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off culling. Can also be used with <code>getParameter</code> to find the current culling method.</td>\n </tr>\n <tr>\n <td><code>FRONT</code></td>\n <td>0x0404</td>\n <td>Passed to <code>cullFace</code> to specify that only front faces should be culled.</td>\n </tr>\n <tr>\n <td><code>BACK</code></td>\n <td>0x0405</td>\n <td>Passed to <code>cullFace</code> to specify that only back faces should be culled.</td>\n </tr>\n <tr>\n <td><code>FRONT_AND_BACK</code></td>\n <td>0x0408</td>\n <td>Passed to&nbsp;<code>cullFace</code> to specify that front and back faces should be culled.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Enabling_and_disabling","title":"Enabling and disabling","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/enable\"><code>WebGLRenderingContext.enable()</code></a> or <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/disable\"><code>WebGLRenderingContext.disable()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>BLEND</code></td>\n <td>0x0BE2</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off blending. Can also be used with <code>getParameter</code> to find the current blending method.</td>\n </tr>\n <tr>\n <td><code>DEPTH_TEST</code></td>\n <td>0x0B71</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off the depth test. Can also be used with <code>getParameter</code> to query the depth test.</td>\n </tr>\n <tr>\n <td><code>DITHER</code></td>\n <td>0x0BD0</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off dithering. Can also be used with <code>getParameter</code> to find the current dithering method.</td>\n </tr>\n <tr>\n <td><code>POLYGON_OFFSET_FILL</code></td>\n <td>0x8037</td>\n <td>Passed to <code>enable</code>/<code>disable</code> 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 <code>getParameter</code> to query the scissor test.</td>\n </tr>\n <tr>\n <td><code>SAMPLE_ALPHA_TO_COVERAGE</code></td>\n <td>0x809E</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off the alpha to coverage. Used in multi-sampling alpha channels.</td>\n </tr>\n <tr>\n <td><code>SAMPLE_COVERAGE</code></td>\n <td>0x80A0</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off the sample coverage. Used in multi-sampling.</td>\n </tr>\n <tr>\n <td><code>SCISSOR_TEST</code></td>\n <td>0x0C11</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off the scissor test. Can also be used with <code>getParameter</code> to query the scissor test.</td>\n </tr>\n <tr>\n <td><code>STENCIL_TEST</code></td>\n <td>0x0B90</td>\n <td>Passed to <code>enable</code>/<code>disable</code> to turn on/off the stencil test. Can also be used with <code>getParameter</code> to query the stencil test.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Errors","title":"Errors","isH3":true,"content":"<p>Constants returned from <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/getError\"><code>WebGLRenderingContext.getError()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>NO_ERROR</code></td>\n <td>0</td>\n <td>Returned from <code>getError</code>.</td>\n </tr>\n <tr>\n <td><code>INVALID_ENUM</code></td>\n <td>0x0500</td>\n <td>Returned from <code>getError</code>.</td>\n </tr>\n <tr>\n <td><code>INVALID_VALUE</code></td>\n <td>0x0501</td>\n <td>Returned from <code>getError</code>.</td>\n </tr>\n <tr>\n <td><code>INVALID_OPERATION</code></td>\n <td>0x0502</td>\n <td>Returned from <code>getError</code>.</td>\n </tr>\n <tr>\n <td><code>OUT_OF_MEMORY</code></td>\n <td>0x0505</td>\n <td>Returned from <code>getError</code>.</td>\n </tr>\n <tr>\n <td><code>CONTEXT_LOST_WEBGL</code></td>\n <td>0x9242</td>\n <td>Returned from <code>getError</code>.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Front_face_directions","title":"Front face directions","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/frontFace\"><code>WebGLRenderingContext.frontFace()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>CW</code></td>\n <td>0x0900</td>\n <td>Passed to <code>frontFace</code> to specify the front face of a polygon is drawn in the clockwise direction</td>\n </tr>\n <tr>\n <td><code>CCW</code></td>\n <td>0x0901</td>\n <td>Passed to <code>frontFace</code> to specify the front face of a polygon is drawn in the counter clockwise direction</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Hints","title":"Hints","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/hint\"><code>WebGLRenderingContext.hint()</code></a></p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DONT_CARE</code></td>\n <td>0x1100</td>\n <td>There is no preference for this behavior.</td>\n </tr>\n <tr>\n <td><code>FASTEST</code></td>\n <td>0x1101</td>\n <td>The most efficient behavior should be used.</td>\n </tr>\n <tr>\n <td><code>NICEST</code></td>\n <td>0x1102</td>\n <td>The most correct or the highest quality option should be used.</td>\n </tr>\n <tr>\n <td><code>GENERATE_MIPMAP_HINT</code></td>\n <td>0x8192</td>\n <td>Hint for the quality of filtering when generating mipmap images with <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/generateMipmap\"><code>WebGLRenderingContext.generateMipmap()</code></a>.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Data_types","title":"Data types","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>BYTE</code></td>\n <td>0x1400</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_BYTE</code></td>\n <td>0x1401</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SHORT</code></td>\n <td>0x1402</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_SHORT</code></td>\n <td>0x1403</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT</code></td>\n <td>0x1404</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT</code></td>\n <td>0x1405</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT</code></td>\n <td>0x1406</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Pixel_formats","title":"Pixel formats","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DEPTH_COMPONENT</code></td>\n <td>0x1902</td>\n <td></td>\n </tr>\n <tr>\n <td><code>ALPHA</code></td>\n <td>0x1906</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB</code></td>\n <td>0x1907</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA</code></td>\n <td>0x1908</td>\n <td></td>\n </tr>\n <tr>\n <td><code>LUMINANCE</code></td>\n <td>0x1909</td>\n <td></td>\n </tr>\n <tr>\n <td><code>LUMINANCE_ALPHA</code></td>\n <td>0x190A</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Pixel_types","title":"Pixel types","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>UNSIGNED_BYTE</code></td>\n <td>0x1401</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_SHORT_4_4_4_4</code></td>\n <td>0x8033</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_SHORT_5_5_5_1</code></td>\n <td>0x8034</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_SHORT_5_6_5</code></td>\n <td>0x8363</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Shaders","title":"Shaders","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/createShader\"><code>WebGLRenderingContext.createShader()</code></a> or <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/getShaderParameter\"><code>WebGLRenderingContext.getShaderParameter()</code></a></p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>FRAGMENT_SHADER</code></td>\n <td>0x8B30</td>\n <td>Passed to <code>createShader</code> to define a fragment shader.</td>\n </tr>\n <tr>\n <td><code>VERTEX_SHADER</code></td>\n <td>0x8B31</td>\n <td>Passed to <code>createShader</code> to define a vertex shader</td>\n </tr>\n <tr>\n <td><code>COMPILE_STATUS</code></td>\n <td>0x8B81</td>\n <td>Passed to <code>getShaderParameter</code> to get the status of the compilation. Returns false if the shader was not compiled. You can then query <code>getShaderInfoLog</code> to find the exact error</td>\n </tr>\n <tr>\n <td><code>DELETE_STATUS</code></td>\n <td>0x8B80</td>\n <td>Passed to <code>getShaderParameter</code> to determine if a shader was deleted via <code>deleteShader</code>. Returns true if it was, false otherwise.</td>\n </tr>\n <tr>\n <td><code>LINK_STATUS</code></td>\n <td>0x8B82</td>\n <td>Passed to <code>getProgramParameter</code> after calling <code>linkProgram</code> to determine if a program was linked correctly. Returns false if there were errors. Use <code>getProgramInfoLog</code> to find the exact error.</td>\n </tr>\n <tr>\n <td><code>VALIDATE_STATUS</code></td>\n <td>0x8B83</td>\n <td>Passed to <code>getProgramParameter</code> after calling <code>validateProgram</code> to determine if it is valid. Returns false if errors were found.</td>\n </tr>\n <tr>\n <td><code>ATTACHED_SHADERS</code></td>\n <td>0x8B85</td>\n <td>Passed to <code>getProgramParameter</code> after calling <code>attachShader</code> to determine if the shader was attached correctly. Returns false if errors occurred.</td>\n </tr>\n <tr>\n <td><code>ACTIVE_ATTRIBUTES</code></td>\n <td>0x8B89</td>\n <td>Passed to <code>getProgramParameter</code> to get the number of attributes active in a program.</td>\n </tr>\n <tr>\n <td><code>ACTIVE_UNIFORMS</code></td>\n <td>0x8B86</td>\n <td>Passed to <code>getProgramParameter</code> to get the number of uniforms active in a program.</td>\n </tr>\n <tr>\n <td><code>MAX_VERTEX_ATTRIBS</code></td>\n <td>0x8869</td>\n <td>The maximum number of entries possible in the vertex attribute list.</td>\n </tr>\n <tr>\n <td><code>MAX_VERTEX_UNIFORM_VECTORS</code></td>\n <td>0x8DFB</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_VARYING_VECTORS</code></td>\n <td>0x8DFC</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_COMBINED_TEXTURE_IMAGE_UNITS</code></td>\n <td>0x8B4D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_VERTEX_TEXTURE_IMAGE_UNITS</code></td>\n <td>0x8B4C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_TEXTURE_IMAGE_UNITS</code></td>\n <td>0x8872</td>\n <td>Implementation dependent number of maximum texture units. At least 8.</td>\n </tr>\n <tr>\n <td><code>MAX_FRAGMENT_UNIFORM_VECTORS</code></td>\n <td>0x8DFD</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SHADER_TYPE</code></td>\n <td>0x8B4F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SHADING_LANGUAGE_VERSION</code></td>\n <td>0x8B8C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>CURRENT_PROGRAM</code></td>\n <td>0x8B8D</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Depth_or_stencil_tests","title":"Depth or stencil tests","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/depthFunc\"><code>WebGLRenderingContext.depthFunc()</code></a> or <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/stencilFunc\"><code>WebGLRenderingContext.stencilFunc()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>NEVER</code></td>\n <td>0x0200</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will never pass. i.e. Nothing will be drawn.</td>\n </tr>\n <tr>\n <td><code>LESS</code></td>\n <td>0x0201</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will pass if the new depth value is less than the stored value.</td>\n </tr>\n <tr>\n <td><code>EQUAL</code></td>\n <td>0x0202</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will pass if the new depth value is equals to the stored value.</td>\n </tr>\n <tr>\n <td><code>LEQUAL</code></td>\n <td>0x0203</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value.</td>\n </tr>\n <tr>\n <td><code>GREATER</code></td>\n <td>0x0204</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will pass if the new depth value is greater than the stored value.</td>\n </tr>\n <tr>\n <td><code>NOTEQUAL</code></td>\n <td>0x0205</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will pass if the new depth value is not equal to the stored value.</td>\n </tr>\n <tr>\n <td><code>GEQUAL</code></td>\n <td>0x0206</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value.</td>\n </tr>\n <tr>\n <td><code>ALWAYS</code></td>\n <td>0x0207</td>\n <td>Passed to <code>depthFunction</code> or <code>stencilFunction</code> to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Stencil_actions","title":"Stencil actions","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/stencilOp\"><code>WebGLRenderingContext.stencilOp()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>KEEP</code></td>\n <td>0x1E00</td>\n <td></td>\n </tr>\n <tr>\n <td><code>REPLACE</code></td>\n <td>0x1E01</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INCR</code></td>\n <td>0x1E02</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DECR</code></td>\n <td>0x1E03</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INVERT</code></td>\n <td>0x150A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INCR_WRAP</code></td>\n <td>0x8507</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DECR_WRAP</code></td>\n <td>0x8508</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Textures","title":"Textures","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texParameter\" data-flaw-src=\"{{domxref(&quot;WebGLRenderingContext.texParameteri()&quot;)}}\"><code>WebGLRenderingContext.texParameteri()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texParameter\" data-flaw-src=\"{{domxref(&quot;WebGLRenderingContext.texParameterf()&quot;)}}\"><code>WebGLRenderingContext.texParameterf()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/bindTexture\"><code>WebGLRenderingContext.bindTexture()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texImage2D\"><code>WebGLRenderingContext.texImage2D()</code></a>, and others.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>NEAREST</code></td>\n <td>0x2600</td>\n <td></td>\n </tr>\n <tr>\n <td><code>LINEAR</code></td>\n <td>0x2601</td>\n <td></td>\n </tr>\n <tr>\n <td><code>NEAREST_MIPMAP_NEAREST</code></td>\n <td>0x2700</td>\n <td></td>\n </tr>\n <tr>\n <td><code>LINEAR_MIPMAP_NEAREST</code></td>\n <td>0x2701</td>\n <td></td>\n </tr>\n <tr>\n <td><code>NEAREST_MIPMAP_LINEAR</code></td>\n <td>0x2702</td>\n <td></td>\n </tr>\n <tr>\n <td><code>LINEAR_MIPMAP_LINEAR</code></td>\n <td>0x2703</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_MAG_FILTER</code></td>\n <td>0x2800</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_MIN_FILTER</code></td>\n <td>0x2801</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_WRAP_S</code></td>\n <td>0x2802</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_WRAP_T</code></td>\n <td>0x2803</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_2D</code></td>\n <td>0x0DE1</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE</code></td>\n <td>0x1702</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_CUBE_MAP</code></td>\n <td>0x8513</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_BINDING_CUBE_MAP</code></td>\n <td>0x8514</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_CUBE_MAP_POSITIVE_X</code></td>\n <td>0x8515</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_CUBE_MAP_NEGATIVE_X</code></td>\n <td>0x8516</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_CUBE_MAP_POSITIVE_Y</code></td>\n <td>0x8517</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_CUBE_MAP_NEGATIVE_Y</code></td>\n <td>0x8518</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_CUBE_MAP_POSITIVE_Z</code></td>\n <td>0x8519</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_CUBE_MAP_NEGATIVE_Z</code></td>\n <td>0x851A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_CUBE_MAP_TEXTURE_SIZE</code></td>\n <td>0x851C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE0 - 31</code></td>\n <td>0x84C0 - 0x84DF</td>\n <td>A texture unit.</td>\n </tr>\n <tr>\n <td><code>ACTIVE_TEXTURE</code></td>\n <td>0x84E0</td>\n <td>The current active texture unit.</td>\n </tr>\n <tr>\n <td><code>REPEAT</code></td>\n <td>0x2901</td>\n <td></td>\n </tr>\n <tr>\n <td><code>CLAMP_TO_EDGE</code></td>\n <td>0x812F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MIRRORED_REPEAT</code></td>\n <td>0x8370</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Uniform_types","title":"Uniform types","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>FLOAT_VEC2</code></td>\n <td>0x8B50</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_VEC3</code></td>\n <td>0x8B51</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_VEC4</code></td>\n <td>0x8B52</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_VEC2</code></td>\n <td>0x8B53</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_VEC3</code></td>\n <td>0x8B54</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_VEC4</code></td>\n <td>0x8B55</td>\n <td></td>\n </tr>\n <tr>\n <td><code>BOOL</code></td>\n <td>0x8B56</td>\n <td></td>\n </tr>\n <tr>\n <td><code>BOOL_VEC2</code></td>\n <td>0x8B57</td>\n <td></td>\n </tr>\n <tr>\n <td><code>BOOL_VEC3</code></td>\n <td>0x8B58</td>\n <td></td>\n </tr>\n <tr>\n <td><code>BOOL_VEC4</code></td>\n <td>0x8B59</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT2</code></td>\n <td>0x8B5A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT3</code></td>\n <td>0x8B5B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT4</code></td>\n <td>0x8B5C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLER_2D</code></td>\n <td>0x8B5E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLER_CUBE</code></td>\n <td>0x8B60</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Shader_precision-specified_types","title":"Shader precision-specified types","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>LOW_FLOAT</code></td>\n <td>0x8DF0</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MEDIUM_FLOAT</code></td>\n <td>0x8DF1</td>\n <td></td>\n </tr>\n <tr>\n <td><code>HIGH_FLOAT</code></td>\n <td>0x8DF2</td>\n <td></td>\n </tr>\n <tr>\n <td><code>LOW_INT</code></td>\n <td>0x8DF3</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MEDIUM_INT</code></td>\n <td>0x8DF4</td>\n <td></td>\n </tr>\n <tr>\n <td><code>HIGH_INT</code></td>\n <td>0x8DF5</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Framebuffers_and_renderbuffers","title":"Framebuffers and renderbuffers","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>FRAMEBUFFER</code></td>\n <td>0x8D40</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER</code></td>\n <td>0x8D41</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA4</code></td>\n <td>0x8056</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB5_A1</code></td>\n <td>0x8057</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB565</code></td>\n <td>0x8D62</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_COMPONENT16</code></td>\n <td>0x81A5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_INDEX8</code></td>\n <td>0x8D48</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_STENCIL</code></td>\n <td>0x84F9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_WIDTH</code></td>\n <td>0x8D42</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_HEIGHT</code></td>\n <td>0x8D43</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_INTERNAL_FORMAT</code></td>\n <td>0x8D44</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_RED_SIZE</code></td>\n <td>0x8D50</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_GREEN_SIZE</code></td>\n <td>0x8D51</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_BLUE_SIZE</code></td>\n <td>0x8D52</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_ALPHA_SIZE</code></td>\n <td>0x8D53</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_DEPTH_SIZE</code></td>\n <td>0x8D54</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_STENCIL_SIZE</code></td>\n <td>0x8D55</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</code></td>\n <td>0x8CD0</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</code></td>\n <td>0x8CD1</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</code></td>\n <td>0x8CD2</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</code></td>\n <td>0x8CD3</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT0</code></td>\n <td>0x8CE0</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_ATTACHMENT</code></td>\n <td>0x8D00</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL_ATTACHMENT</code></td>\n <td>0x8D20</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_STENCIL_ATTACHMENT</code></td>\n <td>0x821A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>NONE</code></td>\n <td>0</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_COMPLETE</code></td>\n <td>0x8CD5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_INCOMPLETE_ATTACHMENT</code></td>\n <td>0x8CD6</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT</code></td>\n <td>0x8CD7</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_INCOMPLETE_DIMENSIONS</code></td>\n <td>0x8CD9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_UNSUPPORTED</code></td>\n <td>0x8CDD</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_BINDING</code></td>\n <td>0x8CA6</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_BINDING</code></td>\n <td>0x8CA7</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_RENDERBUFFER_SIZE</code></td>\n <td>0x84E8</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INVALID_FRAMEBUFFER_OPERATION</code></td>\n <td>0x0506</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Pixel_storage_modes","title":"Pixel storage modes","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/pixelStorei\"><code>WebGLRenderingContext.pixelStorei()</code></a>.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>UNPACK_FLIP_Y_WEBGL</code></td>\n <td>0x9240</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_PREMULTIPLY_ALPHA_WEBGL</code></td>\n <td>0x9241</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_COLORSPACE_CONVERSION_WEBGL</code></td>\n <td>0x9243</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Additional_constants_defined_WebGL_2","title":"Additional constants defined WebGL 2","isH3":false,"content":"<p>These constants are defined on the <a href=\"/en-US/docs/Web/API/WebGL2RenderingContext\"><code>WebGL2RenderingContext</code></a> interface. All WebGL 1 constants are also available in a WebGL 2 context.</p>"}},{"type":"prose","value":{"id":"Getting_GL_parameter_information_2","title":"Getting GL parameter information","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/getParameter\"><code>WebGLRenderingContext.getParameter()</code></a> to specify what information to return.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>READ_BUFFER</code></td>\n <td>0x0C02</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_ROW_LENGTH</code></td>\n <td>0x0CF2</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_SKIP_ROWS</code></td>\n <td>0x0CF3</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_SKIP_PIXELS</code></td>\n <td>0x0CF4</td>\n <td></td>\n </tr>\n <tr>\n <td><code>PACK_ROW_LENGTH</code></td>\n <td>0x0D02</td>\n <td></td>\n </tr>\n <tr>\n <td><code>PACK_SKIP_ROWS</code></td>\n <td>0x0D03</td>\n <td></td>\n </tr>\n <tr>\n <td><code>PACK_SKIP_PIXELS</code></td>\n <td>0x0D04</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_BINDING_3D</code></td>\n <td>0x806A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_SKIP_IMAGES</code></td>\n <td>0x806D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNPACK_IMAGE_HEIGHT</code></td>\n <td>0x806E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_3D_TEXTURE_SIZE</code></td>\n <td>0x8073</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_ELEMENTS_VERTICES</code></td>\n <td>0x80E8</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_ELEMENTS_INDICES</code></td>\n <td>0x80E9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_TEXTURE_LOD_BIAS</code></td>\n <td>0x84FD</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_FRAGMENT_UNIFORM_COMPONENTS</code></td>\n <td>0x8B49</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_VERTEX_UNIFORM_COMPONENTS</code></td>\n <td>0x8B4A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_ARRAY_TEXTURE_LAYERS</code></td>\n <td>0x88FF</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MIN_PROGRAM_TEXEL_OFFSET</code></td>\n <td>0x8904</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_PROGRAM_TEXEL_OFFSET</code></td>\n <td>0x8905</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_VARYING_COMPONENTS</code></td>\n <td>0x8B4B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAGMENT_SHADER_DERIVATIVE_HINT</code></td>\n <td>0x8B8B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RASTERIZER_DISCARD</code></td>\n <td>0x8C89</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ARRAY_BINDING</code></td>\n <td>0x85B5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_VERTEX_OUTPUT_COMPONENTS</code></td>\n <td>0x9122</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_FRAGMENT_INPUT_COMPONENTS</code></td>\n <td>0x9125</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_SERVER_WAIT_TIMEOUT</code></td>\n <td>0x9111</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_ELEMENT_INDEX</code></td>\n <td>0x8D6B</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Textures_2","title":"Textures","isH3":true,"content":"<p>Constants passed to <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texParameter\" data-flaw-src=\"{{domxref(&quot;WebGLRenderingContext.texParameteri()&quot;)}}\"><code>WebGLRenderingContext.texParameteri()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texParameter\" data-flaw-src=\"{{domxref(&quot;WebGLRenderingContext.texParameterf()&quot;)}}\"><code>WebGLRenderingContext.texParameterf()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/bindTexture\"><code>WebGLRenderingContext.bindTexture()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texImage2D\"><code>WebGLRenderingContext.texImage2D()</code></a>, and others.</p>\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>RED</code></td>\n <td>0x1903</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB8</code></td>\n <td>0x8051</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA8</code></td>\n <td>0x8058</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB10_A2</code></td>\n <td>0x8059</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_3D</code></td>\n <td>0x806F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_WRAP_R</code></td>\n <td>0x8072</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_MIN_LOD</code></td>\n <td>0x813A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_MAX_LOD</code></td>\n <td>0x813B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_BASE_LEVEL</code></td>\n <td>0x813C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_MAX_LEVEL</code></td>\n <td>0x813D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_COMPARE_MODE</code></td>\n <td>0x884C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_COMPARE_FUNC</code></td>\n <td>0x884D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SRGB</code></td>\n <td>0x8C40</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SRGB8</code></td>\n <td>0x8C41</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SRGB8_ALPHA8</code></td>\n <td>0x8C43</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COMPARE_REF_TO_TEXTURE</code></td>\n <td>0x884E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA32F</code></td>\n <td>0x8814</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB32F</code></td>\n <td>0x8815</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA16F</code></td>\n <td>0x881A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB16F</code></td>\n <td>0x881B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_2D_ARRAY</code></td>\n <td>0x8C1A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_BINDING_2D_ARRAY</code></td>\n <td>0x8C1D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>R11F_G11F_B10F</code></td>\n <td>0x8C3A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB9_E5</code></td>\n <td>0x8C3D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA32UI</code></td>\n <td>0x8D70</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB32UI</code></td>\n <td>0x8D71</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA16UI</code></td>\n <td>0x8D76</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB16UI</code></td>\n <td>0x8D77</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA8UI</code></td>\n <td>0x8D7C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB8UI</code></td>\n <td>0x8D7D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA32I</code></td>\n <td>0x8D82</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB32I</code></td>\n <td>0x8D83</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA16I</code></td>\n <td>0x8D88</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB16I</code></td>\n <td>0x8D89</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA8I</code></td>\n <td>0x8D8E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB8I</code></td>\n <td>0x8D8F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RED_INTEGER</code></td>\n <td>0x8D94</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB_INTEGER</code></td>\n <td>0x8D98</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGBA_INTEGER</code></td>\n <td>0x8D99</td>\n <td></td>\n </tr>\n <tr>\n <td><code>R8</code></td>\n <td>0x8229</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RG8</code></td>\n <td>0x822B</td>\n <td></td>\n </tr>\n <tr>\n <td>R16F</td>\n <td>0x822D</td>\n <td></td>\n </tr>\n <tr>\n <td>R32F</td>\n <td>0x822E</td>\n <td></td>\n </tr>\n <tr>\n <td>RG16F</td>\n <td>0x822F</td>\n <td></td>\n </tr>\n <tr>\n <td>RG32F</td>\n <td>0x8230</td>\n <td></td>\n </tr>\n <tr>\n <td>R8I</td>\n <td>0x8231</td>\n <td></td>\n </tr>\n <tr>\n <td>R8UI</td>\n <td>0x8232</td>\n <td></td>\n </tr>\n <tr>\n <td>R16I</td>\n <td>0x8233</td>\n <td></td>\n </tr>\n <tr>\n <td>R16UI</td>\n <td>0x8234</td>\n <td></td>\n </tr>\n <tr>\n <td>R32I</td>\n <td>0x8235</td>\n <td></td>\n </tr>\n <tr>\n <td>R32UI</td>\n <td>0x8236</td>\n <td></td>\n </tr>\n <tr>\n <td>RG8I</td>\n <td>0x8237</td>\n <td></td>\n </tr>\n <tr>\n <td>RG8UI</td>\n <td>0x8238</td>\n <td></td>\n </tr>\n <tr>\n <td>RG16I</td>\n <td>0x8239</td>\n <td></td>\n </tr>\n <tr>\n <td>RG16UI</td>\n <td>0x823A</td>\n <td></td>\n </tr>\n <tr>\n <td>RG32I</td>\n <td>0x823B</td>\n <td></td>\n </tr>\n <tr>\n <td>RG32UI</td>\n <td>0x823C</td>\n <td></td>\n </tr>\n <tr>\n <td>R8_SNORM</td>\n <td>0x8F94</td>\n <td></td>\n </tr>\n <tr>\n <td>RG8_SNORM</td>\n <td>0x8F95</td>\n <td></td>\n </tr>\n <tr>\n <td>RGB8_SNORM</td>\n <td>0x8F96</td>\n <td></td>\n </tr>\n <tr>\n <td>RGBA8_SNORM</td>\n <td>0x8F97</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RGB10_A2UI</code></td>\n <td>0x906F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_IMMUTABLE_FORMAT </code></td>\n <td>0x912F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TEXTURE_IMMUTABLE_LEVELS</code></td>\n <td>0x82DF</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Pixel_types_2","title":"Pixel types","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>UNSIGNED_INT_2_10_10_10_REV</code></td>\n <td>0x8368</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_10F_11F_11F_REV</code></td>\n <td>0x8C3B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_5_9_9_9_REV</code></td>\n <td>0x8C3E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_32_UNSIGNED_INT_24_8_REV</code></td>\n <td>0x8DAD</td>\n <td></td>\n </tr>\n <tr>\n <td>UNSIGNED_INT_24_8</td>\n <td>0x84FA</td>\n <td></td>\n </tr>\n <tr>\n <td><code>HALF_FLOAT</code></td>\n <td>0x140B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RG</code></td>\n <td>0x8227</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RG_INTEGER</code></td>\n <td>0x8228</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_2_10_10_10_REV</code></td>\n <td>0x8D9F</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Queries","title":"Queries","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>CURRENT_QUERY</code></td>\n <td>0x8865</td>\n <td></td>\n </tr>\n <tr>\n <td><code>QUERY_RESULT </code></td>\n <td>0x8866</td>\n <td></td>\n </tr>\n <tr>\n <td><code>QUERY_RESULT_AVAILABLE</code></td>\n <td>0x8867</td>\n <td></td>\n </tr>\n <tr>\n <td><code>ANY_SAMPLES_PASSED</code></td>\n <td>0x8C2F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>ANY_SAMPLES_PASSED_CONSERVATIVE</code></td>\n <td>0x8D6A</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Draw_buffers","title":"Draw buffers","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>MAX_DRAW_BUFFERS</code></td>\n <td>0x8824</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER0</code></td>\n <td>0x8825</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER1</code></td>\n <td>0x8826</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER2</code></td>\n <td>0x8827</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER3</code></td>\n <td>0x8828</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER4</code></td>\n <td>0x8829</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER5</code></td>\n <td>0x882A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER6</code></td>\n <td>0x882B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER7</code></td>\n <td>0x882C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER8</code></td>\n <td>0x882D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER9</code></td>\n <td>0x882E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER10</code></td>\n <td>0x882F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER11</code></td>\n <td>0x8830</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER12</code></td>\n <td>0x8831</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER13</code></td>\n <td>0x8832</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER14</code></td>\n <td>0x8833</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER15</code></td>\n <td>0x8834</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_COLOR_ATTACHMENTS</code></td>\n <td>0x8CDF</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT1</code></td>\n <td>0x8CE1</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT2</code></td>\n <td>0x8CE2</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT3</code></td>\n <td>0x8CE3</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT4</code></td>\n <td>0x8CE4</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT5</code></td>\n <td>0x8CE5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT6</code></td>\n <td>0x8CE6</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT7</code></td>\n <td>0x8CE7</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT8</code></td>\n <td>0x8CE8</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT9</code></td>\n <td>0x8CE9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT10</code></td>\n <td>0x8CEA</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT11</code></td>\n <td>0x8CEB</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT12</code></td>\n <td>0x8CEC</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT13</code></td>\n <td>0x8CED</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT14</code></td>\n <td>0x8CEE</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT15</code></td>\n <td>0x8CEF</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Samplers","title":"Samplers","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>SAMPLER_3D</code></td>\n <td>0x8B5F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLER_2D_SHADOW</code></td>\n <td>0x8B62</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLER_2D_ARRAY</code></td>\n <td>0x8DC1</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLER_2D_ARRAY_SHADOW</code></td>\n <td>0x8DC4</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLER_CUBE_SHADOW</code></td>\n <td>0x8DC5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_SAMPLER_2D</code></td>\n <td>0x8DCA</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_SAMPLER_3D</code></td>\n <td>0x8DCB</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_SAMPLER_CUBE</code></td>\n <td>0x8DCC</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INT_SAMPLER_2D_ARRAY</code></td>\n <td>0x8DCF</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_SAMPLER_2D</code></td>\n <td>0x8DD2</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_SAMPLER_3D</code></td>\n <td>0x8DD3</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_SAMPLER_CUBE</code></td>\n <td>0x8DD4</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_SAMPLER_2D_ARRAY</code></td>\n <td>0x8DD7</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_SAMPLES</code></td>\n <td>0x8D57</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SAMPLER_BINDING</code></td>\n <td>0x8919</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Buffers_2","title":"Buffers","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>PIXEL_PACK_BUFFER</code></td>\n <td>0x88EB</td>\n <td></td>\n </tr>\n <tr>\n <td><code>PIXEL_UNPACK_BUFFER</code></td>\n <td>0x88EC</td>\n <td></td>\n </tr>\n <tr>\n <td><code>PIXEL_PACK_BUFFER_BINDING</code></td>\n <td>0x88ED</td>\n <td></td>\n </tr>\n <tr>\n <td><code>PIXEL_UNPACK_BUFFER_BINDING </code></td>\n <td>0x88EF</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COPY_READ_BUFFER</code></td>\n <td>0x8F36</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COPY_WRITE_BUFFER</code></td>\n <td>0x8F37</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COPY_READ_BUFFER_BINDING</code></td>\n <td>0x8F36</td>\n <td></td>\n </tr>\n <tr>\n <td><code>COPY_WRITE_BUFFER_BINDING</code></td>\n <td>0x8F37</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Data_types_2","title":"Data types","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>FLOAT_MAT2x3</code></td>\n <td>0x8B65</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT2x4</code></td>\n <td>0x8B66</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT3x2</code></td>\n <td>0x8B67</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT3x4 </code></td>\n <td>0x8B68</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT4x2</code></td>\n <td>0x8B69</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FLOAT_MAT4x3</code></td>\n <td>0x8B6A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_VEC2</code></td>\n <td>0x8DC6</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_VEC3</code></td>\n <td>0x8DC7</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_INT_VEC4</code></td>\n <td>0x8DC8</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_NORMALIZED</code></td>\n <td>0x8C17</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SIGNED_NORMALIZED</code></td>\n <td>0x8F9C</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Vertex_attributes_2","title":"Vertex attributes","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_INTEGER </code></td>\n <td>0x88FD</td>\n <td></td>\n </tr>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_DIVISOR</code></td>\n <td>0x88FE</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Transform_feedback","title":"Transform feedback","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_BUFFER_MODE</code></td>\n <td>0x8C7F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS</code></td>\n <td>0x8C80</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_VARYINGS</code></td>\n <td>0x8C83</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_BUFFER_START</code></td>\n <td>0x8C84</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_BUFFER_SIZE</code></td>\n <td>0x8C85</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN</code></td>\n <td>0x8C88</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS</code></td>\n <td>0x8C8A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS</code></td>\n <td>0x8C8B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INTERLEAVED_ATTRIBS</code></td>\n <td>0x8C8C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SEPARATE_ATTRIBS</code></td>\n <td>0x8C8D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_BUFFER</code></td>\n <td>0x8C8E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_BUFFER_BINDING</code></td>\n <td>0x8C8F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK</code></td>\n <td>0x8E22</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_PAUSED</code></td>\n <td>0x8E23</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_ACTIVE</code></td>\n <td>0x8E24</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TRANSFORM_FEEDBACK_BINDING</code></td>\n <td>0x8E25</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Framebuffers_and_renderbuffers_2","title":"Framebuffers and renderbuffers","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code></td>\n <td>0x8210</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE</code></td>\n <td>0x8211</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_RED_SIZE</code></td>\n <td>0x8212</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_GREEN_SIZE</code></td>\n <td>0x8213</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_BLUE_SIZE</code></td>\n <td>0x8214</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE</code></td>\n <td>0x8215</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE</code></td>\n <td>0x8216</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE</code></td>\n <td>0x8217</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_DEFAULT</code></td>\n <td>0x8218</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_STENCIL_ATTACHMENT</code></td>\n <td>0x821A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_STENCIL</code></td>\n <td>0x84F9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH24_STENCIL8</code></td>\n <td>0x88F0</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_FRAMEBUFFER_BINDING</code></td>\n <td>0x8CA6</td>\n <td></td>\n </tr>\n <tr>\n <td><code>READ_FRAMEBUFFER</code></td>\n <td>0x8CA8</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DRAW_FRAMEBUFFER</code></td>\n <td>0x8CA9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>READ_FRAMEBUFFER_BINDING</code></td>\n <td>0x8CAA</td>\n <td></td>\n </tr>\n <tr>\n <td><code>RENDERBUFFER_SAMPLES</code></td>\n <td>0x8CAB</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER</code></td>\n <td>0x8CD4</td>\n <td></td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_INCOMPLETE_MULTISAMPLE</code></td>\n <td>0x8D56</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Uniforms","title":"Uniforms","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>UNIFORM_BUFFER</code></td>\n <td>0x8A11</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BUFFER_BINDING</code></td>\n <td>0x8A28</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BUFFER_START</code></td>\n <td>0x8A29</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BUFFER_SIZE</code></td>\n <td>0x8A2A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_VERTEX_UNIFORM_BLOCKS</code></td>\n <td>0x8A2B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_FRAGMENT_UNIFORM_BLOCKS</code></td>\n <td>0x8A2D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_COMBINED_UNIFORM_BLOCKS</code></td>\n <td>0x8A2E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_UNIFORM_BUFFER_BINDINGS</code></td>\n <td>0x8A2F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_UNIFORM_BLOCK_SIZE</code></td>\n <td>0x8A30</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS</code></td>\n <td>0x8A31</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS</code></td>\n <td>0x8A33</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BUFFER_OFFSET_ALIGNMENT</code></td>\n <td>0x8A34</td>\n <td></td>\n </tr>\n <tr>\n <td><code>ACTIVE_UNIFORM_BLOCKS</code></td>\n <td>0x8A36</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_TYPE </code></td>\n <td>0x8A37</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_SIZE</code></td>\n <td>0x8A38</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BLOCK_INDEX</code></td>\n <td>0x8A3A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_OFFSET</code></td>\n <td>0x8A3B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_ARRAY_STRIDE</code></td>\n <td>0x8A3C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_MATRIX_STRIDE</code></td>\n <td>0x8A3D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_IS_ROW_MAJOR</code></td>\n <td>0x8A3E</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BLOCK_BINDING</code></td>\n <td>0x8A3F</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BLOCK_DATA_SIZE</code></td>\n <td>0x8A40</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BLOCK_ACTIVE_UNIFORMS</code></td>\n <td>0x8A42</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES</code></td>\n <td>0x8A43</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER</code></td>\n <td>0x8A44</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER</code></td>\n <td>0x8A46</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Sync_objects","title":"Sync objects","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>OBJECT_TYPE</code></td>\n <td>0x9112</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SYNC_CONDITION</code></td>\n <td>0x9113</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SYNC_STATUS</code></td>\n <td>0x9114</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SYNC_FLAGS</code></td>\n <td>0x9115</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SYNC_FENCE</code></td>\n <td>0x9116</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SYNC_GPU_COMMANDS_COMPLETE</code></td>\n <td>0x9117</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNALED</code></td>\n <td>0x9118</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SIGNALED</code></td>\n <td>0x9119</td>\n <td></td>\n </tr>\n <tr>\n <td><code>ALREADY_SIGNALED</code></td>\n <td>0x911A</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TIMEOUT_EXPIRED</code></td>\n <td>0x911B</td>\n <td></td>\n </tr>\n <tr>\n <td><code>CONDITION_SATISFIED</code></td>\n <td>0x911C</td>\n <td></td>\n </tr>\n <tr>\n <td><code>WAIT_FAILED</code></td>\n <td>0x911D</td>\n <td></td>\n </tr>\n <tr>\n <td><code>SYNC_FLUSH_COMMANDS_BIT</code></td>\n <td>0x00000001</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Miscellaneous_constants","title":"Miscellaneous constants","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>COLOR</code></td>\n <td>0x1800</td>\n <td></td>\n </tr>\n <tr>\n <td>DEPTH</td>\n <td>0x1801</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STENCIL</code></td>\n <td>0x1802</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MIN</code></td>\n <td>0x8007</td>\n <td></td>\n </tr>\n <tr>\n <td>MAX</td>\n <td>0x8008</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_COMPONENT24</code></td>\n <td>0x81A6</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STREAM_READ</code></td>\n <td>0x88E1</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STREAM_COPY</code></td>\n <td>0x88E2</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STATIC_READ</code></td>\n <td>0x88E5</td>\n <td></td>\n </tr>\n <tr>\n <td><code>STATIC_COPY</code></td>\n <td>0x88E6</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DYNAMIC_READ</code></td>\n <td>0x88E9</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DYNAMIC_COPY</code></td>\n <td>0x88EA</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH_COMPONENT32F</code></td>\n <td>0x8CAC</td>\n <td></td>\n </tr>\n <tr>\n <td><code>DEPTH32F_STENCIL8</code></td>\n <td>0x8CAD</td>\n <td></td>\n </tr>\n <tr>\n <td><code>INVALID_INDEX</code></td>\n <td>0xFFFFFFFF</td>\n <td></td>\n </tr>\n <tr>\n <td><code>TIMEOUT_IGNORED</code></td>\n <td>-1</td>\n <td></td>\n </tr>\n <tr>\n <td><code>MAX_CLIENT_WAIT_TIMEOUT_WEBGL</code></td>\n <td>0x9247</td>\n <td></td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"Constants_defined_in_WebGL_extensions","title":"Constants defined in WebGL extensions","isH3":false,"content":""}},{"type":"prose","value":{"id":"domxref(ANGLE_instanced_arrays)","title":"<a href=\"/en-US/docs/Web/API/ANGLE_instanced_arrays\"><code>ANGLE_instanced_arrays</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE</code></td>\n <td>0x88FE</td>\n <td>Describes the frequency divisor used for instanced rendering.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"ANGLE_instanced_arrays"}},{"type":"prose","value":{"id":"domxref(WEBGL_debug_renderer_info)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_debug_renderer_info\"><code>WEBGL_debug_renderer_info</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>UNMASKED_VENDOR_WEBGL</code></td>\n <td>0x9245</td>\n <td>Passed to <code>getParameter</code> to get the vendor string of the graphics driver.</td>\n </tr>\n <tr>\n <td><code>UNMASKED_RENDERER_WEBGL</code></td>\n <td>0x9246</td>\n <td>Passed to <code>getParameter</code> to get the renderer string of the graphics driver.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_debug_renderer_info"}},{"type":"prose","value":{"id":"domxref(EXT_texture_filter_anisotropic)","title":"<a href=\"/en-US/docs/Web/API/EXT_texture_filter_anisotropic\"><code>EXT_texture_filter_anisotropic</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>MAX_TEXTURE_MAX_ANISOTROPY_EXT</code></td>\n <td>0x84FF</td>\n <td>Returns the maximum available anisotropy.</td>\n </tr>\n <tr>\n <td><code>TEXTURE_MAX_ANISOTROPY_EXT</code></td>\n <td>0x84FE</td>\n <td>Passed to <code>texParameter</code> to set the desired maximum anisotropy for a texture.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"EXT_texture_filter_anisotropic"}},{"type":"prose","value":{"id":"domxref(WEBGL_compressed_texture_s3tc)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_s3tc\"><code>WEBGL_compressed_texture_s3tc</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>COMPRESSED_RGB_S3TC_DXT1_EXT</code></td>\n <td>0x83F0</td>\n <td>A DXT1-compressed image in an RGB image format.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA_S3TC_DXT1_EXT</code></td>\n <td>0x83F1</td>\n <td>A DXT1-compressed image in an RGB image format with a simple on/off alpha value.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA_S3TC_DXT3_EXT</code></td>\n <td>0x83F2</td>\n <td>A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA_S3TC_DXT5_EXT</code></td>\n <td>0x83F3</td>\n <td>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.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_compressed_texture_s3tc"}},{"type":"prose","value":{"id":"domxref(WEBGL_compressed_texture_etc)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_etc\"><code>WEBGL_compressed_texture_etc</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>COMPRESSED_R11_EAC</code></td>\n <td>0x9270</td>\n <td>One-channel (red) unsigned format compression.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_SIGNED_R11_EAC</code></td>\n <td>0x9271</td>\n <td>One-channel (red) signed format compression.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RG11_EAC</code></td>\n <td>0x9272</td>\n <td>Two-channel (red and green) unsigned format compression.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_SIGNED_RG11_EAC</code></td>\n <td>0x9273</td>\n <td>Two-channel (red and green) signed format compression.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGB8_ETC2</code></td>\n <td>0x9274</td>\n <td>Compresses RBG8 data with no alpha channel.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA8_ETC2_EAC</code></td>\n <td>0x9275</td>\n <td>Compresses RGBA8 data. The RGB part is encoded the same as <code>RGB_ETC2</code>, but the alpha part is encoded separately.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_SRGB8_ETC2</code></td>\n <td>0x9276</td>\n <td>Compresses sRBG8 data with no alpha channel.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_SRGB8_ALPHA8_ETC2_EAC</code></td>\n <td>0x9277</td>\n <td>Compresses sRGBA8 data. The sRGB part is encoded the same as <code>SRGB_ETC2</code>, but the alpha part is encoded separately.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2</code></td>\n <td>0x9278</td>\n <td>Similar to <code>RGB8_ETC</code>, but with ability to punch through the alpha channel, which means to make it completely opaque or transparent.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2</code></td>\n <td>0x9279</td>\n <td>Similar to <code>SRGB8_ETC</code>, but with ability to punch through the alpha channel, which means to make it completely opaque or transparent.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_compressed_texture_etc"}},{"type":"prose","value":{"id":"domxref(WEBGL_compressed_texture_pvrtc)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_pvrtc\"><code>WEBGL_compressed_texture_pvrtc</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>COMPRESSED_RGB_PVRTC_4BPPV1_IMG</code></td>\n <td>0x8C00</td>\n <td>RGB compression in 4-bit mode. One block for each 4×4 pixels.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA_PVRTC_4BPPV1_IMG</code></td>\n <td>0x8C02</td>\n <td>RGBA compression in 4-bit mode. One block for each 4×4 pixels.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGB_PVRTC_2BPPV1_IMG</code></td>\n <td>0x8C01</td>\n <td>RGB compression in 2-bit mode. One block for each 8×4 pixels.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA_PVRTC_2BPPV1_IMG</code></td>\n <td>0x8C03</td>\n <td>RGBA compression in 2-bit mode. One block for each 8×4 pixe</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_compressed_texture_pvrtc"}},{"type":"prose","value":{"id":"domxref(WEBGL_compressed_texture_etc1)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_etc1\"><code>WEBGL_compressed_texture_etc1</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>COMPRESSED_RGB_ETC1_WEBGL</code></td>\n <td>0x8D64</td>\n <td>Compresses 24-bit RGB data with no alpha channel.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_compressed_texture_etc1"}},{"type":"prose","value":{"id":"domxref(WEBGL_compressed_texture_atc)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_compressed_texture_atc\"><code>WEBGL_compressed_texture_atc</code></a><svg class=\"icon deprecated\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\">\n <title>This deprecated API should no longer be used, but will probably still work.</title>\n <path d=\"M19.4 24.8a3.6 3.6 0 11-7.2 0 3.6 3.6 0 117.2 0zm9 28.8v-36a3.62 3.62 0 00-3.6-3.6H8.6A3.62 3.62 0 005 17.6v36a3.62 3.62 0 003.6 3.6h16.2a3.62 3.62 0 003.6-3.6zm63.51-8.38A13.16 13.16 0 0195 53.6a11 11 0 01-10.8 10.8H68.62a13.47 13.47 0 001.63 3.6c1.46 2.92 3.15 6.19 3.15 10.8 0 4.33 0 14.4-12.6 14.4a3.54 3.54 0 01-2.53-1.07c-2.42-2.36-3.1-5.85-3.71-9.17s-1.3-6.64-3.49-8.83a75.84 75.84 0 01-5.68-6.75c-2.48-3.26-7.88-10-10-10.12a3.76 3.76 0 01-3.39-3.6V17.6a3.71 3.71 0 013.6-3.6c2-.06 5.34-1.24 8.89-2.47C50.56 9.44 58.16 6.8 66.2 6.8h7.26c5 .06 8.66 1.52 11.08 4.39 2.13 2.53 3.09 6 2.75 10.18a11.47 11.47 0 013 5.29 11.87 11.87 0 010 6.58 11.87 11.87 0 012.42 7.7 15.2 15.2 0 01-.84 4.28z\" fill=\"currentColor\"></path>\n</svg>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>COMPRESSED_RGB_ATC_WEBGL</code></td>\n <td>0x8C92</td>\n <td>Compresses RGB textures with no alpha channel.</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL</code></td>\n <td>0x8C92</td>\n <td>Compresses RGBA textures using explicit alpha encoding (useful when alpha transitions are sharp).</td>\n </tr>\n <tr>\n <td><code>COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL</code></td>\n <td>0x87EE</td>\n <td>Compresses RGBA textures using interpolated alpha encoding (useful when alpha transitions are gradient).</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_compressed_texture_atc\n This deprecated API should no longer be used, but will probably still work.\n \n"}},{"type":"prose","value":{"id":"domxref(WEBGL_depth_texture)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_depth_texture\"><code>WEBGL_depth_texture</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>UNSIGNED_INT_24_8_WEBGL</code></td>\n <td>0x84FA</td>\n <td>Unsigned integer type for 24-bit depth texture data.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_depth_texture"}},{"type":"prose","value":{"id":"domxref(OES_texture_half_float)","title":"<a href=\"/en-US/docs/Web/API/OES_texture_half_float\"><code>OES_texture_half_float</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>HALF_FLOAT_OES</code></td>\n <td>0x8D61</td>\n <td>Half floating-point type (16-bit).</td>\n </tr>\n </tbody>\n</table>","titleAsText":"OES_texture_half_float"}},{"type":"prose","value":{"id":"domxref(WEBGL_color_buffer_float)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_color_buffer_float\"><code>WEBGL_color_buffer_float</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>RGBA32F_EXT</code></td>\n <td>0x8814</td>\n <td>RGBA 32-bit floating-point&nbsp;color-renderable format.</td>\n </tr>\n <tr>\n <td><code>RGB32F_EXT</code></td>\n <td>0x8815</td>\n <td>RGB 32-bit floating-point&nbsp;color-renderable format.</td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT</code></td>\n <td>0x8211</td>\n <td></td>\n </tr>\n <tr>\n <td><code>UNSIGNED_NORMALIZED_EXT</code></td>\n <td>0x8C17</td>\n <td></td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_color_buffer_float"}},{"type":"prose","value":{"id":"domxref(EXT_blend_minmax)","title":"<a href=\"/en-US/docs/Web/API/EXT_blend_minmax\"><code>EXT_blend_minmax</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>MIN_EXT</code></td>\n <td>0x8007</td>\n <td>Produces the minimum color components of the source and destination colors.</td>\n </tr>\n <tr>\n <td><code>MAX_EXT</code></td>\n <td>0x8008</td>\n <td>Produces the maximum color components of the source and destination colors.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"EXT_blend_minmax"}},{"type":"prose","value":{"id":"domxref(EXT_sRGB)","title":"<a href=\"/en-US/docs/Web/API/EXT_sRGB\"><code>EXT_sRGB</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>SRGB_EXT</code></td>\n <td>0x8C40</td>\n <td>Unsized sRGB format that leaves the precision up to the driver.</td>\n </tr>\n <tr>\n <td><code>SRGB_ALPHA_EXT</code></td>\n <td>0x8C42</td>\n <td>Unsized sRGB format with unsized alpha component.</td>\n </tr>\n <tr>\n <td><code>SRGB8_ALPHA8_EXT</code></td>\n <td>0x8C43</td>\n <td>Sized (8-bit) sRGB and alpha formats.</td>\n </tr>\n <tr>\n <td><code>FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT</code></td>\n <td>0x8210</td>\n <td>Returns the framebuffer color encoding.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"EXT_sRGB"}},{"type":"prose","value":{"id":"domxref(OES_standard_derivatives)","title":"<a href=\"/en-US/docs/Web/API/OES_standard_derivatives\"><code>OES_standard_derivatives</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>FRAGMENT_SHADER_DERIVATIVE_HINT_OES</code></td>\n <td>0x8B8B</td>\n <td>Indicates the accuracy of the derivative calculation for the GLSL built-in functions: <code>dFdx</code>, <code>dFdy</code>, and <code>fwidth</code>.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"OES_standard_derivatives"}},{"type":"prose","value":{"id":"domxref(WEBGL_draw_buffers)","title":"<a href=\"/en-US/docs/Web/API/WEBGL_draw_buffers\"><code>WEBGL_draw_buffers</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>COLOR_ATTACHMENT0_WEBGL</code></td>\n <td>0x8CE0</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT1_WEBGL</code></td>\n <td>0x8CE1</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT2_WEBGL</code></td>\n <td>0x8CE2</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT3_WEBGL</code></td>\n <td>0x8CE3</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT4_WEBGL</code></td>\n <td>0x8CE4</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT5_WEBGL</code></td>\n <td>0x8CE5</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT6_WEBGL</code></td>\n <td>0x8CE6</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT7_WEBGL</code></td>\n <td>0x8CE7</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT8_WEBGL</code></td>\n <td>0x8CE8</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT9_WEBGL</code></td>\n <td>0x8CE9</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT10_WEBGL</code></td>\n <td>0x8CEA</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT11_WEBGL</code></td>\n <td>0x8CEB</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT12_WEBGL</code></td>\n <td>0x8CEC</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT13_WEBGL</code></td>\n <td>0x8CED</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT14_WEBGL</code></td>\n <td>0x8CEE</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>COLOR_ATTACHMENT15_WEBGL</code></td>\n <td>0x8CEF</td>\n <td>Framebuffer color attachment point</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER0_WEBGL</code></td>\n <td>0x8825</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER1_WEBGL</code></td>\n <td>0x8826</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER2_WEBGL</code></td>\n <td>0x8827</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER3_WEBGL</code></td>\n <td>0x8828</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER4_WEBGL</code></td>\n <td>0x8829</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER5_WEBGL</code></td>\n <td>0x882A</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER6_WEBGL</code></td>\n <td>0x882B</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER7_WEBGL</code></td>\n <td>0x882C</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER8_WEBGL</code></td>\n <td>0x882D</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER9_WEBGL</code></td>\n <td>0x882E</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER10_WEBGL</code></td>\n <td>0x882F</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER11_WEBGL</code></td>\n <td>0x8830</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER12_WEBGL</code></td>\n <td>0x8831</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER13_WEBGL</code></td>\n <td>0x8832</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER14_WEBGL</code></td>\n <td>0x8833</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>DRAW_BUFFER15_WEBGL</code></td>\n <td>0x8834</td>\n <td>Draw buffer</td>\n </tr>\n <tr>\n <td><code>MAX_COLOR_ATTACHMENTS_WEBGL</code></td>\n <td>0x8CDF</td>\n <td>Maximum number of framebuffer color attachment points</td>\n </tr>\n <tr>\n <td><code>MAX_DRAW_BUFFERS_WEBGL</code></td>\n <td>0x8824</td>\n <td>Maximum number of draw buffers</td>\n </tr>\n </tbody>\n</table>","titleAsText":"WEBGL_draw_buffers"}},{"type":"prose","value":{"id":"domxref(OES_vertex_array_object)","title":"<a href=\"/en-US/docs/Web/API/OES_vertex_array_object\"><code>OES_vertex_array_object</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>VERTEX_ARRAY_BINDING_OES</code></td>\n <td>0x85B5</td>\n <td>The bound vertex array object (VAO).</td>\n </tr>\n </tbody>\n</table>","titleAsText":"OES_vertex_array_object"}},{"type":"prose","value":{"id":"domxref(EXT_disjoint_timer_query)","title":"<a href=\"/en-US/docs/Web/API/EXT_disjoint_timer_query\"><code>EXT_disjoint_timer_query</code></a>","isH3":true,"content":"<table class=\"standard-table\">\n <thead>\n <tr>\n <th scope=\"col\">Constant name</th>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>QUERY_COUNTER_BITS_EXT</code></td>\n <td>0x8864</td>\n <td>The number of bits used to hold the query result for the given target.</td>\n </tr>\n <tr>\n <td><code>CURRENT_QUERY_EXT</code></td>\n <td>0x8865</td>\n <td>The currently active query.</td>\n </tr>\n <tr>\n <td><code>QUERY_RESULT_EXT</code></td>\n <td>0x8866</td>\n <td>The query result.</td>\n </tr>\n <tr>\n <td><code>QUERY_RESULT_AVAILABLE_EXT</code></td>\n <td>0x8867</td>\n <td>A Boolean indicating whether or not a query result is available.</td>\n </tr>\n <tr>\n <td><code>TIME_ELAPSED_EXT</code></td>\n <td>0x88BF</td>\n <td>Elapsed time (in nanoseconds).</td>\n </tr>\n <tr>\n <td><code>TIMESTAMP_EXT</code></td>\n <td>0x8E28</td>\n <td>The current time.</td>\n </tr>\n <tr>\n <td><code>GPU_DISJOINT_EXT</code></td>\n <td>0x8FBB</td>\n <td>A Boolean indicating whether or not the GPU performed any disjoint operation.</td>\n </tr>\n </tbody>\n</table>","titleAsText":"EXT_disjoint_timer_query"}},{"type":"prose","value":{"id":"Specifications","title":"Specifications","isH3":false,"content":"<table class=\"standard-table\">\n <tbody>\n <tr>\n <th scope=\"col\">Specification</th>\n <th scope=\"col\">Status</th>\n <th scope=\"col\">Comment</th>\n </tr>\n <tr>\n <td><a href=\"https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14\" hreflang=\"en\" lang=\"en\" class=\"external\" rel=\" noopener\">WebGL 1.0<br><small lang=\"en-US\">The definition of 'WebGLRenderingContext' in that specification.</small></a></td>\n <td><span class=\"spec-rec\">Recommendation</span></td>\n <td>Initial definition</td>\n </tr>\n <tr>\n <td><a href=\"https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7\" hreflang=\"en\" lang=\"en\" class=\"external\" rel=\" noopener\">WebGL 2.0<br><small lang=\"en-US\">The definition of 'WebGL2RenderingContext' in that specification.</small></a></td>\n <td><span class=\"spec-ed\">Editor's Draft</span></td>\n <td>Defines additional constants.</td>\n </tr>\n </tbody>\n</table>"}},{"type":"prose","value":{"id":"See_also","title":"See also","isH3":false,"content":"<ul>\n <li><a href=\"/en-US/docs/Web/API/WebGLRenderingContext\"><code>WebGLRenderingContext</code></a></li>\n</ul>"}}],"toc":[{"text":"Table of contents","id":"Table_of_contents"},{"text":"Standard WebGL 1 constants","id":"Standard_WebGL_1_constants"},{"text":"Additional constants defined WebGL 2","id":"Additional_constants_defined_WebGL_2"},{"text":"Constants defined in WebGL extensions","id":"Constants_defined_in_WebGL_extensions"},{"text":"Specifications","id":"Specifications"},{"text":"See also","id":"See_also"}],"summary":"The WebGL API provides several constants that are passed into or returned by functions. All constants are of type GLenum.","popularity":0.0027,"modified":"2021-03-03T13:26:46.000Z","source":{"folder":"en-us/web/api/webgl_api/constants","github_url":"https://github.com/mdn/content/blob/main/files/en-us/web/api/webgl_api/constants/index.html","last_commit_url":"https://github.com/mdn/content/commit/5de247016249b30765dd93b9c98ef488818ca801","filename":"index.html"},"parents":[{"uri":"/en-US/docs/Web","title":"Web technology for developers"},{"uri":"/en-US/docs/Web/API","title":"Web APIs"},{"uri":"/en-US/docs/Web/API/WebGL_API","title":"WebGL: 2D and 3D graphics for the web"},{"uri":"/en-US/docs/Web/API/WebGL_API/Constants","title":"WebGL constants"}],"pageTitle":"WebGL constants - Web APIs | MDN","noIndexing":false}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment