4cf161019646161262ca84c190d3c0ea56c62a7b
[clinton/guile-figl.git] / upstream-man-pages / man2 / xhtml / glPushAttrib.xml
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>glPushAttrib</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /></head><body><div class="refentry" lang="en" xml:lang="en"><a id="glPushAttrib"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glPushAttrib — push and pop the server attribute 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">glPushAttrib</b>(</code></td><td>GLbitfield  </td><td><var class="pdparam">mask</var><code>)</code>;</td></tr></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>
4 Specifies a mask that indicates which attributes to save. Values for
5 <em class="parameter"><code>mask</code></em> are listed below.
6 </p></dd></dl></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">glPopAttrib</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>
7 <code class="function">glPushAttrib</code> takes one argument,
8 a mask that indicates which groups of state variables
9 to save on the attribute stack.
10 Symbolic constants are used to set bits in the mask.
11 <em class="parameter"><code>mask</code></em>
12 is typically constructed by specifying the bitwise-or of several
13 of these constants together.
14 The special mask
15 <code class="constant">GL_ALL_ATTRIB_BITS</code>
16 can be used to save all stackable states.
17 </p><p>
18 The symbolic mask constants and their associated GL state are as follows
19 (the second column lists which attributes are saved):
20 </p><p>
21 </p><div class="informaltable"><table border="1"><colgroup><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left">
22 <code class="constant">GL_ACCUM_BUFFER_BIT</code>
23 </td><td align="left">
24 Accumulation buffer clear value
25 </td></tr><tr><td align="left">
26 <code class="constant">GL_COLOR_BUFFER_BIT</code>
27 </td><td align="left">
28 <code class="constant">GL_ALPHA_TEST</code> enable bit
29 </td></tr><tr><td align="left">
30 </td><td align="left">
31 Alpha test function and reference value
32 </td></tr><tr><td align="left">
33 </td><td align="left">
34 <code class="constant">GL_BLEND</code> enable bit
35 </td></tr><tr><td align="left">
36 </td><td align="left">
37 Blending source and destination functions
38 </td></tr><tr><td align="left">
39 </td><td align="left">
40 Constant blend color
41 </td></tr><tr><td align="left">
42 </td><td align="left">
43 Blending equation
44 </td></tr><tr><td align="left">
45 </td><td align="left">
46 <code class="constant">GL_DITHER</code> enable bit
47 </td></tr><tr><td align="left">
48 </td><td align="left">
49 <code class="constant">GL_DRAW_BUFFER</code> setting
50 </td></tr><tr><td align="left">
51 </td><td align="left">
52 <code class="constant">GL_COLOR_LOGIC_OP</code> enable bit
53 </td></tr><tr><td align="left">
54 </td><td align="left">
55 <code class="constant">GL_INDEX_LOGIC_OP</code> enable bit
56 </td></tr><tr><td align="left">
57 </td><td align="left">
58 Logic op function
59 </td></tr><tr><td align="left">
60 </td><td align="left">
61 Color mode and index mode clear values
62 </td></tr><tr><td align="left">
63 </td><td align="left">
64 Color mode and index mode writemasks
65 </td></tr><tr><td align="left">
66 <code class="constant">GL_CURRENT_BIT</code>
67 </td><td align="left">
68 Current RGBA color
69 </td></tr><tr><td align="left">
70 </td><td align="left">
71 Current color index
72 </td></tr><tr><td align="left">
73 </td><td align="left">
74 Current normal vector
75 </td></tr><tr><td align="left">
76 </td><td align="left">
77 Current texture coordinates
78 </td></tr><tr><td align="left">
79 </td><td align="left">
80 Current raster position
81 </td></tr><tr><td align="left">
82 </td><td align="left">
83 <code class="constant">GL_CURRENT_RASTER_POSITION_VALID</code> flag
84 </td></tr><tr><td align="left">
85 </td><td align="left">
86 RGBA color associated with current raster position
87 </td></tr><tr><td align="left">
88 </td><td align="left">
89 Color index associated with current raster position
90 </td></tr><tr><td align="left">
91 </td><td align="left">
92 Texture coordinates associated with current raster position
93 </td></tr><tr><td align="left">
94 </td><td align="left">
95 <code class="constant">GL_EDGE_FLAG</code> flag
96 </td></tr><tr><td align="left">
97 <code class="constant">GL_DEPTH_BUFFER_BIT</code>
98 </td><td align="left">
99 <code class="constant">GL_DEPTH_TEST</code> enable bit
100 </td></tr><tr><td align="left">
101 </td><td align="left">
102 Depth buffer test function
103 </td></tr><tr><td align="left">
104 </td><td align="left">
105 Depth buffer clear value
106 </td></tr><tr><td align="left">
107 </td><td align="left">
108 <code class="constant">GL_DEPTH_WRITEMASK</code> enable bit
109 </td></tr><tr><td align="left">
110 <code class="constant">GL_ENABLE_BIT</code>
111 </td><td align="left">
112 <code class="constant">GL_ALPHA_TEST</code> flag
113 </td></tr><tr><td align="left">
114 </td><td align="left">
115 <code class="constant">GL_AUTO_NORMAL</code> flag
116 </td></tr><tr><td align="left">
117 </td><td align="left">
118 <code class="constant">GL_BLEND</code> flag
119 </td></tr><tr><td align="left">
120 </td><td align="left">
121 Enable bits for the user-definable clipping planes
122 </td></tr><tr><td align="left">
123 </td><td align="left">
124 <code class="constant">GL_COLOR_MATERIAL</code>
125 </td></tr><tr><td align="left">
126 </td><td align="left">
127 <code class="constant">GL_CULL_FACE</code> flag
128 </td></tr><tr><td align="left">
129 </td><td align="left">
130 <code class="constant">GL_DEPTH_TEST</code> flag
131 </td></tr><tr><td align="left">
132 </td><td align="left">
133 <code class="constant">GL_DITHER</code> flag
134 </td></tr><tr><td align="left">
135 </td><td align="left">
136 <code class="constant">GL_FOG</code> flag
137 </td></tr><tr><td align="left">
138 </td><td align="left">
139 <code class="constant">GL_LIGHT</code><span class="emphasis"><em>i</em></span>
140 where
141 <code class="constant">0</code> &lt;= <span class="emphasis"><em>i</em></span> &lt; <code class="constant">GL_MAX_LIGHTS</code>
142
143 </td></tr><tr><td align="left">
144 </td><td align="left">
145 <code class="constant">GL_LIGHTING</code> flag
146 </td></tr><tr><td align="left">
147 </td><td align="left">
148 <code class="constant">GL_LINE_SMOOTH</code> flag
149 </td></tr><tr><td align="left">
150 </td><td align="left">
151 <code class="constant">GL_LINE_STIPPLE</code> flag
152 </td></tr><tr><td align="left">
153 </td><td align="left">
154 <code class="constant">GL_COLOR_LOGIC_OP</code> flag
155 </td></tr><tr><td align="left">
156 </td><td align="left">
157 <code class="constant">GL_INDEX_LOGIC_OP</code> flag
158 </td></tr><tr><td align="left">
159 </td><td align="left">
160 <code class="constant">GL_MAP1_</code><span class="emphasis"><em>x</em></span> where <span class="emphasis"><em>x</em></span> is a map type
161 </td></tr><tr><td align="left">
162 </td><td align="left">
163 <code class="constant">GL_MAP2_</code><span class="emphasis"><em>x</em></span> where <span class="emphasis"><em>x</em></span> is a map type
164 </td></tr><tr><td align="left">
165 </td><td align="left">
166 <code class="constant">GL_MULTISAMPLE</code> flag
167 </td></tr><tr><td align="left">
168 </td><td align="left">
169 <code class="constant">GL_NORMALIZE</code> flag
170 </td></tr><tr><td align="left">
171 </td><td align="left">
172 <code class="constant">GL_POINT_SMOOTH</code> flag
173 </td></tr><tr><td align="left">
174 </td><td align="left">
175 <code class="constant">GL_POLYGON_OFFSET_LINE</code> flag
176 </td></tr><tr><td align="left">
177 </td><td align="left">
178 <code class="constant">GL_POLYGON_OFFSET_FILL</code> flag
179 </td></tr><tr><td align="left">
180 </td><td align="left">
181 <code class="constant">GL_POLYGON_OFFSET_POINT</code> flag
182 </td></tr><tr><td align="left">
183 </td><td align="left">
184 <code class="constant">GL_POLYGON_SMOOTH</code> flag
185 </td></tr><tr><td align="left">
186 </td><td align="left">
187 <code class="constant">GL_POLYGON_STIPPLE</code> flag
188 </td></tr><tr><td align="left">
189 </td><td align="left">
190 <code class="constant">GL_SAMPLE_ALPHA_TO_COVERAGE</code> flag
191 </td></tr><tr><td align="left">
192 </td><td align="left">
193 <code class="constant">GL_SAMPLE_ALPHA_TO_ONE</code> flag
194 </td></tr><tr><td align="left">
195 </td><td align="left">
196 <code class="constant">GL_SAMPLE_COVERAGE</code> flag
197 </td></tr><tr><td align="left">
198 </td><td align="left">
199 <code class="constant">GL_SCISSOR_TEST</code> flag
200 </td></tr><tr><td align="left">
201 </td><td align="left">
202 <code class="constant">GL_STENCIL_TEST</code> flag
203 </td></tr><tr><td align="left">
204 </td><td align="left">
205 <code class="constant">GL_TEXTURE_1D</code> flag
206 </td></tr><tr><td align="left">
207 </td><td align="left">
208 <code class="constant">GL_TEXTURE_2D</code> flag
209 </td></tr><tr><td align="left">
210 </td><td align="left">
211 <code class="constant">GL_TEXTURE_3D</code> flag
212 </td></tr><tr><td align="left">
213 </td><td align="left">
214 Flags <code class="constant">GL_TEXTURE_GEN_</code><span class="emphasis"><em>x</em></span> where <span class="emphasis"><em>x</em></span> is S, T, R, or Q
215 </td></tr><tr><td align="left">
216 <code class="constant">GL_EVAL_BIT</code>
217 </td><td align="left">
218 <code class="constant">GL_MAP1_</code><span class="emphasis"><em>x</em></span> enable bits, where <span class="emphasis"><em>x</em></span> is a map type
219 </td></tr><tr><td align="left">
220 </td><td align="left">
221 <code class="constant">GL_MAP2_</code><span class="emphasis"><em>x</em></span> enable bits, where <span class="emphasis"><em>x</em></span> is a map type
222 </td></tr><tr><td align="left">
223 </td><td align="left">
224 1D grid endpoints and divisions
225 </td></tr><tr><td align="left">
226 </td><td align="left">
227 2D grid endpoints and divisions
228 </td></tr><tr><td align="left">
229 </td><td align="left">
230 <code class="constant">GL_AUTO_NORMAL</code> enable bit
231 </td></tr><tr><td align="left">
232 <code class="constant">GL_FOG_BIT</code>
233 </td><td align="left">
234 <code class="constant">GL_FOG</code> enable bit
235 </td></tr><tr><td align="left">
236 </td><td align="left">
237 Fog color
238 </td></tr><tr><td align="left">
239 </td><td align="left">
240 Fog density
241 </td></tr><tr><td align="left">
242 </td><td align="left">
243 Linear fog start
244 </td></tr><tr><td align="left">
245 </td><td align="left">
246 Linear fog end
247 </td></tr><tr><td align="left">
248 </td><td align="left">
249 Fog index
250 </td></tr><tr><td align="left">
251 </td><td align="left">
252 <code class="constant">GL_FOG_MODE</code> value
253 </td></tr><tr><td align="left">
254 <code class="constant">GL_HINT_BIT</code>
255 </td><td align="left">
256 <code class="constant">GL_PERSPECTIVE_CORRECTION_HINT</code> setting
257 </td></tr><tr><td align="left">
258 </td><td align="left">
259 <code class="constant">GL_POINT_SMOOTH_HINT</code> setting
260 </td></tr><tr><td align="left">
261 </td><td align="left">
262 <code class="constant">GL_LINE_SMOOTH_HINT</code> setting
263 </td></tr><tr><td align="left">
264 </td><td align="left">
265 <code class="constant">GL_POLYGON_SMOOTH_HINT</code> setting
266 </td></tr><tr><td align="left">
267 </td><td align="left">
268 <code class="constant">GL_FOG_HINT</code> setting
269 </td></tr><tr><td align="left">
270 </td><td align="left">
271 <code class="constant">GL_GENERATE_MIPMAP_HINT</code> setting
272 </td></tr><tr><td align="left">
273 </td><td align="left">
274 <code class="constant">GL_TEXTURE_COMPRESSION_HINT</code> setting
275 </td></tr><tr><td align="left">
276 <code class="constant">GL_LIGHTING_BIT</code>
277 </td><td align="left">
278 <code class="constant">GL_COLOR_MATERIAL</code> enable bit
279 </td></tr><tr><td align="left">
280 </td><td align="left">
281 <code class="constant">GL_COLOR_MATERIAL_FACE</code> value
282 </td></tr><tr><td align="left">
283 </td><td align="left">
284 Color material parameters that are tracking the current color
285 </td></tr><tr><td align="left">
286 </td><td align="left">
287 Ambient scene color
288 </td></tr><tr><td align="left">
289 </td><td align="left">
290 <code class="constant">GL_LIGHT_MODEL_LOCAL_VIEWER</code> value
291 </td></tr><tr><td align="left">
292 </td><td align="left">
293 <code class="constant">GL_LIGHT_MODEL_TWO_SIDE</code> setting
294 </td></tr><tr><td align="left">
295 </td><td align="left">
296 <code class="constant">GL_LIGHTING</code> enable bit
297 </td></tr><tr><td align="left">
298 </td><td align="left">
299 Enable bit for each light
300 </td></tr><tr><td align="left">
301 </td><td align="left">
302 Ambient, diffuse, and specular intensity for each light
303 </td></tr><tr><td align="left">
304 </td><td align="left">
305 Direction, position, exponent, and cutoff angle for each light
306 </td></tr><tr><td align="left">
307 </td><td align="left">
308 Constant, linear, and quadratic attenuation factors for each light
309 </td></tr><tr><td align="left">
310 </td><td align="left">
311 Ambient, diffuse, specular, and emissive color for each material
312 </td></tr><tr><td align="left">
313 </td><td align="left">
314 Ambient, diffuse, and specular color indices for each material
315 </td></tr><tr><td align="left">
316 </td><td align="left">
317 Specular exponent for each material
318 </td></tr><tr><td align="left">
319 </td><td align="left">
320 <code class="constant">GL_SHADE_MODEL</code> setting
321 </td></tr><tr><td align="left">
322 <code class="constant">GL_LINE_BIT</code>
323 </td><td align="left">
324 <code class="constant">GL_LINE_SMOOTH</code> flag
325 </td></tr><tr><td align="left">
326 </td><td align="left">
327 <code class="constant">GL_LINE_STIPPLE</code> enable bit
328 </td></tr><tr><td align="left">
329 </td><td align="left">
330 Line stipple pattern and repeat counter
331 </td></tr><tr><td align="left">
332 </td><td align="left">
333 Line width
334 </td></tr><tr><td align="left">
335 <code class="constant">GL_LIST_BIT</code>
336 </td><td align="left">
337 <code class="constant">GL_LIST_BASE</code> setting
338 </td></tr><tr><td align="left">
339 <code class="constant">GL_MULTISAMPLE_BIT</code>
340 </td><td align="left">
341 <code class="constant">GL_MULTISAMPLE</code> flag
342 </td></tr><tr><td align="left">
343 </td><td align="left">
344 <code class="constant">GL_SAMPLE_ALPHA_TO_COVERAGE</code> flag
345 </td></tr><tr><td align="left">
346 </td><td align="left">
347 <code class="constant">GL_SAMPLE_ALPHA_TO_ONE</code> flag
348 </td></tr><tr><td align="left">
349 </td><td align="left">
350 <code class="constant">GL_SAMPLE_COVERAGE</code> flag
351 </td></tr><tr><td align="left">
352 </td><td align="left">
353 <code class="constant">GL_SAMPLE_COVERAGE_VALUE</code> value
354 </td></tr><tr><td align="left">
355 </td><td align="left">
356 <code class="constant">GL_SAMPLE_COVERAGE_INVERT</code> value
357 </td></tr><tr><td align="left">
358 <code class="constant">GL_PIXEL_MODE_BIT</code>
359 </td><td align="left">
360 <code class="constant">GL_RED_BIAS</code> and <code class="constant">GL_RED_SCALE</code> settings
361 </td></tr><tr><td align="left">
362 </td><td align="left">
363 <code class="constant">GL_GREEN_BIAS</code> and <code class="constant">GL_GREEN_SCALE</code> values
364 </td></tr><tr><td align="left">
365 </td><td align="left">
366 <code class="constant">GL_BLUE_BIAS</code> and <code class="constant">GL_BLUE_SCALE</code>
367 </td></tr><tr><td align="left">
368 </td><td align="left">
369 <code class="constant">GL_ALPHA_BIAS</code> and <code class="constant">GL_ALPHA_SCALE</code>
370 </td></tr><tr><td align="left">
371 </td><td align="left">
372 <code class="constant">GL_DEPTH_BIAS</code> and <code class="constant">GL_DEPTH_SCALE</code>
373 </td></tr><tr><td align="left">
374 </td><td align="left">
375 <code class="constant">GL_INDEX_OFFSET</code> and <code class="constant">GL_INDEX_SHIFT</code> values
376 </td></tr><tr><td align="left">
377 </td><td align="left">
378 <code class="constant">GL_MAP_COLOR</code> and <code class="constant">GL_MAP_STENCIL</code> flags
379 </td></tr><tr><td align="left">
380 </td><td align="left">
381 <code class="constant">GL_ZOOM_X</code> and <code class="constant">GL_ZOOM_Y</code> factors
382 </td></tr><tr><td align="left">
383 </td><td align="left">
384 <code class="constant">GL_READ_BUFFER</code> setting
385 </td></tr><tr><td align="left">
386 <code class="constant">GL_POINT_BIT</code>
387 </td><td align="left">
388 <code class="constant">GL_POINT_SMOOTH</code> flag
389 </td></tr><tr><td align="left">
390 </td><td align="left">
391 Point size
392 </td></tr><tr><td align="left">
393 <code class="constant">GL_POLYGON_BIT</code>
394 </td><td align="left">
395 <code class="constant">GL_CULL_FACE</code> enable bit
396 </td></tr><tr><td align="left">
397 </td><td align="left">
398 <code class="constant">GL_CULL_FACE_MODE</code> value
399 </td></tr><tr><td align="left">
400 </td><td align="left">
401 <code class="constant">GL_FRONT_FACE</code> indicator
402 </td></tr><tr><td align="left">
403 </td><td align="left">
404 <code class="constant">GL_POLYGON_MODE</code> setting
405 </td></tr><tr><td align="left">
406 </td><td align="left">
407 <code class="constant">GL_POLYGON_SMOOTH</code> flag
408 </td></tr><tr><td align="left">
409 </td><td align="left">
410 <code class="constant">GL_POLYGON_STIPPLE</code> enable bit
411 </td></tr><tr><td align="left">
412 </td><td align="left">
413 <code class="constant">GL_POLYGON_OFFSET_FILL</code> flag
414 </td></tr><tr><td align="left">
415 </td><td align="left">
416 <code class="constant">GL_POLYGON_OFFSET_LINE</code> flag
417 </td></tr><tr><td align="left">
418 </td><td align="left">
419 <code class="constant">GL_POLYGON_OFFSET_POINT</code> flag
420 </td></tr><tr><td align="left">
421 </td><td align="left">
422 <code class="constant">GL_POLYGON_OFFSET_FACTOR</code>
423 </td></tr><tr><td align="left">
424 </td><td align="left">
425 <code class="constant">GL_POLYGON_OFFSET_UNITS</code>
426 </td></tr><tr><td align="left">
427 <code class="constant">GL_POLYGON_STIPPLE_BIT</code>
428 </td><td align="left">
429 Polygon stipple image
430 </td></tr><tr><td align="left">
431 <code class="constant">GL_SCISSOR_BIT</code>
432 </td><td align="left">
433 <code class="constant">GL_SCISSOR_TEST</code> flag
434 </td></tr><tr><td align="left">
435 </td><td align="left">
436 Scissor box
437 </td></tr><tr><td align="left">
438 <code class="constant">GL_STENCIL_BUFFER_BIT</code>
439 </td><td align="left">
440 <code class="constant">GL_STENCIL_TEST</code> enable bit
441 </td></tr><tr><td align="left">
442 </td><td align="left">
443 Stencil function and reference value
444 </td></tr><tr><td align="left">
445 </td><td align="left">
446 Stencil value mask
447 </td></tr><tr><td align="left">
448 </td><td align="left">
449 Stencil fail, pass, and depth buffer pass actions
450 </td></tr><tr><td align="left">
451 </td><td align="left">
452 Stencil buffer clear value
453 </td></tr><tr><td align="left">
454 </td><td align="left">
455 Stencil buffer writemask
456 </td></tr><tr><td align="left">
457 <code class="constant">GL_TEXTURE_BIT</code>
458 </td><td align="left">
459 Enable bits for the four texture coordinates
460 </td></tr><tr><td align="left">
461 </td><td align="left">
462 Border color for each texture image
463 </td></tr><tr><td align="left">
464 </td><td align="left">
465 Minification function for each texture image
466 </td></tr><tr><td align="left">
467 </td><td align="left">
468 Magnification function for each texture image
469 </td></tr><tr><td align="left">
470 </td><td align="left">
471 Texture coordinates and wrap mode for each texture image
472 </td></tr><tr><td align="left">
473 </td><td align="left">
474 Color and mode for each texture environment
475 </td></tr><tr><td align="left">
476 </td><td align="left">
477 Enable bits <code class="constant">GL_TEXTURE_GEN_</code><span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>x</em></span> is S, T, R, and Q
478 </td></tr><tr><td align="left">
479 </td><td align="left">
480 <code class="constant">GL_TEXTURE_GEN_MODE</code> setting for S, T, R, and Q
481 </td></tr><tr><td align="left">
482 </td><td align="left">
483 <a class="citerefentry" href="glTexGen.xml"><span class="citerefentry"><span class="refentrytitle">glTexGen</span></span></a> plane equations for S, T, R, and Q
484 </td></tr><tr><td align="left">
485 </td><td align="left">
486 Current texture bindings (for example, <code class="constant">GL_TEXTURE_BINDING_2D</code>)
487 </td></tr><tr><td align="left">
488 <code class="constant">GL_TRANSFORM_BIT</code>
489 </td><td align="left">
490 Coefficients of the six clipping planes
491 </td></tr><tr><td align="left">
492 </td><td align="left">
493 Enable bits for the user-definable clipping planes
494 </td></tr><tr><td align="left">
495 </td><td align="left">
496 <code class="constant">GL_MATRIX_MODE</code> value
497 </td></tr><tr><td align="left">
498 </td><td align="left">
499 <code class="constant">GL_NORMALIZE</code> flag
500 </td></tr><tr><td align="left">
501 </td><td align="left">
502 <code class="constant">GL_RESCALE_NORMAL</code> flag
503 </td></tr><tr><td align="left">
504 <code class="constant">GL_VIEWPORT_BIT</code>
505 </td><td align="left">
506 Depth range (near and far)
507 </td></tr><tr><td align="left">
508 </td><td align="left">
509 Viewport origin and extent
510 </td></tr></tbody></table></div><p>
511 <a class="citerefentry" href="glPopAttrib.xml"><span class="citerefentry"><span class="refentrytitle">glPopAttrib</span></span></a> restores the values of the state variables saved with the last
512 <code class="function">glPushAttrib</code> command.
513 Those not saved are left unchanged.
514 </p><p>
515 It is an error to push attributes onto a full stack
516 or to pop attributes off an empty stack.
517 In either case, the error flag is set
518 and no other change is made to GL state.
519 </p><p>
520 Initially, the attribute stack is empty.
521 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p>
522 Not all values for GL state can be saved on the attribute stack.
523 For example,
524 render mode state,
525 and select and feedback state cannot be saved.
526 Client state must be saved with
527 <a class="citerefentry" href="glPushClientAttrib.xml"><span class="citerefentry"><span class="refentrytitle">glPushClientAttrib</span></span></a>.
528 </p><p>
529 The depth of the attribute stack depends on the implementation,
530 but it must be at least 16.
531 </p><p>
532 For OpenGL versions 1.3 and greater, or when the <code class="code">ARB_multitexture</code> extension is supported, pushing and
533 popping texture state applies to all supported texture units.
534 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p>
535 <code class="constant">GL_STACK_OVERFLOW</code> is generated if <code class="function">glPushAttrib</code> is called while
536 the attribute stack is full.
537 </p><p>
538 <code class="constant">GL_STACK_UNDERFLOW</code> is generated if <a class="citerefentry" href="glPopAttrib.xml"><span class="citerefentry"><span class="refentrytitle">glPopAttrib</span></span></a> is called while
539 the attribute stack is empty.
540 </p><p>
541 <code class="constant">GL_INVALID_OPERATION</code> is generated if <code class="function">glPushAttrib</code> or <a class="citerefentry" href="glPopAttrib.xml"><span class="citerefentry"><span class="refentrytitle">glPopAttrib</span></span></a>
542 is executed between the execution of <a class="citerefentry" href="glBegin.xml"><span class="citerefentry"><span class="refentrytitle">glBegin</span></span></a>
543 and the corresponding execution of <a class="citerefentry" href="glEnd.xml"><span class="citerefentry"><span class="refentrytitle">glEnd</span></span></a>.
544 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p>
545 <a class="citerefentry" href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_ATTRIB_STACK_DEPTH</code>
546 </p><p>
547 <a class="citerefentry" href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_MAX_ATTRIB_STACK_DEPTH</code>
548 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p>
549 <a class="citerefentry" href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a>,
550 <a class="citerefentry" href="glGetClipPlane.xml"><span class="citerefentry"><span class="refentrytitle">glGetClipPlane</span></span></a>,
551 <a class="citerefentry" href="glGetError.xml"><span class="citerefentry"><span class="refentrytitle">glGetError</span></span></a>,
552 <a class="citerefentry" href="glGetLight.xml"><span class="citerefentry"><span class="refentrytitle">glGetLight</span></span></a>,
553 <a class="citerefentry" href="glGetMap.xml"><span class="citerefentry"><span class="refentrytitle">glGetMap</span></span></a>,
554 <a class="citerefentry" href="glGetMaterial.xml"><span class="citerefentry"><span class="refentrytitle">glGetMaterial</span></span></a>,
555 <a class="citerefentry" href="glGetPixelMap.xml"><span class="citerefentry"><span class="refentrytitle">glGetPixelMap</span></span></a>,
556 <a class="citerefentry" href="glGetPolygonStipple.xml"><span class="citerefentry"><span class="refentrytitle">glGetPolygonStipple</span></span></a>,
557 <a class="citerefentry" href="glGetString.xml"><span class="citerefentry"><span class="refentrytitle">glGetString</span></span></a>,
558 <a class="citerefentry" href="glGetTexEnv.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexEnv</span></span></a>,
559 <a class="citerefentry" href="glGetTexGen.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexGen</span></span></a>,
560 <a class="citerefentry" href="glGetTexImage.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexImage</span></span></a>,
561 <a class="citerefentry" href="glGetTexLevelParameter.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexLevelParameter</span></span></a>,
562 <a class="citerefentry" href="glGetTexParameter.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexParameter</span></span></a>,
563 <a class="citerefentry" href="glIsEnabled.xml"><span class="citerefentry"><span class="refentrytitle">glIsEnabled</span></span></a>,
564 <a class="citerefentry" href="glPushClientAttrib.xml"><span class="citerefentry"><span class="refentrytitle">glPushClientAttrib</span></span></a>
565 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p>
566 Copyright <span class="trademark"></span>© 1991-2006
567 Silicon Graphics, Inc. This document is licensed under the SGI
568 Free Software B License. For details, see
569 <a class="ulink" href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.
570 </p></div></div></body></html>