Прототип:
void glCallLists(GLsizei n, GLenum type, const GLvoid *lists);
Параметры:
n : количество вызываемых списков отображения.
type : тип данных *lists. Поддерживаются GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT,
GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, GL_4_BYTES.
lists : указатель на массив имен списков отображения. Тип void тут потому, что имена могут быть представлены
различными типами данных.
Описание:
glCallLists вызывает заданное количество списков отображения по именам, если только имена связаны с
соответствующими списками отображения.
GL_BYTE массив представлен целыми 1-байтовыми значениями со знаком от -128 до 127.
GL_UNSIGNED_BYTE массив представлен целыми 1-байтовыми значениями без знака от 0 до 255.
GL_SHORT массив представлен целыми 2-байтовыми значениями со знаком от -32768 до 32767.
GL_UNSIGNED_SHORT массив представлен 2-байтовыми целыми значениями без знака от 0 до 65535.
GL_INT массив представлен 4-байтовыми значениями со знаком.
GL_UNSIGNED_INT массив представлен 4-байтовыми значениями без знака.
GL_2_BYTES массив представлен 2 байтами без знака. Каждая пара байтов образует единое имя списка отображения.
GL_3_BYTES массив представлен 3 байтами без знака. Каждая тройка байтов образует единое имя списка отображения.
GL_4_BYTES массив представлен 4 байтами без знака. Каждая четверка байтов образует единое имя списка отображения.
Значение n определяет количество вызываемых списков отображения.
Функцией glListBase можно задать смещение каждого имени в массиве списков отображения.
glCallLists может находится в списке отображения. Во избежании бесконечной рекурсии связанной с этим установлен
лимит вложенности в 64, хотя это зависит от конкретной реализации.
GL-статус не сохраняется при вызове glCallLists и не восстанавливается после, поэтому нужно использовать
другие функции для этого glPushAttrib, glPopAttrib, glPushMatrix, glPopMatrix.
glCallLists может так же вызываться между glBegin/glEnd.
|