次の方法で共有


glDrawElements 関数

glDrawElements 関数は、配列データからプリミティブをレンダリングします。

構文

void WINAPI glDrawElements(
         GLenum  mode,
         GLsizei count,
         GLenum  type,
   const GLvoid  *indices
);

パラメーター

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のいずれかと見なすことができます。

count

レンダリングする要素の数。

type

インデックス内の値の型。 GL_UNSIGNED_BYTE、GL_UNSIGNED_SHORT、またはGL_UNSIGNED_INTのいずれかである必要があります。

インデックス

インデックスが格納されている場所へのポインター。

戻り値

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

エラー コード

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

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

解説

glDrawElements 関数を使用すると、関数呼び出しが非常に少ない複数のジオメトリック プリミティブを指定できます。 OpenGL 関数を呼び出して個々の頂点、法線、または色を渡す代わりに、頂点、法線、色の個別の配列を事前に指定し、それらを使用して glDrawElements を 1 回呼び出してプリミティブのシーケンス (すべて同じ種類) を定義できます。

glDrawElements 関数を呼び出すと、インデックスcount シーケンシャル要素を使用して、幾何学的プリミティブのシーケンスが構築されます。 mode パラメーターは、構築されるプリミティブの種類と、配列要素を使用してこれらのプリミティブを構築する方法を指定します。 GL_VERTEX_ARRAYが有効になっていない場合、ジオメトリック プリミティブは生成されません。

glDrawElements によって変更された頂点属性は、glDrawElements が返された後に未指定の値を持っています。 たとえば、GL_COLOR_ARRAYが有効になっている場合、 glDrawElements の実行後、現在の色の値は未定義になります。 変更されていない属性は変更されません。

glDrawElements 関数は、表示リストに含めることができます。 glDrawElements を表示リストに含めると、必要な配列データ (配列ポインターによって決定され、有効になります) も表示リストに入力されます。 配列ポインターと有効化はクライアント側の状態変数であるため、リストの実行時ではなく、リストの作成時に値が表示リストに影響します。

Note

glDrawElements 関数は、OpenGL バージョン 1.1 以降でのみ使用できます。

要件

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

関連項目

glArrayElement

glBegin

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnd

glGetPointerv

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer