Каждому дисплейному списку соответствует некоторое целое число, идентифицирующее этот список.

Узнать, занят ли данный номер каким-либо дисплейным списком, можно при помощи функции

GLboolean gllsList ( GLuint list );

Зарезервировать range свободных подряд идущих номеров для идентификации дисплейных списков можно при помощи функции

GLuint glGenLists ( GLsizei range ) ,-

Эта функция возвращает первый свободный номер из блока зарезервированных номеровданной командой.

Для того чтобы выделить последовательность команд в дисплейный список, служат процедуры glNewList и glEndList. Все команды, находящиеся между этими двумя, автоматически помещаются в соответствующий дисплейный список.

void glNewList ( GLuint list, GLenum mode );

Здесь list - уникальное положительное число, служащее идентификатором списка, а параметр mode принимает одно из двух значений -

Основы библиотеки OpenGL

GL_COMPILE или GL_COMPILE_AND_EXECUTE. Первое из этих значений обеспечивает только запоминание (компиляцию) дисплейного списка, в то время как второе - запоминание и выполнение этого списка.

Не все команды OpenGL могут быть записаны в Дисплейный список. Ниже приводится список команд, которые не могут быть помещены в дисплейный список.

glDeleteLists О gllsEnabled ()

glFeedbackBuffer О gllsList ()

glFinish () glPixelStore ()
glGeriLists () glRenderMode ()
glGet* () glSelectBuffer ()

Для того чтобы вызвать (выполнить) дисплейный список, служит процедура

void glCallList ( GLuint list );

Возможно построение иерархических дисплейных списков, когда внутри определения одного списка вызываются другие списки. Для уничтожения дисплейных списков служит процедура

void glDeleteLists ( GLuint list, GLsizei range ) ;

Замечание. Дисплейные списки нельзя изменять. Список можно уничтожить или создать заново. В дисплейном списке команды запоминаются вместе со своими аргументами на момент передачи, так что в следующем примере последний оператор присваивания дисплейный список не изменяет.

GLfloat color [] ={0.0, 0.0, 0.0 };

⇐ Предыдущая| |Следующая ⇒