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 API 的 WebGLRenderingContext.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