<?xml version="1.0" encoding="UTF-8"?>
<feature id="webgl2"><name>WebGL2</name><description>The WebGL2RenderingContext API is the &#34;webgl2&#34; rendering context for the &lt;canvas&gt; element. It represents a space for drawing two- and three-dimensional graphics and animations. It corresponds to OpenGL ES 3.0.</description><baseline><status>widely</status><low_date>2021-09-20</low_date><high_date>2024-03-20</high_date></baseline><support><browser name="chrome" version="56" supported="true"></browser><browser name="firefox" version="51" supported="true"></browser><browser name="safari" version="15" supported="true"></browser><browser name="edge" version="79" supported="true"></browser><browser name="chrome_android" version="58" supported="true"></browser><browser name="firefox_android" version="51" supported="true"></browser><browser name="safari_ios" version="15" supported="true"></browser></support><specifications><spec>https://registry.khronos.org/webgl/specs/latest/2.0/</spec></specifications><caniuse><id>webgl2</id></caniuse><mdn_url>https://developer.mozilla.org/docs/Web/API/WebGLSync</mdn_url><compat_features><key>api.HTMLCanvasElement.getContext.webgl2_context</key><key>api.HTMLCanvasElement.getContext.webgl2_context.options_alpha_parameter</key><key>api.HTMLCanvasElement.getContext.webgl2_context.options_failIfMajorPerformanceCaveat_parameter</key><key>api.HTMLCanvasElement.getContext.webgl2_context.options_powerPreference_parameter</key><key>api.WebGL2RenderingContext</key><key>api.WebGL2RenderingContext.activeTexture</key><key>api.WebGL2RenderingContext.attachShader</key><key>api.WebGL2RenderingContext.beginQuery</key><key>api.WebGL2RenderingContext.beginTransformFeedback</key><key>api.WebGL2RenderingContext.bindAttribLocation</key><key>api.WebGL2RenderingContext.bindBuffer</key><key>api.WebGL2RenderingContext.bindBufferBase</key><key>api.WebGL2RenderingContext.bindBufferRange</key><key>api.WebGL2RenderingContext.bindFramebuffer</key><key>api.WebGL2RenderingContext.bindRenderbuffer</key><key>api.WebGL2RenderingContext.bindSampler</key><key>api.WebGL2RenderingContext.bindTexture</key><key>api.WebGL2RenderingContext.bindTransformFeedback</key><key>api.WebGL2RenderingContext.bindVertexArray</key><key>api.WebGL2RenderingContext.blendColor</key><key>api.WebGL2RenderingContext.blendEquation</key><key>api.WebGL2RenderingContext.blendEquationSeparate</key><key>api.WebGL2RenderingContext.blendFunc</key><key>api.WebGL2RenderingContext.blendFuncSeparate</key><key>api.WebGL2RenderingContext.blitFramebuffer</key><key>api.WebGL2RenderingContext.bufferData</key><key>api.WebGL2RenderingContext.bufferSubData</key><key>api.WebGL2RenderingContext.canvas</key><key>api.WebGL2RenderingContext.checkFramebufferStatus</key><key>api.WebGL2RenderingContext.clear</key><key>api.WebGL2RenderingContext.clearBufferfi</key><key>api.WebGL2RenderingContext.clearBufferfv</key><key>api.WebGL2RenderingContext.clearBufferiv</key><key>api.WebGL2RenderingContext.clearBufferuiv</key><key>api.WebGL2RenderingContext.clearColor</key><key>api.WebGL2RenderingContext.clearDepth</key><key>api.WebGL2RenderingContext.clearStencil</key><key>api.WebGL2RenderingContext.clientWaitSync</key><key>api.WebGL2RenderingContext.colorMask</key><key>api.WebGL2RenderingContext.compileShader</key><key>api.WebGL2RenderingContext.compressedTexImage2D</key><key>api.WebGL2RenderingContext.compressedTexImage3D</key><key>api.WebGL2RenderingContext.compressedTexSubImage2D</key><key>api.WebGL2RenderingContext.compressedTexSubImage3D</key><key>api.WebGL2RenderingContext.copyBufferSubData</key><key>api.WebGL2RenderingContext.copyTexImage2D</key><key>api.WebGL2RenderingContext.copyTexSubImage2D</key><key>api.WebGL2RenderingContext.copyTexSubImage3D</key><key>api.WebGL2RenderingContext.createBuffer</key><key>api.WebGL2RenderingContext.createFramebuffer</key><key>api.WebGL2RenderingContext.createProgram</key><key>api.WebGL2RenderingContext.createQuery</key><key>api.WebGL2RenderingContext.createRenderbuffer</key><key>api.WebGL2RenderingContext.createSampler</key><key>api.WebGL2RenderingContext.createShader</key><key>api.WebGL2RenderingContext.createTexture</key><key>api.WebGL2RenderingContext.createTransformFeedback</key><key>api.WebGL2RenderingContext.createVertexArray</key><key>api.WebGL2RenderingContext.cullFace</key><key>api.WebGL2RenderingContext.deleteBuffer</key><key>api.WebGL2RenderingContext.deleteFramebuffer</key><key>api.WebGL2RenderingContext.deleteProgram</key><key>api.WebGL2RenderingContext.deleteQuery</key><key>api.WebGL2RenderingContext.deleteRenderbuffer</key><key>api.WebGL2RenderingContext.deleteSampler</key><key>api.WebGL2RenderingContext.deleteShader</key><key>api.WebGL2RenderingContext.deleteSync</key><key>api.WebGL2RenderingContext.deleteTexture</key><key>api.WebGL2RenderingContext.deleteTransformFeedback</key><key>api.WebGL2RenderingContext.deleteVertexArray</key><key>api.WebGL2RenderingContext.depthFunc</key><key>api.WebGL2RenderingContext.depthMask</key><key>api.WebGL2RenderingContext.depthRange</key><key>api.WebGL2RenderingContext.detachShader</key><key>api.WebGL2RenderingContext.disable</key><key>api.WebGL2RenderingContext.disableVertexAttribArray</key><key>api.WebGL2RenderingContext.drawArrays</key><key>api.WebGL2RenderingContext.drawArraysInstanced</key><key>api.WebGL2RenderingContext.drawBuffers</key><key>api.WebGL2RenderingContext.drawElements</key><key>api.WebGL2RenderingContext.drawElementsInstanced</key><key>api.WebGL2RenderingContext.drawRangeElements</key><key>api.WebGL2RenderingContext.drawingBufferFormat</key><key>api.WebGL2RenderingContext.drawingBufferHeight</key><key>api.WebGL2RenderingContext.drawingBufferStorage</key><key>api.WebGL2RenderingContext.drawingBufferWidth</key><key>api.WebGL2RenderingContext.enable</key><key>api.WebGL2RenderingContext.enableVertexAttribArray</key><key>api.WebGL2RenderingContext.endQuery</key><key>api.WebGL2RenderingContext.endTransformFeedback</key><key>api.WebGL2RenderingContext.fenceSync</key><key>api.WebGL2RenderingContext.finish</key><key>api.WebGL2RenderingContext.flush</key><key>api.WebGL2RenderingContext.framebufferRenderbuffer</key><key>api.WebGL2RenderingContext.framebufferTexture2D</key><key>api.WebGL2RenderingContext.framebufferTextureLayer</key><key>api.WebGL2RenderingContext.frontFace</key><key>api.WebGL2RenderingContext.generateMipmap</key><key>api.WebGL2RenderingContext.getActiveAttrib</key><key>api.WebGL2RenderingContext.getActiveUniform</key><key>api.WebGL2RenderingContext.getActiveUniformBlockName</key><key>api.WebGL2RenderingContext.getActiveUniformBlockParameter</key><key>api.WebGL2RenderingContext.getActiveUniforms</key><key>api.WebGL2RenderingContext.getAttachedShaders</key><key>api.WebGL2RenderingContext.getAttribLocation</key><key>api.WebGL2RenderingContext.getBufferParameter</key><key>api.WebGL2RenderingContext.getBufferSubData</key><key>api.WebGL2RenderingContext.getContextAttributes</key><key>api.WebGL2RenderingContext.getError</key><key>api.WebGL2RenderingContext.getExtension</key><key>api.WebGL2RenderingContext.getFragDataLocation</key><key>api.WebGL2RenderingContext.getFramebufferAttachmentParameter</key><key>api.WebGL2RenderingContext.getIndexedParameter</key><key>api.WebGL2RenderingContext.getInternalformatParameter</key><key>api.WebGL2RenderingContext.getParameter</key><key>api.WebGL2RenderingContext.getProgramInfoLog</key><key>api.WebGL2RenderingContext.getProgramParameter</key><key>api.WebGL2RenderingContext.getQuery</key><key>api.WebGL2RenderingContext.getQueryParameter</key><key>api.WebGL2RenderingContext.getRenderbufferParameter</key><key>api.WebGL2RenderingContext.getSamplerParameter</key><key>api.WebGL2RenderingContext.getShaderInfoLog</key><key>api.WebGL2RenderingContext.getShaderParameter</key><key>api.WebGL2RenderingContext.getShaderPrecisionFormat</key><key>api.WebGL2RenderingContext.getShaderSource</key><key>api.WebGL2RenderingContext.getSupportedExtensions</key><key>api.WebGL2RenderingContext.getSyncParameter</key><key>api.WebGL2RenderingContext.getTexParameter</key><key>api.WebGL2RenderingContext.getTransformFeedbackVarying</key><key>api.WebGL2RenderingContext.getUniform</key><key>api.WebGL2RenderingContext.getUniformBlockIndex</key><key>api.WebGL2RenderingContext.getUniformIndices</key><key>api.WebGL2RenderingContext.getUniformLocation</key><key>api.WebGL2RenderingContext.getVertexAttrib</key><key>api.WebGL2RenderingContext.getVertexAttribOffset</key><key>api.WebGL2RenderingContext.hint</key><key>api.WebGL2RenderingContext.invalidateFramebuffer</key><key>api.WebGL2RenderingContext.invalidateSubFramebuffer</key><key>api.WebGL2RenderingContext.isBuffer</key><key>api.WebGL2RenderingContext.isContextLost</key><key>api.WebGL2RenderingContext.isEnabled</key><key>api.WebGL2RenderingContext.isFramebuffer</key><key>api.WebGL2RenderingContext.isProgram</key><key>api.WebGL2RenderingContext.isQuery</key><key>api.WebGL2RenderingContext.isRenderbuffer</key><key>api.WebGL2RenderingContext.isSampler</key><key>api.WebGL2RenderingContext.isShader</key><key>api.WebGL2RenderingContext.isSync</key><key>api.WebGL2RenderingContext.isTexture</key><key>api.WebGL2RenderingContext.isTransformFeedback</key><key>api.WebGL2RenderingContext.isVertexArray</key><key>api.WebGL2RenderingContext.lineWidth</key><key>api.WebGL2RenderingContext.linkProgram</key><key>api.WebGL2RenderingContext.pauseTransformFeedback</key><key>api.WebGL2RenderingContext.pixelStorei</key><key>api.WebGL2RenderingContext.polygonOffset</key><key>api.WebGL2RenderingContext.readBuffer</key><key>api.WebGL2RenderingContext.readPixels</key><key>api.WebGL2RenderingContext.renderbufferStorage</key><key>api.WebGL2RenderingContext.renderbufferStorageMultisample</key><key>api.WebGL2RenderingContext.resumeTransformFeedback</key><key>api.WebGL2RenderingContext.sampleCoverage</key><key>api.WebGL2RenderingContext.samplerParameterf</key><key>api.WebGL2RenderingContext.samplerParameteri</key><key>api.WebGL2RenderingContext.scissor</key><key>api.WebGL2RenderingContext.shaderSource</key><key>api.WebGL2RenderingContext.stencilFunc</key><key>api.WebGL2RenderingContext.stencilFuncSeparate</key><key>api.WebGL2RenderingContext.stencilMask</key><key>api.WebGL2RenderingContext.stencilMaskSeparate</key><key>api.WebGL2RenderingContext.stencilOp</key><key>api.WebGL2RenderingContext.stencilOpSeparate</key><key>api.WebGL2RenderingContext.texImage2D</key><key>api.WebGL2RenderingContext.texImage3D</key><key>api.WebGL2RenderingContext.texParameterf</key><key>api.WebGL2RenderingContext.texParameteri</key><key>api.WebGL2RenderingContext.texStorage2D</key><key>api.WebGL2RenderingContext.texStorage3D</key><key>api.WebGL2RenderingContext.texSubImage2D</key><key>api.WebGL2RenderingContext.texSubImage3D</key><key>api.WebGL2RenderingContext.transformFeedbackVaryings</key><key>api.WebGL2RenderingContext.uniform1f</key><key>api.WebGL2RenderingContext.uniform1fv</key><key>api.WebGL2RenderingContext.uniform1i</key><key>api.WebGL2RenderingContext.uniform1iv</key><key>api.WebGL2RenderingContext.uniform1ui</key><key>api.WebGL2RenderingContext.uniform1uiv</key><key>api.WebGL2RenderingContext.uniform2f</key><key>api.WebGL2RenderingContext.uniform2fv</key><key>api.WebGL2RenderingContext.uniform2i</key><key>api.WebGL2RenderingContext.uniform2iv</key><key>api.WebGL2RenderingContext.uniform2ui</key><key>api.WebGL2RenderingContext.uniform2uiv</key><key>api.WebGL2RenderingContext.uniform3f</key><key>api.WebGL2RenderingContext.uniform3fv</key><key>api.WebGL2RenderingContext.uniform3i</key><key>api.WebGL2RenderingContext.uniform3iv</key><key>api.WebGL2RenderingContext.uniform3ui</key><key>api.WebGL2RenderingContext.uniform3uiv</key><key>api.WebGL2RenderingContext.uniform4f</key><key>api.WebGL2RenderingContext.uniform4fv</key><key>api.WebGL2RenderingContext.uniform4i</key><key>api.WebGL2RenderingContext.uniform4iv</key><key>api.WebGL2RenderingContext.uniform4ui</key><key>api.WebGL2RenderingContext.uniform4uiv</key><key>api.WebGL2RenderingContext.uniformBlockBinding</key><key>api.WebGL2RenderingContext.uniformMatrix2fv</key><key>api.WebGL2RenderingContext.uniformMatrix2x3fv</key><key>api.WebGL2RenderingContext.uniformMatrix2x4fv</key><key>api.WebGL2RenderingContext.uniformMatrix3fv</key><key>api.WebGL2RenderingContext.uniformMatrix3x2fv</key><key>api.WebGL2RenderingContext.uniformMatrix3x4fv</key><key>api.WebGL2RenderingContext.uniformMatrix4fv</key><key>api.WebGL2RenderingContext.uniformMatrix4x2fv</key><key>api.WebGL2RenderingContext.uniformMatrix4x3fv</key><key>api.WebGL2RenderingContext.useProgram</key><key>api.WebGL2RenderingContext.validateProgram</key><key>api.WebGL2RenderingContext.vertexAttrib1f</key><key>api.WebGL2RenderingContext.vertexAttrib1fv</key><key>api.WebGL2RenderingContext.vertexAttrib2f</key><key>api.WebGL2RenderingContext.vertexAttrib2fv</key><key>api.WebGL2RenderingContext.vertexAttrib3f</key><key>api.WebGL2RenderingContext.vertexAttrib3fv</key><key>api.WebGL2RenderingContext.vertexAttrib4f</key><key>api.WebGL2RenderingContext.vertexAttrib4fv</key><key>api.WebGL2RenderingContext.vertexAttribDivisor</key><key>api.WebGL2RenderingContext.vertexAttribI4i</key><key>api.WebGL2RenderingContext.vertexAttribI4iv</key><key>api.WebGL2RenderingContext.vertexAttribI4ui</key><key>api.WebGL2RenderingContext.vertexAttribI4uiv</key><key>api.WebGL2RenderingContext.vertexAttribIPointer</key><key>api.WebGL2RenderingContext.vertexAttribPointer</key><key>api.WebGL2RenderingContext.viewport</key><key>api.WebGL2RenderingContext.waitSync</key><key>api.WebGLQuery</key><key>api.WebGLSampler</key><key>api.WebGLSync</key><key>api.WebGLTransformFeedback</key><key>api.WebGLVertexArrayObject</key></compat_features><canonical_url>https://nowyoucanuse.com/features--webgl2.html</canonical_url></feature>