---
title: WebGL2RenderingContext
slug: Web/API/WebGL2RenderingContext
translation_of: Web/API/WebGL2RenderingContext
---
{{APIRef("WebGL")}} {{SeeCompatTable}}
WebGL2RenderingContext 接口在底层使用了OpenGL ES 3.0 为 HTML 的 {{HTMLElement("canvas")}} 元素提供了绘图上下文。
要获取该接口的实例对象需要调用一个 <canvas> 标签对象的 {{domxref("HTMLCanvasElement.getContext()", "getContext()")}} 函数,并将 "webgl2" 作为参数传递:
var canvas = document.getElementById('myCanvas');
var gl = canvas.getContext('webgl2');
WebGL 2 是 WebGL 1 的扩展。 WebGL2RenderingContext
接口实现了 {{domxref("WebGLRenderingContext")}} 接口的所有成员。 有一些 WebGL 1 上下文中的方法在使用 WebGL 2 上下文的时候可以接受附加值。 您可以通过 WebGL 1 的参考页了解这些信息。
这个 WebGL 教程 中提供了关于如何开始使用 WebGL 的更多信息、示例以及资源。
常量
请看 WebGL 常量 页面。
状态信息
- {{domxref("WebGL2RenderingContext.getIndexedParameter()")}}
- 返回指定目标的索引值。
缓冲区
- {{domxref("WebGL2RenderingContext.copyBufferSubData()")}}
- 将缓冲区的部分数据复制到另一个缓冲区。
- {{domxref("WebGL2RenderingContext.getBufferSubData()")}}
- 从缓冲区中读取数据,然后将其写入到 {{jsxref("ArrayBuffer")}} 或 {{jsxref("SharedArrayBuffer")}} 中。
帧缓冲区
- {{domxref("WebGL2RenderingContext.blitFramebuffer()")}}
- 将一个像素块从读取帧缓冲区传输到绘制帧缓冲区。
- {{domxref("WebGL2RenderingContext.framebufferTextureLayer()")}}
- 附着一个单层的材质到帧缓冲区。
- {{domxref("WebGL2RenderingContext.invalidateFramebuffer()")}}
- 使附着到缓冲区的内容失效。
- {{domxref("WebGL2RenderingContext.invalidateSubFramebuffer()")}}
- 使附着到缓冲区的部分内容失效。
- {{domxref("WebGL2RenderingContext.readBuffer()")}}
- 选择一个颜色缓冲作为像素的source。
渲染缓冲区
- {{domxref("WebGL2RenderingContext.getInternalformatParameter()")}}
- Returns information about implementation-dependent support for internal formats.
- {{domxref("WebGL2RenderingContext.renderbufferStorageMultisample()")}}
- Creates and initializes a renderbuffer object's data store and allows specifying the number of samples to be used.
纹理
- {{domxref("WebGL2RenderingContext.texStorage2D()")}}
- Specifies all levels of two-dimensional texture storage.
- {{domxref("WebGL2RenderingContext.texStorage3D()")}}
- Specifies all levels of a three-dimensional texture or two-dimensional array texture.
- {{domxref("WebGL2RenderingContext.texImage3D()")}}
- Specifies a three-dimensional texture image.
- {{domxref("WebGL2RenderingContext.texSubImage3D()")}}
- Specifies a sub-rectangle of the current 3D texture.
- {{domxref("WebGL2RenderingContext.copyTexSubImage3D()")}}
- Copies pixels from the current
WebGLFramebuffer
into an existing 3D texture sub-image.
- {{domxref("WebGL2RenderingContext.compressedTexImage3D()")}}
- Specifies a three-dimensional texture image in a compressed format.
- {{domxref("WebGL2RenderingContext.compressedTexSubImage3D()")}}
- Specifies a three-dimensional sub-rectangle for a texture image in a compressed format.
程序和着色器
- {{domxref("WebGL2RenderingContext.getFragDataLocation()")}}
- Returns the binding of color numbers to user-defined varying out variables.
- {{domxref("WebGL2RenderingContext.uniform()", "WebGL2RenderingContext.uniform[1234][fiu][v]()")}}
- 指定一个uniform变量。
- {{domxref("WebGL2RenderingContext.uniformMatrix()", "WebGL2RenderingContext.uniformMatrix[1234][fv]()")}}
- 指定一个uniform矩阵变量。
- {{domxref("WebGL2RenderingContext.vertexAttribI()", "WebGL2RenderingContext.vertexAttribI[iuv]()")}}
- Methods specifying integer values for generic vertex attributes.
- {{domxref("WebGL2RenderingContext.vertexAttribIPointer()")}}
- Specifies integer data formats and locations of vertex attributes in a vertex attributes array.
绘图缓冲区
- {{domxref("WebGL2RenderingContext.vertexAttribDivisor()")}}
- Modifies the rate at which generic vertex attributes advance when rendering multiple instances of primitives with {{domxref("WebGL2RenderingContext.drawArraysInstanced()", "gl.drawArraysInstanced()")}} and {{domxref("WebGL2RenderingContext.drawElementsInstanced()", "gl.drawElementsInstanced()")}}.
- {{domxref("WebGL2RenderingContext.drawArraysInstanced()")}}
- Renders primitives from array data. In addition, it can execute multiple instances of the range of elements.
- {{domxref("WebGL2RenderingContext.drawElementsInstanced()")}}
- Renders primitives from array data. In addition, it can execute multiple instances of a set of elements.
- {{domxref("WebGL2RenderingContext.drawRangeElements()")}}
- Renders primitives from array data in a given range.
- {{domxref("WebGL2RenderingContext.drawBuffers()")}}
- Specifies a list of color buffers to be drawn into.
- {{domxref("WebGL2RenderingContext.clearBuffer()", "WebGL2RenderingContext.clearBuffer[fiuv]()")}}
- Clears buffers from the currently bound framebuffer.
查询对象
Methods for working with {{domxref("WebGLQuery")}} objects.
- {{domxref("WebGL2RenderingContext.createQuery()")}}
- 创建一个新的 {{domxref("WebGLQuery")}} 对象.
- {{domxref("WebGL2RenderingContext.deleteQuery()")}}
- 删除一个指定的 {{domxref("WebGLQuery")}} 对象。
- {{domxref("WebGL2RenderingContext.isQuery()")}}
- Returns
true
if a given object is a valid {{domxref("WebGLQuery")}} object.
- {{domxref("WebGL2RenderingContext.beginQuery()")}}
- 开始一个异步查询。
- {{domxref("WebGL2RenderingContext.endQuery()")}}
- Marks the end of an asynchronous query.
- {{domxref("WebGL2RenderingContext.getQuery()")}}
- 返回一个指定目标的 {{domxref("WebGLQuery")}} 对象。
- {{domxref("WebGL2RenderingContext.getQueryParameter()")}}
- 返回关于一个查询的信息。
采样对象
- {{domxref("WebGL2RenderingContext.createSampler()")}}
- Creates a new {{domxref("WebGLSampler")}} object.
- {{domxref("WebGL2RenderingContext.deleteSampler()")}}
- Deletes a given {{domxref("WebGLSampler")}} object.
- {{domxref("WebGL2RenderingContext.bindSampler()")}}
- Binds a given {{domxref("WebGLSampler")}} to a texture unit.
- {{domxref("WebGL2RenderingContext.isSampler()")}}
- Returns
true
if a given object is a valid {{domxref("WebGLSampler")}} object.
- {{domxref("WebGL2RenderingContext.samplerParameter()", "WebGL2RenderingContext.samplerParameter[if]()")}}
- Sets sampler parameters.
- {{domxref("WebGL2RenderingContext.getSamplerParameter()")}}
- Returns sampler parameter information.
同步对象
- {{domxref("WebGL2RenderingContext.fenceSync()")}}
- 创建一个 {{domxref("WebGLSync")}} 对象并插入到 GL 命令流中。
- {{domxref("WebGL2RenderingContext.isSync()")}}
- Returns
true
if the passed object is a valid {{domxref("WebGLSync")}} object.
- {{domxref("WebGL2RenderingContext.deleteSync()")}}
- 删除一个指定的 {{domxref("WebGLSync")}} 对象。
- {{domxref("WebGL2RenderingContext.clientWaitSync()")}}
-
Blocks and waits for a {{domxref("WebGLSync")}} object to become signaled or a given timeout to be passed.
- {{domxref("WebGL2RenderingContext.waitSync()")}}
- Returns immediately, but waits on the GL server until the given {{domxref("WebGLSync")}} object is signaled.
- {{domxref("WebGL2RenderingContext.getSyncParameter()")}}
- 根据一个 {{domxref("WebGLSync")}} 对象返回参数信息。
变换反馈
- {{domxref("WebGL2RenderingContext.createTransformFeedback()")}}
- 创建并初始化 {{domxref("WebGLTransformFeedback")}} 对象。
- {{domxref("WebGL2RenderingContext.deleteTransformFeedback()")}}
- 删除一个指定的 {{domxref("WebGLTransformFeedback")}} 对象。
- {{domxref("WebGL2RenderingContext.isTransformFeedback()")}}
- Returns
true
if the passed object is a valid {{domxref("WebGLTransformFeedback")}} object.
- {{domxref("WebGL2RenderingContext.bindTransformFeedback()")}}
- Binds a passed {{domxref("WebGLTransformFeedback")}} object to the current GL state.
- {{domxref("WebGL2RenderingContext.beginTransformFeedback()")}}
- Starts a transform feedback operation.
- {{domxref("WebGL2RenderingContext.endTransformFeedback()")}}
- Ends a transform feedback operation.
- {{domxref("WebGL2RenderingContext.transformFeedbackVaryings()")}}
- Specifies values to record in {{domxref("WebGLTransformFeedback")}} buffers.
- {{domxref("WebGL2RenderingContext.getTransformFeedbackVarying()")}}
- Returns information about varying variables from {{domxref("WebGLTransformFeedback")}} buffers.
- {{domxref("WebGL2RenderingContext.pauseTransformFeedback()")}}
- Pauses a transform feedback operation.
- {{domxref("WebGL2RenderingContext.resumeTransformFeedback()")}}
- Resumes a transform feedback operation.
- {{domxref("WebGL2RenderingContext.bindBufferBase()")}}
- Binds a given {{domxref("WebGLBuffer")}} to a given binding point (
target
) at a given index
.
- {{domxref("WebGL2RenderingContext.bindBufferRange()")}}
- Binds a range of a given {{domxref("WebGLBuffer")}} to a given binding point (
target
) at a given index
.
- {{domxref("WebGL2RenderingContext.getUniformIndices()")}}
-
Retrieves the indices of a number of uniforms within a {{domxref("WebGLProgram")}}.
- {{domxref("WebGL2RenderingContext.getActiveUniforms()")}}
- Retrieves information about active uniforms within a {{domxref("WebGLProgram")}}.
- {{domxref("WebGL2RenderingContext.getUniformBlockIndex()")}}
- Retrieves the index of a uniform block within a {{domxref("WebGLProgram")}}.
- {{domxref("WebGL2RenderingContext.getActiveUniformBlockParameter()")}}
- Retrieves information about an active uniform block within a {{domxref("WebGLProgram")}}.
- {{domxref("WebGL2RenderingContext.getActiveUniformBlockName()")}}
- Retrieves the name of the active uniform block at a given index within a {{domxref("WebGLProgram")}}.
- {{domxref("WebGL2RenderingContext.uniformBlockBinding()")}}
- Assigns binding points for active uniform blocks.
顶点数组对象
Methods for working with {{domxref("WebGLVertexArrayObject")}} (VAO) objects.
- {{domxref("WebGL2RenderingContext.createVertexArray()")}}
- 创建一个新的 {{domxref("WebGLVertexArrayObject")}}。
- {{domxref("WebGL2RenderingContext.deleteVertexArray()")}}
- 删除一个指定的 {{domxref("WebGLVertexArrayObject")}}。
- {{domxref("WebGL2RenderingContext.isVertexArray()")}}
- 如果一个指定的 {{domxref("WebGLVertexArrayObject")}} 对象有效则返回
true
。
- {{domxref("WebGL2RenderingContext.bindVertexArray()")}}
- 绑定一个指定的 {{domxref("WebGLVertexArrayObject")}} 到缓冲。
规范
Specification |
Status |
Comment |
{{SpecName('WebGL2', "#3.7", "WebGL2RenderingContext")}} |
{{Spec2('WebGL2')}} |
Initial definition. |
浏览器兼容性
{{Compat("api.WebGL2RenderingContext")}}
相关链接
- {{domxref("HTMLCanvasElement")}}
- {{domxref("WebGLRenderingContext")}}