glNewList - створення або заміна списку відображення

C специфікація

void glNewList (GLuint list,
                GLenum mode) ;

void glEndList (void) ;

Параметри

list - вказує ім'я списку відображення. mode - вказує режим компіляції, який може містити GL_COMPILE або GL_COMPILE_AND_EXECUTE.

Опис

Списки відображення являється групами команд OpenGL, які були збереженими для подальшого виконання. Списки відображення створюються за допомогою команди glNewList. Усі наступні команди поміщаються у список відобареження у вказаному порядку, поки не викликається команда glEndList. Команда glNewList має два аргументи. Перший аргумент, list, являється позитивним цілим числом, яке стає унікальним ім'ям для списку відображення. Імена можуть створюватися і резервуватися за допомогою команди glGenLists і тестуватися на унікальність за допомогою команди glIsList. Другий аргумент, mode, являється символічною константою яка може приймати одне з двох значень:
  • GL_COMPILE - команди компілюються у список
  • GL_COMPILE_AND_EXECUTE - команди виконуються поки компілюються у список відображення.
Певні команди не компілюються у список відображення, але одразу виконуються, не зважаючи на режим списку відображення. Даними командами являються: glAreTexturesResident, glColorPointer, glDeleteLists, glDeleteTextures, glDisableClientState, glEdgeFlagPointer, glEnableClientState, glFeedbackBuffer, glFinish, glFlush, glGenLists, glGenTextures, glIndexPointer, glInterleavedArrays, glIsEnabled, glIsList, glIsTexture, glNormalPointer, glPopClientAttrib, glPixelStore, glPushClientAttrib, glReadPixels, glRenderMode, glSelectBuffer, glTexCoordPointer, glVertexPointer і glGet. Подібно, glTeximage1D, glTexImage2D i glTexImage3D виконуються одразу і не компілюються у список відображення, коли їхній аргумент являється GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_1D або GL_PROXY_TEXTURE_3D відповідно. Якщо підтримується розширення ARB_imaging, glHistogram виконується одразу коли її аргумент являється GL_PROXY_HISTOGRAM. Подібно, glColorTable виконується одразу коли її перший аргумент являється GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE або GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE. Для версії OpenGL 1.3 або вище, або коли підтримується розширення ARB_multitexture, glClientActiveTexture не компілюється у список відображення, замість цього одразу виконується. Коли викликається команда glEndList, визначення списків відображення завершується асоціюванням списку з унікальним ім'ям list (вказаним для команди glNewList). Якщо список відображення з ім'ям list вже існує, вона перезаписується тільки коли викликається glEndList.

Нотатки

glCallList і glCallLists можуть бути включеними у списки відображення. Команди у списку відображення або списках виконуються за допомогою команд glCallList або glCallLists не включається у створюваний список відображення, навіть якщо режим створення списку являється GL_COMPILE_AND_EXECUTE. Список відображення являється групою команд і аргументів, отож помилки, що генеруються при виконанні команд у списку відображення повинні генеруватися коли список відображення виконується. Якщо список відображення створюється у режимі GL_COMPILE, помилки не генеруються поки список виконується.

Помилки

GL_INVALID_VALUE генерується коли параметр list містить значення 0. GL_INVALID_ENUM генерується якщо параметр mode містить недопустиме значення. GL_INVALID_OPERATION генерується якщо glEndList викликається без попереднього виклику glNewList, або glNewList викликається поки список відображення визначається. GL_INVALID_OPERATION генерується коли glNewList або glEndList виконуються між командами glBegin і відповідної glEnd. GL_OUT_OF_MEMORY генерується якщо недостатньо пам'яті для компіляції списку відобраежння. Якщо OpenGL версії 1.1 або вище, жодні зміни не виконуються до попереднього вмісту списку відображення, якщо такий присутній, і жодні зміни не виконуються до стану OpenGL. (Ніби не було спроби створити новий список відображення).

Пов'язані параметри

glIsList glGet з аргументом GL_LIST_INDEX glGet з аргументом GL_LIST_MODE

Перегляньте також

glCallList, glCallLists, glDeleteLists, glGenLists Оригінал: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glNewList.xml