glDrawArrays 関数

glDrawArrays 関数は、レンダリングする複数のプリミティブを指定します。

構文

void WINAPI glDrawArrays(
   GLenum  mode,
   GLint   first,
   GLsizei count
);

パラメーター

mode

レンダリングするプリミティブの種類。 次の定数は、使用可能なプリミティブの種類を指定します。GL_POINTS、GL_LINE_STRIP、GL_LINE_LOOP、GL_LINES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN、GL_TRIANGLES、GL_QUAD_STRIP、GL_QUADS、GL_POLYGON。

first

有効な配列の開始インデックス。

count

レンダリングするインデックスの数。

戻り値

この関数は値を返しません。

エラー コード

glGetError 関数では、次のエラー コードを取得できます。

名前 意味
GL_INVALID_VALUE
count が負の値でした。
GL_INVALID_ENUM
mode が受け入れられた値ではありません。
GL_INVALID_OPERATION
この関数は、 glBegin の呼び出しと glEnd の対応する呼び出しの間で呼び出されました。

解説

glDrawArrays を使用すると、レンダリングする複数のジオメトリック プリミティブを指定できます。 個別の OpenGL 関数を呼び出して個々の頂点、法線、または色を渡す代わりに、頂点、法線、および色の個別の配列を指定して、 glDrawArrays を 1 回呼び出してプリミティブのシーケンス (すべて同じ種類) を定義できます。

glDrawArrays を呼び出すと、有効になっている各配列の count シーケンシャル要素を使用して、最初の要素から始まる幾何学的プリミティブのシーケンスが構築されます。 mode パラメーターは、構築するプリミティブの種類と、配列要素を使用してプリミティブを構築する方法を指定します。

glDrawArrays が返されると、glDrawArrays によって変更される頂点属性の値は未定義になります。 たとえば、GL_COLOR_ARRAYが有効になっている場合、 glDrawArrays が返された後、現在の色の値は未定義になります。 glDrawArrays によって変更されない属性は、定義されたままです。 GL_VERTEX_ARRAYが有効になっていない場合、ジオメトリック プリミティブは生成されませんが、有効な配列に対応する属性は変更されます。

表示リストに glDrawArrays を 含めることができます。 glDrawArrays を表示リストに含めると、配列ポインターと 有効によって決定される必要な配列データが生成され、表示リストに入力されます。 配列ポインターと 有効の値は、表示リストの作成時に決定されます。

静的配列データはいつでも読み取ることができます。 静的配列要素が変更され、配列が再び指定されていない場合、 glDrawArrays への後続の呼び出しの結果は未定義になります。

glBeginglend のペア内で配列を複数回指定してもエラーは生成されませんが、結果は未定義です。

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

関連項目

glArrayElement

glBegin

glColorPointer

glEdgeFlagPointer

glEnd

glGetPointerv

glGetString

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer