glNewList,glEndList 用於創建和替換一個顯示列表函式原型。
函式原型
void glNewList(GLuint list,GLenum mode);
void glEndList(void);
參數
list 指定顯示列表的名稱。
mode 指定的編譯模式,可GL_COMPILE或GL_COMPILE_AND_EXECUTE。
描述
顯示列表的GL命令組已為後續執行存儲。顯示列表創建的glNewList。放在顯示列表中的所有後續命令,在發出的命令,直到glEndList被調用。
glNewList有兩個參數。第一個參數列表,是一個正整數,成為唯一的名稱顯示列表。名稱可以創建和保留與glGenLists和獨特性與glIsList測試。第二個參數,模式,是一個符號常量,可以假設兩個值之一:
GL_COMPILE 列表中命令只是是編譯。
GL_COMPILE_AND_EXECUTE 編譯成執行命令顯示列表。
這些命令不是編譯進顯示列表,而是立即執行,不論顯示列表模式。這些命令可以是glIsList,glGenLists,glDeleteList,glFeedbackBuffer,glSelectBuffer,glRenderMode,glReadPixels,glPixelStore,glFlush,glfinish,glIsEnabled,和所有的glGet*例程。
當glEndList遇到關聯的唯一名稱列表(在glNewList命令中指定)列表,顯示列表定義完成。如果已經存在一個名稱列表中的顯示列表,它會被替換。
附註
glCallList和glCallLists可以輸入到顯示列表。在顯示列表中的命令或執行列表glCallList或glCallLists不包括在被創建的顯示列表,列表的創建模式,即使是GL_COMPILE_AND_EXECUTE。
錯誤
GL_INVALID_VALUE 列表為空。
GL_INVALID_ENUM 如果mode值無效。
GL_INVALID_OPERATION 如果glEndList之前沒有調用glNewList,或者,glNewList在定義顯示列表時被調用。
GL_INVALID_OPERATION 如果glNewList是在glBegin和glEnd之間被調用。