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


Функция glPopMatrix

Функции glPushMatrix и glPopMatrix отправляют и извлекают текущий стек матрицы.

Синтаксис

void WINAPI glPopMatrix(void);

Параметры

У этой функции нет параметров.

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

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

Коды ошибок

Отправка полного матричного стека или извлечение матричного стека, содержащего только одну матрицу, является ошибкой. В любом случае флаг ошибки установлен, и никакие другие изменения в состояние OpenGL не вносятся.

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_STACK_UNDERFLOW
Функция была вызвана, в то время как текущий стек матрицы содержал только одну матрицу.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Для каждого режима матрицы имеется стек матриц. В режиме GL_MODELVIEW глубина стека не менее 32. В двух других режимах, GL_PROJECTION и GL_TEXTURE, глубина составляет не менее 2. Текущая матрица в любом режиме — это матрица в верхней части стека для этого режима.

Функция glPushMatrix отправляет текущий матричный стек на один, дублируя текущую матрицу. То есть после вызова glPushMatrix матрица в верхней части стека идентична матрице под ней. Функция glPopMatrix выводит текущий матричный стек, заменяя текущую матрицу на матрицу под ней в стеке. Изначально каждый из стеков содержит одну матрицу, матрицу идентификации.

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

glGet с GL_MATRIX_MODE аргументов

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

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

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

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

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

glGet с GL_TEXTURE_STACK_DEPTH аргументов

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

glGet с GL_MAX_PROJECTION_STACK_DEPTH аргументов

glGet с GL_MAX_TEXTURE_STACK_DEPTH аргументов

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glBegin

glEnd

GlFrustum

glLoadIdentity

glLoadMatrix

glMatrixMode

glMultMatrix

glOrtho

glPushMatrix

GlRotate

glScale

glTranslate

glViewport