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


Функция glPushMatrix

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

Синтаксис

void WINAPI glPushMatrix(void);

Параметры

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

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

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

Коды ошибок

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

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

Имя Значение
GL_STACK_OVERFLOW
Функция была вызвана при заполнении текущего стека матрицы.
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

glPopMatrix

glRotate

glScale

glTranslate

glViewport