--- title: WebGLRenderingContext.bindBuffer() slug: Web/API/WebGLRenderingContext/bindBuffer tags: - WebGL - WebGLRenderingContext - 绑定Buffer translation_of: Web/API/WebGLRenderingContext/bindBuffer ---
{{APIRef("WebGL")}}

WebGL API的WebGLRenderingContext.bindBuffer()方法将给定的{{domxref("WebGLBuffer")}}绑定到目标。

语法

void gl.bindBuffer(target, buffer);

参数

target
 {{domxref("GLenum")}} 指定绑定点(target)。 可能的值:
buffer
要绑定的 {{domxref("WebGLBuffer")}} 。

返回值

None.

异常

只有一个目标可以绑定到给定的 {{domxref("WebGLBuffer")}} 。 尝试将缓冲区绑定到另一个目标将引发 INVALID_OPERATION 错误,并且当前的缓冲区绑定将保持不变。

一个被{{domxref("WebGLRenderingContext.deleteBuffer()", "deleteBuffer")}}标记为删除的{{domxref("WebGLBuffer")}}不可重新被绑定,尝试这样做将生成 INVALID_OPERATION 错误,并且当前绑定将保持不变。

示例

将缓冲区绑定到目标

var canvas = document.getElementById('canvas');
var gl = canvas.getContext('webgl');
var buffer = gl.createBuffer();

gl.bindBuffer(gl.ARRAY_BUFFER, buffer);

获取当前绑定

要检查当前的缓冲区绑定,请查询ARRAY_BUFFER_BINDING和ELEMENT_ARRAY_BUFFER_BINDING常量。

gl.getParameter(gl.ARRAY_BUFFER_BINDING);
gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING);

规范

Specification Status Comment
{{SpecName('WebGL', "#5.14.5", "bindBuffer")}} {{Spec2('WebGL')}} Initial definition for WebGL.
{{SpecName('OpenGL ES 2.0', "glBindBuffer.xml", "glBindBuffer")}} {{Spec2('OpenGL ES 2.0')}} Man page of the (similar) OpenGL ES 2 API.
{{SpecName('WebGL2', "#3.7.1", "bindBuffer")}} {{Spec2('WebGL2')}}

Updated definition for WebGL 2.

Adds new target buffers:
gl.COPY_READ_BUFFER,
gl.COPY_WRITE_BUFFER,
gl.TRANSFORM_FEEDBACK_BUFFER,
gl.UNIFORM_BUFFER,
gl.PIXEL_PACK_BUFFER,
gl.PIXEL_UNPACK_BUFFER

{{SpecName('OpenGL ES 3.0', "glBindBuffer.xhtml", "glBindBuffer")}} {{Spec2('OpenGL ES 3.0')}} Man page of the (similar) OpenGL ES 3 API.

浏览器兼容性

{{Compat("api/WebGLRenderingContext", "WebGLRenderingContext.bindBuffer")}}

另见