files/en-us/web/api/webglrenderingcontext/bindbuffer/index.md
{{APIRef("WebGL")}}{{AvailableInWorkers}}
The WebGLRenderingContext.bindBuffer() method of the WebGL API binds a given
{{domxref("WebGLBuffer")}} to a target.
bindBuffer(target, buffer)
target
: A {{domxref("WebGL_API/Types", "GLenum")}} specifying the binding point (target). Possible values:
gl.ARRAY_BUFFER
gl.ELEMENT_ARRAY_BUFFER
When using a {{domxref("WebGL2RenderingContext", "WebGL 2 context", "", 1)}}, the following values are available additionally:
gl.COPY_READ_BUFFER
gl.COPY_WRITE_BUFFER
gl.TRANSFORM_FEEDBACK_BUFFER
gl.UNIFORM_BUFFER
gl.PIXEL_PACK_BUFFER
gl.PIXEL_UNPACK_BUFFER
buffer
None ({{jsxref("undefined")}}).
Only one target can be bound to a given {{domxref("WebGLBuffer")}}. An attempt to bind
the buffer to another target will throw an INVALID_OPERATION error and the
current buffer binding will remain the same.
A {{domxref("WebGLBuffer")}} which has been marked for deletion with
{{domxref("WebGLRenderingContext.deleteBuffer()", "deleteBuffer")}} cannot be
(re-)bound. An attempt to do so will generate an INVALID_OPERATION error,
and the current binding will remain untouched.
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
To check the current buffer bindings, query the ARRAY_BUFFER_BINDING
and ELEMENT_ARRAY_BUFFER_BINDING constants.
gl.getParameter(gl.ARRAY_BUFFER_BINDING);
gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING);
{{Specifications}}
{{Compat}}