glCallLists 函式

glCallLists函式會執行顯示清單的清單。

語法

void WINAPI glCallLists(
         GLsizei n,
         GLenum  type,
   const GLvoid  *lists
);

參數

n

要執行的顯示清單數目。

type

清單中的數值型別。 接受下列符號常數。

意義
GL_BYTE
lists參數會被視為帶正負號位元組的陣列,每個位元組範圍都是 -128 到 127。
GL_UNSIGNED_BYTE
list參數會被視為不帶正負號位元組的陣列,每個位元組範圍都是 0 到 255。
GL_SHORT
lists參數會被視為帶正負號 2 位元組整數的陣列,每個整數範圍都是 -32768 到 32767。
GL_UNSIGNED_SHORT
list參數會被視為不帶正負號 2 位元組整數的陣列,每個整數範圍都是 0 到 65535。
GL_INT
list參數會被視為帶正負號 4 位元組整數的陣列。
GL_UNSIGNED_INT
list參數會被視為不帶正負號 4 位元組整數的陣列。
GL_FLOAT
list參數會被視為 4 位元組的浮點值陣列。
GL_2_BYTES
list參數會被視為不帶正負號位元組的陣列。 每一組位元組都會指定單一顯示清單名稱。 配對的值會計算為第一個位元組的不帶正負號值加上第二個位元組的不帶正負號值 256 倍。
GL_3_BYTES
list參數會被視為不帶正負號位元組的陣列。 每個三倍位元組都會指定單一顯示清單名稱。 三重項的值會計算為第一個位元組的不帶正負號值 65536 倍,加上第二個位元組的不帶正負號值加上第三個位元組的不帶正負號值。
GL_4_BYTES
list參數會被視為不帶正負號位元組的陣列。 每個位元組的位元組都會指定單一顯示清單名稱。 第一個位元組的不帶正負號值計算為16777216,加上第二個位元組的不帶正負號值加上 65536 倍,加上第三個位元組的不帶正負號值,加上第四個位元組的不帶正負號值。

清單

顯示清單中的名稱位移陣列位址。 指標類型是 void,因為位移可以是位元組、shorts、ints 或 floats,視 類型的值而定。

傳回值

此函式不會傳回值。

備註

glCallLists函式會讓傳遞為清單的名稱清單中執行每個顯示清單。 因此,每個顯示清單中儲存的函式都會依序執行,就像呼叫函式而不使用顯示清單一樣。 忽略尚未定義的顯示清單名稱。

glCallLists 函式提供執行顯示清單的有效方法。 n參數會指定類型參數所指定之各種名稱格式的清單數目, () glCallLists 所指定。

顯示清單名稱的清單不是以 Null 結尾。 相反地, n 會指定要從 清單中取得多少名稱。

glListBase函式會提供額外的間接存取層級。 glListBase函式會指定一個未帶正負號的位移,該位移會新增至清單中指定的每個顯示清單名稱,然後再執行該顯示清單。

glCallLists 函式可以出現在顯示清單中。 為了避免因為顯示清單呼叫彼此而產生無限遞迴的可能性,在顯示清單執行期間,會將限制放在顯示清單的巢狀層級上。 此限制必須至少為 64,且取決於實作。

OpenGL 狀態不會在 呼叫 glCallLists時儲存和還原。 因此,在執行顯示清單期間對 OpenGL 狀態所做的變更會保留在執行完成後。 使用 glPushAttribglPopAttribglPushMatrixglPopMatrix ,在 glCallLists 呼叫之間保留 OpenGL 狀態。

只要顯示清單只包含此間隔中允許的函式,您就可以在 對 glBegin 的呼叫和 glEnd的對應呼叫之間執行顯示清單。

下列函式會擷取 與 glCallLists 函式相關的資訊:

glGet with argument GL_LIST_BASE

glGet with argument GL_MAX_LIST_NESTING

glIsList

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Gl.h
程式庫
Opengl32.lib
DLL
Opengl32.dll

另請參閱

glBegin

glCallList

glDeleteLists

glEnd

glGenLists

glGet

glIsList

glListBase

glNewList

glPopAttrib

glPopMatrix

glPushAttrib

glPushMatrix