1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
2 <!-- saved from url=(0013)about:internet -->
3 <?xml-stylesheet type=
"text/xsl" href=
"mathml.xsl"?><html xmlns=
"http://www.w3.org/1999/xhtml" xmlns:
pref=
"http://www.w3.org/2002/Math/preference" pref:
renderer=
"mathplayer-dl"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><title>glPushMatrix
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.73.2" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"glPushMatrix"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>glPushMatrix — push and pop the current matrix stack
</p></div><div class=
"refsynopsisdiv"><h2>C Specification
</h2><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glPushMatrix
</b>(
</code></td><td> </td><td><var class=
"pdparam">void
</var><code>)
</code>;
</td></tr></table></div></div><div class=
"refsynopsisdiv"><h2>C Specification
</h2><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glPopMatrix
</b>(
</code></td><td> </td><td><var class=
"pdparam">void
</var><code>)
</code>;
</td></tr></table></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p>
4 There is a stack of matrices for each of the matrix modes.
5 In
<code class=
"constant">GL_MODELVIEW
</code> mode,
6 the stack depth is at least
32.
8 <code class=
"constant">GL_COLOR
</code>,
<code class=
"constant">GL_PROJECTION
</code>, and
<code class=
"constant">GL_TEXTURE
</code>,
9 the depth is at least
2.
10 The current matrix in any mode is the matrix on the top of the stack
13 <code class=
"function">glPushMatrix
</code> pushes the current matrix stack down by one,
14 duplicating the current matrix.
16 after a
<code class=
"function">glPushMatrix
</code> call,
17 the matrix on top of the stack is identical to the one below it.
19 <a class=
"citerefentry" href=
"glPopMatrix.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glPopMatrix
</span></span></a> pops the current matrix stack,
20 replacing the current matrix with the one below it on the stack.
22 Initially, each of the stacks contains one matrix, an identity matrix.
24 It is an error to push a full matrix stack
25 or to pop a matrix stack that contains only a single matrix.
26 In either case, the error flag is set
27 and no other change is made to GL state.
28 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"errors"></a><h2>Errors
</h2><p>
29 <code class=
"constant">GL_STACK_OVERFLOW
</code> is generated if
<code class=
"function">glPushMatrix
</code> is called while
30 the current matrix stack is full.
32 <code class=
"constant">GL_STACK_UNDERFLOW
</code> is generated if
<a class=
"citerefentry" href=
"glPopMatrix.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glPopMatrix
</span></span></a> is called while
33 the current matrix stack contains only a single matrix.
35 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
<code class=
"function">glPushMatrix
</code> or
<a class=
"citerefentry" href=
"glPopMatrix.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glPopMatrix
</span></span></a>
36 is executed between the execution of
<a class=
"citerefentry" href=
"glBegin.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBegin
</span></span></a>
37 and the corresponding execution of
<a class=
"citerefentry" href=
"glEnd.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glEnd
</span></span></a>.
38 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"associatedgets"></a><h2>Associated Gets
</h2><p>
39 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_MATRIX_MODE
</code>
41 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_COLOR_MATRIX
</code>
43 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_MODELVIEW_MATRIX
</code>
45 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_PROJECTION_MATRIX
</code>
47 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_TEXTURE_MATRIX
</code>
49 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_COLOR_MATRIX_STACK_DEPTH
</code>
51 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_MODELVIEW_STACK_DEPTH
</code>
53 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_PROJECTION_STACK_DEPTH
</code>
55 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_TEXTURE_STACK_DEPTH
</code>
57 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_MAX_MODELVIEW_STACK_DEPTH
</code>
59 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_MAX_PROJECTION_STACK_DEPTH
</code>
61 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_MAX_TEXTURE_STACK_DEPTH
</code>
62 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p>
63 <a class=
"citerefentry" href=
"glFrustum.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glFrustum
</span></span></a>,
64 <a class=
"citerefentry" href=
"glLoadIdentity.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glLoadIdentity
</span></span></a>,
65 <a class=
"citerefentry" href=
"glLoadMatrix.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glLoadMatrix
</span></span></a>,
66 <a class=
"citerefentry" href=
"glLoadTransposeMatrix.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glLoadTransposeMatrix
</span></span></a>,
67 <a class=
"citerefentry" href=
"glMatrixMode.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glMatrixMode
</span></span></a>,
68 <a class=
"citerefentry" href=
"glMultMatrix.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glMultMatrix
</span></span></a>,
69 <a class=
"citerefentry" href=
"glMultTransposeMatrix.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glMultTransposeMatrix
</span></span></a>,
70 <a class=
"citerefentry" href=
"glOrtho.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glOrtho
</span></span></a>,
71 <a class=
"citerefentry" href=
"glRotate.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glRotate
</span></span></a>,
72 <a class=
"citerefentry" href=
"glScale.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glScale
</span></span></a>,
73 <a class=
"citerefentry" href=
"glTranslate.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glTranslate
</span></span></a>,
74 <a class=
"citerefentry" href=
"glViewport.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glViewport
</span></span></a>
75 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
76 Copyright
<span class=
"trademark"></span>©
1991-
2006
77 Silicon Graphics, Inc. This document is licensed under the SGI
78 Free Software B License. For details, see
79 <a class=
"ulink" href=
"http://oss.sgi.com/projects/FreeB/" target=
"_top">http://oss.sgi.com/projects/FreeB/
</a>.
80 </p></div></div></body></html>