WebGLRenderingContext: bindBuffer() メソッド

WebGLRenderingContext.bindBuffer()WebGL API のメソッドで、指定された WebGLBuffer をターゲットに結合します。

構文

js
bindBuffer(target, buffer)

引数

target

結合する場所 (ターゲット) の GLenum です。以下の値を指定することができます。

gl.ARRAY_BUFFER

頂点の属性を含むバッファーで、頂点座標、テクスチャ座標データや、頂点色データのようなものです。

gl.ELEMENT_ARRAY_BUFFER

要素の位置指定に使われるバッファーです。

WebGL 2 のコンテキスト (en-US)を使用している場合は、更に以下の値を利用することができます。

gl.COPY_READ_BUFFER

バッファーオブジェクトを他へコピーするためのバッファーです。

gl.COPY_WRITE_BUFFER

バッファーオブジェクトを他へコピーするためのバッファーです。

gl.TRANSFORM_FEEDBACK_BUFFER

書き戻し操作を変換するバッファーです。

gl.UNIFORM_BUFFER

ユニフォームブロックの格納に使われるバッファーです。

gl.PIXEL_PACK_BUFFER

ピクセル移動操作に使われるバッファーです。

gl.PIXEL_UNPACK_BUFFER

ピクセル移動操作に使われるバッファーです。

buffer

結合する WebGLBuffer です。

返値

なし (undefined)。

例外

一つのターゲットにのみ WebGLBuffer を結合できます。バッファーを他のターゲットに結合しようとすると、INVALID_OPERATION エラーが発生して現在のバッファー結合をそのままにします。

WebGLBufferdeleteBuffer (en-US) によって削除されるようにマークされると、(再び)結合できなくなります。そうしようとしても INVALID_OPERATION エラーが生成されて、現在の結合は変更されません。

バッファーをターゲットに結合

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();

gl.bindBuffer(gl.ARRAY_BUFFER, buffer);

現在結合されているものの取得

現在のバッファー結合を確認するには、ARRAY_BUFFER_BINDINGELEMENT_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

関連情報