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.

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

構文

js
bindBuffer(target, buffer)

引数

target

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

gl.ARRAY_BUFFER

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

gl.ELEMENT_ARRAY_BUFFER

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

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

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 によって削除されるようにマークされると、(再び)結合できなくなります。そうしようとしても 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

関連情報