Поделиться через


Функция glCallLists

Функция glCallLists выполняет список отображаемых списков.

Синтаксис

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

Параметры

n

Количество отображаемых списков для выполнения.

type

Тип значений в списках. Принимаются следующие символьные константы.

Значение Значение
GL_BYTE
Параметр lists обрабатывается как массив байтов со знаком, каждый из которых находится в диапазоне от -128 до 127.
GL_UNSIGNED_BYTE
Параметр lists обрабатывается как массив байтов без знака, каждый из которых находится в диапазоне от 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 обрабатывается как массив неподписанных байтов. Каждая пара байтов задает одно отображаемое имя списка. Значение пары вычисляется как 256 раз больше неподписаемого значения первого байта плюс неподписаемое значение второго байта.
GL_3_BYTES
Параметр lists обрабатывается как массив неподписанных байтов. Каждая триплета байтов задает одно отображаемое имя списка. Значение триплета вычисляется как 65536 раз неподписаемое значение первого байта, плюс 256 раз неподписаемое значение второго байта плюс неподписаемое значение третьего байта.
GL_4_BYTES
Параметр lists обрабатывается как массив неподписанных байтов. Каждое четырехкратное число байтов задает одно отображаемое имя списка. Значение четырехбайтового значения вычисляется как 16777216 раз неподписаемое значение первого байта, плюс 65536 раз неподписаемое значение второго байта плюс 256 раз неподписаемое значение третьего байта плюс неподписаемое значение четвертого байта.

Списках

Адрес массива смещения имен в отображаемом списке. Тип указателя — void, так как смещения могут быть байтами, короткими, ints или floats в зависимости от значения типа.

Возвращаемое значение

Эта функция не возвращает значение.

Комментарии

Функция glCallLists приводит к выполнению каждого отображаемого списка в списке имен, передаваемых как списки . В результате функции, сохраненные в каждом отображаемом списке, выполняются по порядку, как если бы они были вызваны без использования отображаемого списка. Имена отображаемых списков, которые не были определены, игнорируются.

Функция glCallLists предоставляет эффективные средства для выполнения отображаемых списков. Параметр n указывает количество списков с различными форматами имен (заданными параметром type ) выполняется glCallLists .

Список отображаемых имен списков не завершается null. Вместо этого n указывает, сколько имен должно быть взято из списков.

Функция glListBase обеспечивает дополнительный уровень косвенного обращения. Функция glListBase задает смещение без знака, которое добавляется к каждому имени отображаемого списка, указанному в списках перед выполнением этого отображаемого списка.

Функция glCallLists может отображаться в отображаемом списке. Чтобы избежать возможности бесконечной рекурсии в результате вызова друг друга списков отображения, во время выполнения отображаемых списков устанавливается ограничение на уровень вложенности отображаемых списков. Это ограничение должно быть не менее 64 и зависит от реализации.

Состояние OpenGL не сохраняется и не восстанавливается при вызове glCallLists. Таким образом, изменения, внесенные в состояние OpenGL во время выполнения отображаемых списков, остаются после завершения выполнения. Используйте glPushAttrib, glPopAttrib, glPushMatrix и glPopMatrix для сохранения состояния OpenGL в вызовах glCallLists .

Списки отображения можно выполнять между вызовом glBegin и соответствующим вызовом glEnd, если список отображения содержит только функции, разрешенные в этом интервале.

Следующие функции извлекают сведения, связанные с функцией glCallLists :

glGet с аргументом GL_LIST_BASE

glGet с аргументом 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