Created
April 28, 2021 12:55
-
-
Save peterbe/c54a65335e4874249fe8187a11952adb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"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("GLenum")}}\"><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 <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 <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("WebGLRenderingContext.texParameteri()")}}\"><code>WebGLRenderingContext.texParameteri()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texParameter\" data-flaw-src=\"{{domxref("WebGLRenderingContext.texParameterf()")}}\"><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("WebGLRenderingContext.texParameteri()")}}\"><code>WebGLRenderingContext.texParameteri()</code></a>, <a href=\"/en-US/docs/Web/API/WebGLRenderingContext/texParameter\" data-flaw-src=\"{{domxref("WebGLRenderingContext.texParameterf()")}}\"><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 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 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