WebGLRenderingContext.bindBuffer()

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

语法

void gl.bindBuffer(target, buffer);

参数

target

GLenum (en-US) 指定绑定点 (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

参见