glPopMatrix 函数

glPushMatrixglPopMatrix 函数推送并弹出当前矩阵堆栈。

语法

void WINAPI glPopMatrix(void);

parameters

此函数没有参数。

返回值

此函数不返回值。

错误代码

推送完整矩阵堆栈或弹出仅包含单个矩阵的矩阵堆栈是错误的。 在任一情况下,都设置了错误标志,并且不会对 OpenGL 状态进行任何其他更改。

glGetError 函数可以检索以下错误代码。

名称 含义
GL_STACK_UNDERFLOW
调用 函数时,当前矩阵堆栈仅包含单个矩阵。
GL_INVALID_OPERATION
在对 glBegin 的调用和对 glEnd 的相应调用之间调用了函数。

备注

每个矩阵模式都有一个矩阵堆栈。 在GL_MODELVIEW模式下,堆栈深度至少为 32。 在其他两种模式(GL_PROJECTION和GL_TEXTURE)中,深度至少为 2。 任何模式下的当前矩阵都是该模式堆栈顶部的矩阵。

glPushMatrix 函数将当前矩阵堆栈向下推送一个,复制当前矩阵。 也就是说,在 调用 glPushMatrix 之后,堆栈顶部的矩阵与下面的矩阵相同。 glPopMatrix 函数弹出当前矩阵堆栈,将当前矩阵替换为堆栈上的下一个矩阵。 最初,每个堆栈都包含一个矩阵,即一个标识矩阵。

以下函数检索与 glPushMatrixglPopMatrix 相关的信息:

带参数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的 glGet

要求

要求
最低受支持的客户端
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