GLCALLLISTS

Section: Misc. Reference Manual Pages (3G)
索引 xjman
 

名前

glCallLists - ディスプレイリスト群を実行する

 

書式

void glCallLists( GLsizei n,

                    GLenum type,
                    const GLvoid *lists )

 

引き数

n
実行するディスプレイリストの数を指定する。
type
lists に含まれる値の型を指定する。 指定できる型は GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, GL_4_BYTES である。
lists
ディスプレイリスト内における名前のオフセットの配列のアドレスを指定する。 type の値によって オフセットの型は byte, short, int, float になるため、 ポインタの型は void である。
 

説明

glCallLists は、lists として渡された 名前のリストに含まれるそれぞれのディスプレイリストを実行する。 その結果、コマンド群は実行された順に各ディスプレイリストに保存され、 ディスプレイリストを使わずにコマンド群を呼んだ場合と同じように 動作する。 定義されていないディスプレイリストの名前は無視される。 glCallLists を使うと、複数のディスプレイリストを効率的に実行 できる。 type を使うと、フォーマットが様々な名前を含むリストを 指定できる。
GL_BYTE
lists は符号付き byte の配列として扱われる。 それぞれの値は -128 から 127 までの範囲を取る。
GL_UNSIGNED_BYTE
lists は符号なし byte の配列として扱われる。 それぞれの値は 0 から 255 までの範囲を取る。
GL_SHORT
lists は符号付き 2 バイト整数の配列として扱われる。 それぞれの値は -32768 から 32767 までの範囲を取る。
GL_UNSIGNED_SHORT
lists は符号なし 2 バイト整数の配列として扱われる。 それぞれの値は 0 から 65535 までの範囲を取る。
GL_INT
lists は符号付き 4 バイト整数の配列として扱われる。
GL_UNSIGNED_INT
lists は符号なし 4 バイト整数の配列として扱われる。
GL_FLOAT
lists は 4 バイト浮動小数点数値の配列として扱われる。
GL_2_BYTES
lists は符号なし byte の配列として扱われる。 byte 値はふたつで 1 組となり、それぞれの組がひとつの ディスプレイリストの名前を表す。 この組の値は、最初の byte 値(符号なし)に 256 を掛け、これに 2 番目の byte 値(符号なし)を加えて計算される。
GL_3_BYTES
lists は符号なし byte の配列として扱われる。 byte 値は 3 つで 1 組となり、それぞれの組がひとつの ディスプレイリストの名前を表す。 この組の値は、最初の byte 値(符号なし)に 65536 を掛けたものと、 2 番目の byte 値(符号なし)に 256 を掛けたものと 3 番目の byte 値(符号なし)を加えて計算される。
GL_4_BYTES
lists は符号なし byte 値の配列として扱われる。 byte 値は 4 つで 1 組となり、それぞれの組がひとつの ディスプレイリストの名前を表す。 この組の値は、最初の byte 値(符号なし)に 16777216 を掛けたものと、 2 番目の byte 値(符号なし)に 65536 を掛けたものと 3 番目の byte 値(符号なし)に 256 を掛けたものと 4 番目の byte 値(符号なし)を加えて計算される。 ディスプレイリストの名前の列は null で終端するのではなく、 lists から取り出す名前の数を n で指定する。 glListBase コマンドにより、追加の間接レベルを利用可能にできる。 このコマンドは符号なしのオフセットを指定するもので、指定された オフセットは、lists 内で指定されたディスプレイリストの それぞれの名前に加えられる。加算が行われるのはディスプレイリストの 実行の前である。 glCallLists は、ディスプレイリストの中に現れてもよい。 ふたつのディスプレイリストがお互いを呼び出すと再帰呼び出しが無限に 起こる可能性があるが、これを避けるために ディスプレイリストの実行時にはディスプレイリストの入れ子の深さに 制限がかかる。 この制限の最低値は 64 であるが、実際の値は実装に依存する。 GL の状態は、glCallLists の呼び出しをまたいで保存・復元されない。 したがって、ディスプレイリストの実行中に GL の状態が変更された場合、 この変更はディスプレイリストが終了した後も残る。 glCallLists の呼び出しをまたいで GL の状態を保つためには、 glPushAttrib, glPopAttrib, glPushMatrix, glPopMatrix を使うこと。
 

注意

ディスプレイリストは、 glBegin と、その対になる glEnd の間でも実行できる。 ただし、この場合にディスプレイリストに含めてよいのは、両者の間で実行 できるコマンドだけである。  

エラー

n が負の値の場合には GL_INVALID_VALUE エラーとなる。 type の値が次のいずれでもない場合には GL_INVALID_ENUM エラーとなる: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, GL_4_BYTES  

関連する取得値

引き数 GL_LIST_BASE を指定した glGet
引き数 GL_MAX_LIST_NESTING を指定した glGet
glIsList  

関連項目

glCallList(3G), glDeleteLists(3G), glGenLists(3G), glListBase(3G), glNewList(3G), glPushAttrib(3G),
glPushMatrix(3G)


 

Index

名前
書式
引き数
説明
注意
エラー
関連する取得値
関連項目

jman



Time: 07:01:05 GMT, January 12, 2009