--- title: WebGLRenderingContext.bindBuffer() slug: Web/API/WebGLRenderingContext/bindBuffer tags: - WebGL - WebGLRenderingContext - 绑定Buffer translation_of: Web/API/WebGLRenderingContext/bindBuffer ---
WebGL API的WebGLRenderingContext.bindBuffer()方法将给定的{{domxref("WebGLBuffer")}}绑定到目标。
void gl.bindBuffer(target, buffer);
gl.ARRAY_BUFFER
: 包含顶点属性的Buffer,如顶点坐标,纹理坐标数据或顶点颜色数据。gl.ELEMENT_ARRAY_BUFFER
: 用于元素索引的Buffer。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。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 |
{{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")}}