BASELINE NowYouCanUse.com
Widely Available

WebGL2

The WebGL2RenderingContext API is the "webgl2" rendering context for the <canvas> element. It represents a space for drawing two- and three-dimensional graphics and animations. It corresponds to OpenGL ES 3.0.
Baseline Status: Achieved Widely Available on Mar 20, 2024 (Cross-browser Newly Available since Sep 20, 2021).
Desktop Browser Engine Support
Google Chrome
56
Supported
Mozilla Firefox
51
Supported
Apple Safari
15
Supported
Microsoft Edge
79
Supported
Mobile Browser Engine Support
Chrome Android
58
Firefox Android
51
Safari iOS
15
Specifications and References
MDN Browser Compat Data Keys:
api.HTMLCanvasElement.getContext.webgl2_context ↗ api.HTMLCanvasElement.getContext.webgl2_context.options_alpha_parameter ↗ api.HTMLCanvasElement.getContext.webgl2_context.options_failIfMajorPerformanceCaveat_parameter ↗ api.HTMLCanvasElement.getContext.webgl2_context.options_powerPreference_parameter ↗ api.WebGL2RenderingContext ↗ api.WebGL2RenderingContext.activeTexture ↗ api.WebGL2RenderingContext.attachShader ↗ api.WebGL2RenderingContext.beginQuery ↗ api.WebGL2RenderingContext.beginTransformFeedback ↗ api.WebGL2RenderingContext.bindAttribLocation ↗ api.WebGL2RenderingContext.bindBuffer ↗ api.WebGL2RenderingContext.bindBufferBase ↗ api.WebGL2RenderingContext.bindBufferRange ↗ api.WebGL2RenderingContext.bindFramebuffer ↗ api.WebGL2RenderingContext.bindRenderbuffer ↗ api.WebGL2RenderingContext.bindSampler ↗ api.WebGL2RenderingContext.bindTexture ↗ api.WebGL2RenderingContext.bindTransformFeedback ↗ api.WebGL2RenderingContext.bindVertexArray ↗ api.WebGL2RenderingContext.blendColor ↗ api.WebGL2RenderingContext.blendEquation ↗ api.WebGL2RenderingContext.blendEquationSeparate ↗ api.WebGL2RenderingContext.blendFunc ↗ api.WebGL2RenderingContext.blendFuncSeparate ↗ api.WebGL2RenderingContext.blitFramebuffer ↗ api.WebGL2RenderingContext.bufferData ↗ api.WebGL2RenderingContext.bufferSubData ↗ api.WebGL2RenderingContext.canvas ↗ api.WebGL2RenderingContext.checkFramebufferStatus ↗ api.WebGL2RenderingContext.clear ↗ api.WebGL2RenderingContext.clearBufferfi ↗ api.WebGL2RenderingContext.clearBufferfv ↗ api.WebGL2RenderingContext.clearBufferiv ↗ api.WebGL2RenderingContext.clearBufferuiv ↗ api.WebGL2RenderingContext.clearColor ↗ api.WebGL2RenderingContext.clearDepth ↗ api.WebGL2RenderingContext.clearStencil ↗ api.WebGL2RenderingContext.clientWaitSync ↗ api.WebGL2RenderingContext.colorMask ↗ api.WebGL2RenderingContext.compileShader ↗ api.WebGL2RenderingContext.compressedTexImage2D ↗ api.WebGL2RenderingContext.compressedTexImage3D ↗ api.WebGL2RenderingContext.compressedTexSubImage2D ↗ api.WebGL2RenderingContext.compressedTexSubImage3D ↗ api.WebGL2RenderingContext.copyBufferSubData ↗ api.WebGL2RenderingContext.copyTexImage2D ↗ api.WebGL2RenderingContext.copyTexSubImage2D ↗ api.WebGL2RenderingContext.copyTexSubImage3D ↗ api.WebGL2RenderingContext.createBuffer ↗ api.WebGL2RenderingContext.createFramebuffer ↗ api.WebGL2RenderingContext.createProgram ↗ api.WebGL2RenderingContext.createQuery ↗ api.WebGL2RenderingContext.createRenderbuffer ↗ api.WebGL2RenderingContext.createSampler ↗ api.WebGL2RenderingContext.createShader ↗ api.WebGL2RenderingContext.createTexture ↗ api.WebGL2RenderingContext.createTransformFeedback ↗ api.WebGL2RenderingContext.createVertexArray ↗ api.WebGL2RenderingContext.cullFace ↗ api.WebGL2RenderingContext.deleteBuffer ↗ api.WebGL2RenderingContext.deleteFramebuffer ↗ api.WebGL2RenderingContext.deleteProgram ↗ api.WebGL2RenderingContext.deleteQuery ↗ api.WebGL2RenderingContext.deleteRenderbuffer ↗ api.WebGL2RenderingContext.deleteSampler ↗ api.WebGL2RenderingContext.deleteShader ↗ api.WebGL2RenderingContext.deleteSync ↗ api.WebGL2RenderingContext.deleteTexture ↗ api.WebGL2RenderingContext.deleteTransformFeedback ↗ api.WebGL2RenderingContext.deleteVertexArray ↗ api.WebGL2RenderingContext.depthFunc ↗ api.WebGL2RenderingContext.depthMask ↗ api.WebGL2RenderingContext.depthRange ↗ api.WebGL2RenderingContext.detachShader ↗ api.WebGL2RenderingContext.disable ↗ api.WebGL2RenderingContext.disableVertexAttribArray ↗ api.WebGL2RenderingContext.drawArrays ↗ api.WebGL2RenderingContext.drawArraysInstanced ↗ api.WebGL2RenderingContext.drawBuffers ↗ api.WebGL2RenderingContext.drawElements ↗ api.WebGL2RenderingContext.drawElementsInstanced ↗ api.WebGL2RenderingContext.drawRangeElements ↗ api.WebGL2RenderingContext.drawingBufferFormat ↗ api.WebGL2RenderingContext.drawingBufferHeight ↗ api.WebGL2RenderingContext.drawingBufferStorage ↗ api.WebGL2RenderingContext.drawingBufferWidth ↗ api.WebGL2RenderingContext.enable ↗ api.WebGL2RenderingContext.enableVertexAttribArray ↗ api.WebGL2RenderingContext.endQuery ↗ api.WebGL2RenderingContext.endTransformFeedback ↗ api.WebGL2RenderingContext.fenceSync ↗ api.WebGL2RenderingContext.finish ↗ api.WebGL2RenderingContext.flush ↗ api.WebGL2RenderingContext.framebufferRenderbuffer ↗ api.WebGL2RenderingContext.framebufferTexture2D ↗ api.WebGL2RenderingContext.framebufferTextureLayer ↗ api.WebGL2RenderingContext.frontFace ↗ api.WebGL2RenderingContext.generateMipmap ↗ api.WebGL2RenderingContext.getActiveAttrib ↗ api.WebGL2RenderingContext.getActiveUniform ↗ api.WebGL2RenderingContext.getActiveUniformBlockName ↗ api.WebGL2RenderingContext.getActiveUniformBlockParameter ↗ api.WebGL2RenderingContext.getActiveUniforms ↗ api.WebGL2RenderingContext.getAttachedShaders ↗ api.WebGL2RenderingContext.getAttribLocation ↗ api.WebGL2RenderingContext.getBufferParameter ↗ api.WebGL2RenderingContext.getBufferSubData ↗ api.WebGL2RenderingContext.getContextAttributes ↗ api.WebGL2RenderingContext.getError ↗ api.WebGL2RenderingContext.getExtension ↗ api.WebGL2RenderingContext.getFragDataLocation ↗ api.WebGL2RenderingContext.getFramebufferAttachmentParameter ↗ api.WebGL2RenderingContext.getIndexedParameter ↗ api.WebGL2RenderingContext.getInternalformatParameter ↗ api.WebGL2RenderingContext.getParameter ↗ api.WebGL2RenderingContext.getProgramInfoLog ↗ api.WebGL2RenderingContext.getProgramParameter ↗ api.WebGL2RenderingContext.getQuery ↗ api.WebGL2RenderingContext.getQueryParameter ↗ api.WebGL2RenderingContext.getRenderbufferParameter ↗ api.WebGL2RenderingContext.getSamplerParameter ↗ api.WebGL2RenderingContext.getShaderInfoLog ↗ api.WebGL2RenderingContext.getShaderParameter ↗ api.WebGL2RenderingContext.getShaderPrecisionFormat ↗ api.WebGL2RenderingContext.getShaderSource ↗ api.WebGL2RenderingContext.getSupportedExtensions ↗ api.WebGL2RenderingContext.getSyncParameter ↗ api.WebGL2RenderingContext.getTexParameter ↗ api.WebGL2RenderingContext.getTransformFeedbackVarying ↗ api.WebGL2RenderingContext.getUniform ↗ api.WebGL2RenderingContext.getUniformBlockIndex ↗ api.WebGL2RenderingContext.getUniformIndices ↗ api.WebGL2RenderingContext.getUniformLocation ↗ api.WebGL2RenderingContext.getVertexAttrib ↗ api.WebGL2RenderingContext.getVertexAttribOffset ↗ api.WebGL2RenderingContext.hint ↗ api.WebGL2RenderingContext.invalidateFramebuffer ↗ api.WebGL2RenderingContext.invalidateSubFramebuffer ↗ api.WebGL2RenderingContext.isBuffer ↗ api.WebGL2RenderingContext.isContextLost ↗ api.WebGL2RenderingContext.isEnabled ↗ api.WebGL2RenderingContext.isFramebuffer ↗ api.WebGL2RenderingContext.isProgram ↗ api.WebGL2RenderingContext.isQuery ↗ api.WebGL2RenderingContext.isRenderbuffer ↗ api.WebGL2RenderingContext.isSampler ↗ api.WebGL2RenderingContext.isShader ↗ api.WebGL2RenderingContext.isSync ↗ api.WebGL2RenderingContext.isTexture ↗ api.WebGL2RenderingContext.isTransformFeedback ↗ api.WebGL2RenderingContext.isVertexArray ↗ api.WebGL2RenderingContext.lineWidth ↗ api.WebGL2RenderingContext.linkProgram ↗ api.WebGL2RenderingContext.pauseTransformFeedback ↗ api.WebGL2RenderingContext.pixelStorei ↗ api.WebGL2RenderingContext.polygonOffset ↗ api.WebGL2RenderingContext.readBuffer ↗ api.WebGL2RenderingContext.readPixels ↗ api.WebGL2RenderingContext.renderbufferStorage ↗ api.WebGL2RenderingContext.renderbufferStorageMultisample ↗ api.WebGL2RenderingContext.resumeTransformFeedback ↗ api.WebGL2RenderingContext.sampleCoverage ↗ api.WebGL2RenderingContext.samplerParameterf ↗ api.WebGL2RenderingContext.samplerParameteri ↗ api.WebGL2RenderingContext.scissor ↗ api.WebGL2RenderingContext.shaderSource ↗ api.WebGL2RenderingContext.stencilFunc ↗ api.WebGL2RenderingContext.stencilFuncSeparate ↗ api.WebGL2RenderingContext.stencilMask ↗ api.WebGL2RenderingContext.stencilMaskSeparate ↗ api.WebGL2RenderingContext.stencilOp ↗ api.WebGL2RenderingContext.stencilOpSeparate ↗ api.WebGL2RenderingContext.texImage2D ↗ api.WebGL2RenderingContext.texImage3D ↗ api.WebGL2RenderingContext.texParameterf ↗ api.WebGL2RenderingContext.texParameteri ↗ api.WebGL2RenderingContext.texStorage2D ↗ api.WebGL2RenderingContext.texStorage3D ↗ api.WebGL2RenderingContext.texSubImage2D ↗ api.WebGL2RenderingContext.texSubImage3D ↗ api.WebGL2RenderingContext.transformFeedbackVaryings ↗ api.WebGL2RenderingContext.uniform1f ↗ api.WebGL2RenderingContext.uniform1fv ↗ api.WebGL2RenderingContext.uniform1i ↗ api.WebGL2RenderingContext.uniform1iv ↗ api.WebGL2RenderingContext.uniform1ui ↗ api.WebGL2RenderingContext.uniform1uiv ↗ api.WebGL2RenderingContext.uniform2f ↗ api.WebGL2RenderingContext.uniform2fv ↗ api.WebGL2RenderingContext.uniform2i ↗ api.WebGL2RenderingContext.uniform2iv ↗ api.WebGL2RenderingContext.uniform2ui ↗ api.WebGL2RenderingContext.uniform2uiv ↗ api.WebGL2RenderingContext.uniform3f ↗ api.WebGL2RenderingContext.uniform3fv ↗ api.WebGL2RenderingContext.uniform3i ↗ api.WebGL2RenderingContext.uniform3iv ↗ api.WebGL2RenderingContext.uniform3ui ↗ api.WebGL2RenderingContext.uniform3uiv ↗ api.WebGL2RenderingContext.uniform4f ↗ api.WebGL2RenderingContext.uniform4fv ↗ api.WebGL2RenderingContext.uniform4i ↗ api.WebGL2RenderingContext.uniform4iv ↗ api.WebGL2RenderingContext.uniform4ui ↗ api.WebGL2RenderingContext.uniform4uiv ↗ api.WebGL2RenderingContext.uniformBlockBinding ↗ api.WebGL2RenderingContext.uniformMatrix2fv ↗ api.WebGL2RenderingContext.uniformMatrix2x3fv ↗ api.WebGL2RenderingContext.uniformMatrix2x4fv ↗ api.WebGL2RenderingContext.uniformMatrix3fv ↗ api.WebGL2RenderingContext.uniformMatrix3x2fv ↗ api.WebGL2RenderingContext.uniformMatrix3x4fv ↗ api.WebGL2RenderingContext.uniformMatrix4fv ↗ api.WebGL2RenderingContext.uniformMatrix4x2fv ↗ api.WebGL2RenderingContext.uniformMatrix4x3fv ↗ api.WebGL2RenderingContext.useProgram ↗ api.WebGL2RenderingContext.validateProgram ↗ api.WebGL2RenderingContext.vertexAttrib1f ↗ api.WebGL2RenderingContext.vertexAttrib1fv ↗ api.WebGL2RenderingContext.vertexAttrib2f ↗ api.WebGL2RenderingContext.vertexAttrib2fv ↗ api.WebGL2RenderingContext.vertexAttrib3f ↗ api.WebGL2RenderingContext.vertexAttrib3fv ↗ api.WebGL2RenderingContext.vertexAttrib4f ↗ api.WebGL2RenderingContext.vertexAttrib4fv ↗ api.WebGL2RenderingContext.vertexAttribDivisor ↗ api.WebGL2RenderingContext.vertexAttribI4i ↗ api.WebGL2RenderingContext.vertexAttribI4iv ↗ api.WebGL2RenderingContext.vertexAttribI4ui ↗ api.WebGL2RenderingContext.vertexAttribI4uiv ↗ api.WebGL2RenderingContext.vertexAttribIPointer ↗ api.WebGL2RenderingContext.vertexAttribPointer ↗ api.WebGL2RenderingContext.viewport ↗ api.WebGL2RenderingContext.waitSync ↗ api.WebGLQuery ↗ api.WebGLSampler ↗ api.WebGLSync ↗ api.WebGLTransformFeedback ↗ api.WebGLVertexArrayObject ↗
id: webgl2