WebGLRenderingContext.bindBuffer()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

WebGL APIWebGLRenderingContext.bindBuffer() 方法将给定的 WebGLBuffer 绑定到目标。

语法

void gl.bindBuffer(target, buffer);

参数

target

GLenum 指定绑定点 (target)。可能的值:

  • gl.ARRAY_BUFFER: 包含顶点属性的 Buffer,如顶点坐标,纹理坐标数据或顶点颜色数据。

  • gl.ELEMENT_ARRAY_BUFFER: 用于元素索引的 Buffer。

  • 当使用 WebGL 2 context时,可以使用以下值:

    • gl.COPY_READ_BUFFER: 从一个 Buffer 对象复制到另一个 Buffer 对象。
    • gl.COPY_WRITE_BUFFER: 从一个 Buffer 对象复制到另一个 Buffer 对象。
    • gl.TRANSFORM_FEEDBACK_BUFFER: Buffer for transform feedback operations.
    • gl.UNIFORM_BUFFER: 用于存储统一块的 Buffer。
    • gl.PIXEL_PACK_BUFFER: 用于像素传输操作的 Buffer。
    • gl.PIXEL_UNPACK_BUFFER: 用于像素传输操作的 Buffer。
buffer

要绑定的 WebGLBuffer

返回值

无。

异常

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

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

示例

将缓冲区绑定到目标

js
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 常量。

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

规范

Specification
WebGL Specification
# 5.14.5
WebGL 2.0 Specification
# 3.7.1

浏览器兼容性

BCD tables only load in the browser

参见