--- title: WebGLRenderingContext.bufferData() slug: Web/API/WebGLRenderingContext/bufferData translation_of: Web/API/WebGLRenderingContext/bufferData ---
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);
gl.ARRAY_BUFFER: 頂点の属性を含むバッファーで、頂点座標、テクスチャ座標データや、頂点色データのようなものです。gl.ELEMENT_ARRAY_BUFFER: 要素の位置指定に使用されるバッファーです。gl.COPY_READ_BUFFER: バッファーオブジェクトを他へコピーするためのバッファーです。gl.COPY_WRITE_BUFFER: バッファーオブジェクトを他へコピーするためのバッファーです。gl.TRANSFORM_FEEDBACK_BUFFER: 書き戻し操作を変換するバッファーです。gl.UNIFORM_BUFFER: ユニフォームブロックの格納に使われるバッファーです。gl.PIXEL_PACK_BUFFER: ピクセル移動操作に使われるバッファーです。gl.PIXEL_UNPACK_BUFFER: ピクセル移動操作に使われるバッファーです。null の場合、データストアは作成されますが、内容は初期化されず未定義です。gl.STATIC_DRAW: バッファーの内容は、何度か使用されてあまり変更されません。バッファーへ書き込まれますが、読み出せません。gl.DYNAMIC_DRAW: バッファーの内容は、よく使用されて何度か変更されます。バッファーへ書き込まれますが、読み出せません。gl.STREAM_DRAW: バッファーの内容は、よく使用され変更されます。バッファーへ書き込まれますが、読み出せません。gl.STATIC_READ: バッファーの内容は、何度か使用されてあまり変更されません。バッファーから読み出されますが、書き込めません。gl.DYNAMIC_READ: バッファーの内容は、よく使用されて何度か変更されます。バッファーから読み出されますが、書き込めません。gl.STREAM_READ: バッファーの内容は、よく使用され変更されます。バッファーから読み出されますが、書き込めません。gl.STATIC_COPY: バッファーの内容は、何度か使用されてあまり変更されません。ユーザーによる書き込みや読み出しはできません。gl.DYNAMIC_COPY: バッファーの内容は、よく使用されて何度か変更されます。ユーザーによる書き込みや読み出しはできません。gl.STREAM_COPY: バッファーの内容は、よく使用され変更されます。ユーザーによる書き込みや読み出しはできません。length {{optional_inline}}ありません。
size でデータストアを作成できない場合、gl.OUT_OF_MEMORY エラーをスローします。size が負数の場合、gl.INVALID_VALUE エラーをスローします。target や usage が許可された列挙のものでない場合、gl.INVALID_ENUM エラーをスローします。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")}}