WebGLRenderingContext.drawElements()

WebGLRenderingContext.drawElements()WebGL API のメソッドで、配列データのプリミティブを描画します。

構文

js
drawElements(mode, count, type, offset);

引数

mode

GLenum で、描画するプリミティブの型を指定します。取りうる値は次の通りです。

  • gl.POINTS: 単一の点を描きます。
  • gl.LINE_STRIP: 直線を次の頂点に向けて描きます。
  • gl.LINE_LOOP: 直線を次の頂点に向けて描き、最後の頂点を最初の頂点に接続します。
  • gl.LINES: 2 つの頂点の間に線を描きます。
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES: 3 つの頂点のグループで三角形を描きます。
count

GLsizei で、レンダリングする要素配列バッファーの要素数を指定します。例えば、 gl.LINES を使ってワイヤーフレームの三角形を描く場合、線 1 本あたり 2 つの端点× 3 本 = 6 要素になります。しかし、同じワイヤーフレームの三角形を gl.LINE_STRIP で描画する場合、要素配列バッファーは 1 本目の終点/ 2 本目の始点、 2 本目の終点/ 3 本目の始点のインデックスを繰り返さないので、 count は 4 個となります。同じ三角形を gl.LINE_LOOP で描画する場合、要素配列バッファーは最初と最後の頂点を繰り返さないので、 count は 3 となります。

type

GLenum で、要素の配列バッファーの値の型を指定します。取りうる値は次の通りです。

offset

GLintptr で、要素の配列バッファー内における倍とオフセットを指定します。指定された type の大きさの正しい倍数でなければなりません。

返値

なし (undefined)。

例外

  • mode が受け付けられる値のいずれでもなかった場合、 gl.INVALID_ENUM エラーが発生します。
  • offset が指定された型の正しい倍数でなければ、 gl.INVALID_OPERATION エラーが発生します。
  • count が負の数であった場合は、 gl.INVALID_VALUE エラーが発生します。

js
gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);

仕様書

Specification
WebGL Specification
# 5.14.11

ブラウザーの互換性

BCD tables only load in the browser

関連情報