--- title: WebGLRenderingContext.bufferData() slug: Web/API/WebGLRenderingContext/bufferData translation_of: Web/API/WebGLRenderingContext/bufferData ---
{{APIRef("WebGL")}}

WebGL API WebGLRenderingContext.bufferData() メソッドは、バッファーオブジェクトのデータストアを初期化、作成します。

構文

// WebGL1:
void gl.bufferData(target, size, usage);
void gl.bufferData(target, ArrayBuffer? srcData, usage);
void gl.bufferData(target, ArrayBufferView srcData, usage);

// WebGL2:
void gl.bufferData(target, ArrayBufferView srcData, usage, srcOffset, length);

引数

target
結合する場所 (ターゲット) を指定する {{domxref("GLenum")}}。以下の値を取ることができます。
size
{{domxref("GLsizeiptr")}} のバッファーオブジェクトのデータストアのサイズ。
srcData {{optional_inline}}
{{jsxref("ArrayBuffer")}}, {{jsxref("SharedArrayBuffer")}} か {{domxref("ArrayBufferView")}} の型付き配列型の一つで、データストアへ格納されます。null の場合、データストアは作成されますが、内容は初期化されず未定義です。
usage
データストアの用途を指定する {{domxref("GLenum")}}。以下の値を取ることができます。
srcOffset
バッファー読み出しを開始する要素の位置のオフセットを指定する {{domxref("GLuint")}}。
length {{optional_inline}}
{{domxref("GLuint")}}。既定値は 0 です。

返り値

ありません。

例外

bufferData の使用

var canvas = document.getElementById('canvas');
var gl = canvas.getContext('webgl');
var buffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);

バッファー情報の取得

現在のバッファーの用途やサイズを確認するには、{{domxref("WebGLRenderingContext.getBufferParameter()")}} メソッドを使用します。

gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE);
gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE);

仕様策定状況

仕様 策定状況 コメント
{{SpecName('WebGL', "#5.14.5", "bufferData")}} {{Spec2('WebGL')}} 初回定義。
{{SpecName('OpenGL ES 2.0', "glBufferData.xml", "glBufferData")}} {{Spec2('OpenGL ES 2.0')}} OpenGL API のマニュアルページ。
{{SpecName('OpenGL ES 3.0', "glBufferData.xhtml", "glBufferData")}} {{Spec2('OpenGL ES 3.0')}} OpenGL ES 3 API (と同様の) マニュアルページ。

以下の新しい target バッファーを追加。
gl.COPY_READ_BUFFER,
gl.COPY_WRITE_BUFFER,
gl.TRANSFORM_FEEDBACK_BUFFER,
gl.UNIFORM_BUFFER,
gl.PIXEL_PACK_BUFFER,
gl.PIXEL_UNPACK_BUFFER

以下の新しい usage ヒントを追加。
gl.STATIC_READ,
gl.DYNAMIC_READ,
gl.STREAM_READ,
gl.STATIC_COPY,
gl.DYNAMIC_COPY,
gl.STREAM_COPY.

ブラウザーの対応

{{Compat("api.WebGLRenderingContext.bufferData")}}

関連項目