--- 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")}}