GLDRAWRANGEELEMENTS
Section: Misc. Reference Manual Pages (3G)
索引
xjman
名前
glDrawRangeElements
- 配列データを使ってプリミティブをレンダリングする
書式
void glDrawRangeElements(
GLenum mode,
GLuint start,
GLuint end,
GLsizei count,
GLenum type,
const GLvoid *indices )
delim $$
引き数
- mode
-
レンダリングするプリミティブの種類を指定する。
次のシンボル定数を指定できる:
GL_POINTS,
GL_LINE_STRIP,
GL_LINE_LOOP,
GL_LINES,
GL_TRIANGLE_STRIP,
GL_TRIANGLE_FAN,
GL_TRIANGLES,
GL_QUAD_STRIP,
GL_QUADS,
- start
-
indices に含まれる配列のインデックスの最小値を指定する。
- end
-
indices に含まれる配列のインデックスの最大値を指定する。
- count
-
レンダリングする要素の数を指定する。
- type
-
count に入っている値の型を指定する。
GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT,
GL_UNSIGNED_INT.
のいずれかでなければならない。
- indices
-
インデックスが格納されている位置を指すポインタを指定する。
説明
glDrawRangeElements は、glDrawElements に制限を加えた
ものである。
mode, start, end, count は
glDrawElements の同名の引き数に対応する。
これに加えて、配列 count に含まれる全ての値は
start と end の間(両端を含む)になければならない
という制約が与えられる。
実装は頂点とインデックスデータの最大数について、推奨値を持っている。
この値は glGet に引き数
GL_MAX_ELEMENTS_VERTICES と GL_MAX_ELEMENTS_INDICES
を与えて呼ぶことによって問い合わせできる。
$"end" ~-~ "start" ~+~ 1$ が GL_MAX_ELEMENTS_VERTICES より大きい場合、
または count が GL_MAX_ELEMENTS_INDICES より大きい場合には、
この関数の処理性能は落ちることがある。
[start, end] の範囲にある全ての頂点を参照する必要はない。
しかし、実装は未使用の頂点を一部処理するかもしれず、その場合は
インデックス集合を最適にした場合よりも処理性能が落ちるかもしれない。
glDrawRangeElements が呼ばれると、この関数は
有効状態にある配列から連続要素である start を取り出し、
count の位置から幾何プリミティブの列を構築する。
mode は構築するプリミティブの種類および、これらのプリミティブを
構築する際の配列の要素の使いかたを指定する。
複数の配列が有効状態にあれば全部の配列が使われる。
GL_VERTEX_ARRAY が有効状態でなければ、幾何プリミティブは
まったく生成されない。
glDrawRangeElements によって値が変えられた頂点属性は、
glDrawRangeElements の復帰後の値は不定となる。
例えば、GL_COLOR_ARRAY が有効状態である場合、現在の色の値は
glDrawRangeElements の実行後に不定となる。
値が変えられない属性については、以前の値がそのまま保持される。
注意
glDrawRangeElements はバージョン 1.2 以降の GL でのみ利用できる。
glDrawRangeElements はディスプレイリストに含まれる。
glDrawRangeElements がディスプレイリストに入った場合、
この関数が必要とする配列データ(配列ポインタと有効状態によって決まる)も
ディスプレイリストに入れられる。
配列ポインタと有効状態はクライアント側の状態であるため、これらの
値はディスプレイリストの生成時にディスプレイリストに影響を与える。
ディスプレイリストの実行時ではない。
エラー
インデックスが [start, end] の範囲の外にある場合はエラーで
あるが、実装はこういった状況をチェックしないことがある。
このようなインデックスは、実装依存の振る舞いを起こす。
GL_INVALID_ENUM:
mode に不正な値を指定すると起こる。
GL_INVALID_VALUE:
count の値が負の場合に起こる。
GL_INVALID_VALUE:
end $<$ start の場合に起こる。
glBegin と、その対になる glEnd の間で
glDrawRangeElements が実行されると起こる。
関連する取得値
引き数 GL_MAX_ELEMENTS_VERTICES を指定した glGet
引き数 GL_MAX_ELEMENTS_INDICES を指定した glGet
関連項目
glArrayElement(3G),
glColorPointer(3G),
glDrawArrays(3G),
glDrawElements(3G),
glEdgeFlagPointer(3G),
glGetPointerv(3G),
glIndexPointer(3G),
glInterleavedArrays(3G),
glNormalPointer(3G),
glTexCoordPointer(3G),
glVertexPointer(3G)
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 注意
-
- エラー
-
- 関連する取得値
-
- 関連項目
-
Time: 07:01:06 GMT, January 12, 2009