include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / man2 / glPushAttrib.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id="glPushAttrib">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glPushAttrib</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glPushAttrib</refname>
17 <refpurpose>push and pop the server attribute stack</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glPushAttrib</function></funcdef>
23 <paramdef>GLbitfield <parameter>mask</parameter></paramdef>
24 </funcprototype>
25 </funcsynopsis>
26 </refsynopsisdiv>
27 <refsect1 id="parameters"><title>Parameters</title>
28 <variablelist>
29 <varlistentry>
30 <term><parameter>mask</parameter></term>
31 <listitem>
32 <para>
33 Specifies a mask that indicates which attributes to save. Values for
34 <parameter>mask</parameter> are listed below.
35 </para>
36 </listitem>
37 </varlistentry>
38 </variablelist>
39 </refsect1>
40 <refsynopsisdiv><title>C Specification</title>
41 <funcsynopsis>
42 <funcprototype>
43 <funcdef>void <function>glPopAttrib</function></funcdef>
44 <paramdef> <parameter>void</parameter></paramdef>
45 </funcprototype>
46 </funcsynopsis>
47 </refsynopsisdiv>
48 <refsect1 id="description"><title>Description</title>
49 <para>
50 <function>glPushAttrib</function> takes one argument,
51 a mask that indicates which groups of state variables
52 to save on the attribute stack.
53 Symbolic constants are used to set bits in the mask.
54 <parameter>mask</parameter>
55 is typically constructed by specifying the bitwise-or of several
56 of these constants together.
57 The special mask
58 <constant>GL_ALL_ATTRIB_BITS</constant>
59 can be used to save all stackable states.
60 </para>
61 <para>
62 The symbolic mask constants and their associated GL state are as follows
63 (the second column lists which attributes are saved):
64 </para>
65 <para>
66 </para>
67 <informaltable frame="topbot">
68 <tgroup cols="2" align="left">
69 <colspec/>
70 <colspec/>
71 <tbody>
72 <row>
73 <entry align="left">
74 <constant>GL_ACCUM_BUFFER_BIT</constant>
75 </entry>
76 <entry align="left">
77 Accumulation buffer clear value
78 </entry>
79 </row>
80 <row>
81 <entry align="left">
82 <constant>GL_COLOR_BUFFER_BIT</constant>
83 </entry>
84 <entry align="left">
85 <constant>GL_ALPHA_TEST</constant> enable bit
86 </entry>
87 </row>
88 <row>
89 <entry align="left">
90 </entry>
91 <entry align="left">
92 Alpha test function and reference value
93 </entry>
94 </row>
95 <row>
96 <entry align="left">
97 </entry>
98 <entry align="left">
99 <constant>GL_BLEND</constant> enable bit
100 </entry>
101 </row>
102 <row>
103 <entry align="left">
104 </entry>
105 <entry align="left">
106 Blending source and destination functions
107 </entry>
108 </row>
109 <row>
110 <entry align="left">
111 </entry>
112 <entry align="left">
113 Constant blend color
114 </entry>
115 </row>
116 <row>
117 <entry align="left">
118 </entry>
119 <entry align="left">
120 Blending equation
121 </entry>
122 </row>
123 <row>
124 <entry align="left">
125 </entry>
126 <entry align="left">
127 <constant>GL_DITHER</constant> enable bit
128 </entry>
129 </row>
130 <row>
131 <entry align="left">
132 </entry>
133 <entry align="left">
134 <constant>GL_DRAW_BUFFER</constant> setting
135 </entry>
136 </row>
137 <row>
138 <entry align="left">
139 </entry>
140 <entry align="left">
141 <constant>GL_COLOR_LOGIC_OP</constant> enable bit
142 </entry>
143 </row>
144 <row>
145 <entry align="left">
146 </entry>
147 <entry align="left">
148 <constant>GL_INDEX_LOGIC_OP</constant> enable bit
149 </entry>
150 </row>
151 <row>
152 <entry align="left">
153 </entry>
154 <entry align="left">
155 Logic op function
156 </entry>
157 </row>
158 <row>
159 <entry align="left">
160 </entry>
161 <entry align="left">
162 Color mode and index mode clear values
163 </entry>
164 </row>
165 <row>
166 <entry align="left">
167 </entry>
168 <entry align="left">
169 Color mode and index mode writemasks
170 </entry>
171 </row>
172 <row>
173 <entry align="left">
174 <constant>GL_CURRENT_BIT</constant>
175 </entry>
176 <entry align="left">
177 Current RGBA color
178 </entry>
179 </row>
180 <row>
181 <entry align="left">
182 </entry>
183 <entry align="left">
184 Current color index
185 </entry>
186 </row>
187 <row>
188 <entry align="left">
189 </entry>
190 <entry align="left">
191 Current normal vector
192 </entry>
193 </row>
194 <row>
195 <entry align="left">
196 </entry>
197 <entry align="left">
198 Current texture coordinates
199 </entry>
200 </row>
201 <row>
202 <entry align="left">
203 </entry>
204 <entry align="left">
205 Current raster position
206 </entry>
207 </row>
208 <row>
209 <entry align="left">
210 </entry>
211 <entry align="left">
212 <constant>GL_CURRENT_RASTER_POSITION_VALID</constant> flag
213 </entry>
214 </row>
215 <row>
216 <entry align="left">
217 </entry>
218 <entry align="left">
219 RGBA color associated with current raster position
220 </entry>
221 </row>
222 <row>
223 <entry align="left">
224 </entry>
225 <entry align="left">
226 Color index associated with current raster position
227 </entry>
228 </row>
229 <row>
230 <entry align="left">
231 </entry>
232 <entry align="left">
233 Texture coordinates associated with current raster position
234 </entry>
235 </row>
236 <row>
237 <entry align="left">
238 </entry>
239 <entry align="left">
240 <constant>GL_EDGE_FLAG</constant> flag
241 </entry>
242 </row>
243 <row>
244 <entry align="left">
245 <constant>GL_DEPTH_BUFFER_BIT</constant>
246 </entry>
247 <entry align="left">
248 <constant>GL_DEPTH_TEST</constant> enable bit
249 </entry>
250 </row>
251 <row>
252 <entry align="left">
253 </entry>
254 <entry align="left">
255 Depth buffer test function
256 </entry>
257 </row>
258 <row>
259 <entry align="left">
260 </entry>
261 <entry align="left">
262 Depth buffer clear value
263 </entry>
264 </row>
265 <row>
266 <entry align="left">
267 </entry>
268 <entry align="left">
269 <constant>GL_DEPTH_WRITEMASK</constant> enable bit
270 </entry>
271 </row>
272 <row>
273 <entry align="left">
274 <constant>GL_ENABLE_BIT</constant>
275 </entry>
276 <entry align="left">
277 <constant>GL_ALPHA_TEST</constant> flag
278 </entry>
279 </row>
280 <row>
281 <entry align="left">
282 </entry>
283 <entry align="left">
284 <constant>GL_AUTO_NORMAL</constant> flag
285 </entry>
286 </row>
287 <row>
288 <entry align="left">
289 </entry>
290 <entry align="left">
291 <constant>GL_BLEND</constant> flag
292 </entry>
293 </row>
294 <row>
295 <entry align="left">
296 </entry>
297 <entry align="left">
298 Enable bits for the user-definable clipping planes
299 </entry>
300 </row>
301 <row>
302 <entry align="left">
303 </entry>
304 <entry align="left">
305 <constant>GL_COLOR_MATERIAL</constant>
306 </entry>
307 </row>
308 <row>
309 <entry align="left">
310 </entry>
311 <entry align="left">
312 <constant>GL_CULL_FACE</constant> flag
313 </entry>
314 </row>
315 <row>
316 <entry align="left">
317 </entry>
318 <entry align="left">
319 <constant>GL_DEPTH_TEST</constant> flag
320 </entry>
321 </row>
322 <row>
323 <entry align="left">
324 </entry>
325 <entry align="left">
326 <constant>GL_DITHER</constant> flag
327 </entry>
328 </row>
329 <row>
330 <entry align="left">
331 </entry>
332 <entry align="left">
333 <constant>GL_FOG</constant> flag
334 </entry>
335 </row>
336 <row>
337 <entry align="left">
338 </entry>
339 <entry align="left">
340 <constant>GL_LIGHT</constant><emphasis>i</emphasis>
341 where
342 <constant>0</constant> &lt;&#61; <emphasis>i</emphasis> &lt; <constant>GL_MAX_LIGHTS</constant>
343
344 </entry>
345 </row>
346 <row>
347 <entry align="left">
348 </entry>
349 <entry align="left">
350 <constant>GL_LIGHTING</constant> flag
351 </entry>
352 </row>
353 <row>
354 <entry align="left">
355 </entry>
356 <entry align="left">
357 <constant>GL_LINE_SMOOTH</constant> flag
358 </entry>
359 </row>
360 <row>
361 <entry align="left">
362 </entry>
363 <entry align="left">
364 <constant>GL_LINE_STIPPLE</constant> flag
365 </entry>
366 </row>
367 <row>
368 <entry align="left">
369 </entry>
370 <entry align="left">
371 <constant>GL_COLOR_LOGIC_OP</constant> flag
372 </entry>
373 </row>
374 <row>
375 <entry align="left">
376 </entry>
377 <entry align="left">
378 <constant>GL_INDEX_LOGIC_OP</constant> flag
379 </entry>
380 </row>
381 <row>
382 <entry align="left">
383 </entry>
384 <entry align="left">
385 <constant>GL_MAP1_</constant><emphasis>x</emphasis> where <emphasis>x</emphasis> is a map type
386 </entry>
387 </row>
388 <row>
389 <entry align="left">
390 </entry>
391 <entry align="left">
392 <constant>GL_MAP2_</constant><emphasis>x</emphasis> where <emphasis>x</emphasis> is a map type
393 </entry>
394 </row>
395 <row>
396 <entry align="left">
397 </entry>
398 <entry align="left">
399 <constant>GL_MULTISAMPLE</constant> flag
400 </entry>
401 </row>
402 <row>
403 <entry align="left">
404 </entry>
405 <entry align="left">
406 <constant>GL_NORMALIZE</constant> flag
407 </entry>
408 </row>
409 <row>
410 <entry align="left">
411 </entry>
412 <entry align="left">
413 <constant>GL_POINT_SMOOTH</constant> flag
414 </entry>
415 </row>
416 <row>
417 <entry align="left">
418 </entry>
419 <entry align="left">
420 <constant>GL_POLYGON_OFFSET_LINE</constant> flag
421 </entry>
422 </row>
423 <row>
424 <entry align="left">
425 </entry>
426 <entry align="left">
427 <constant>GL_POLYGON_OFFSET_FILL</constant> flag
428 </entry>
429 </row>
430 <row>
431 <entry align="left">
432 </entry>
433 <entry align="left">
434 <constant>GL_POLYGON_OFFSET_POINT</constant> flag
435 </entry>
436 </row>
437 <row>
438 <entry align="left">
439 </entry>
440 <entry align="left">
441 <constant>GL_POLYGON_SMOOTH</constant> flag
442 </entry>
443 </row>
444 <row>
445 <entry align="left">
446 </entry>
447 <entry align="left">
448 <constant>GL_POLYGON_STIPPLE</constant> flag
449 </entry>
450 </row>
451 <row>
452 <entry align="left">
453 </entry>
454 <entry align="left">
455 <constant>GL_SAMPLE_ALPHA_TO_COVERAGE</constant> flag
456 </entry>
457 </row>
458 <row>
459 <entry align="left">
460 </entry>
461 <entry align="left">
462 <constant>GL_SAMPLE_ALPHA_TO_ONE</constant> flag
463 </entry>
464 </row>
465 <row>
466 <entry align="left">
467 </entry>
468 <entry align="left">
469 <constant>GL_SAMPLE_COVERAGE</constant> flag
470 </entry>
471 </row>
472 <row>
473 <entry align="left">
474 </entry>
475 <entry align="left">
476 <constant>GL_SCISSOR_TEST</constant> flag
477 </entry>
478 </row>
479 <row>
480 <entry align="left">
481 </entry>
482 <entry align="left">
483 <constant>GL_STENCIL_TEST</constant> flag
484 </entry>
485 </row>
486 <row>
487 <entry align="left">
488 </entry>
489 <entry align="left">
490 <constant>GL_TEXTURE_1D</constant> flag
491 </entry>
492 </row>
493 <row>
494 <entry align="left">
495 </entry>
496 <entry align="left">
497 <constant>GL_TEXTURE_2D</constant> flag
498 </entry>
499 </row>
500 <row>
501 <entry align="left">
502 </entry>
503 <entry align="left">
504 <constant>GL_TEXTURE_3D</constant> flag
505 </entry>
506 </row>
507 <row>
508 <entry align="left">
509 </entry>
510 <entry align="left">
511 Flags <constant>GL_TEXTURE_GEN_</constant><emphasis>x</emphasis> where <emphasis>x</emphasis> is S, T, R, or Q
512 </entry>
513 </row>
514 <row>
515 <entry align="left">
516 <constant>GL_EVAL_BIT</constant>
517 </entry>
518 <entry align="left">
519 <constant>GL_MAP1_</constant><emphasis>x</emphasis> enable bits, where <emphasis>x</emphasis> is a map type
520 </entry>
521 </row>
522 <row>
523 <entry align="left">
524 </entry>
525 <entry align="left">
526 <constant>GL_MAP2_</constant><emphasis>x</emphasis> enable bits, where <emphasis>x</emphasis> is a map type
527 </entry>
528 </row>
529 <row>
530 <entry align="left">
531 </entry>
532 <entry align="left">
533 1D grid endpoints and divisions
534 </entry>
535 </row>
536 <row>
537 <entry align="left">
538 </entry>
539 <entry align="left">
540 2D grid endpoints and divisions
541 </entry>
542 </row>
543 <row>
544 <entry align="left">
545 </entry>
546 <entry align="left">
547 <constant>GL_AUTO_NORMAL</constant> enable bit
548 </entry>
549 </row>
550 <row>
551 <entry align="left">
552 <constant>GL_FOG_BIT</constant>
553 </entry>
554 <entry align="left">
555 <constant>GL_FOG</constant> enable bit
556 </entry>
557 </row>
558 <row>
559 <entry align="left">
560 </entry>
561 <entry align="left">
562 Fog color
563 </entry>
564 </row>
565 <row>
566 <entry align="left">
567 </entry>
568 <entry align="left">
569 Fog density
570 </entry>
571 </row>
572 <row>
573 <entry align="left">
574 </entry>
575 <entry align="left">
576 Linear fog start
577 </entry>
578 </row>
579 <row>
580 <entry align="left">
581 </entry>
582 <entry align="left">
583 Linear fog end
584 </entry>
585 </row>
586 <row>
587 <entry align="left">
588 </entry>
589 <entry align="left">
590 Fog index
591 </entry>
592 </row>
593 <row>
594 <entry align="left">
595 </entry>
596 <entry align="left">
597 <constant>GL_FOG_MODE</constant> value
598 </entry>
599 </row>
600 <row>
601 <entry align="left">
602 <constant>GL_HINT_BIT</constant>
603 </entry>
604 <entry align="left">
605 <constant>GL_PERSPECTIVE_CORRECTION_HINT</constant> setting
606 </entry>
607 </row>
608 <row>
609 <entry align="left">
610 </entry>
611 <entry align="left">
612 <constant>GL_POINT_SMOOTH_HINT</constant> setting
613 </entry>
614 </row>
615 <row>
616 <entry align="left">
617 </entry>
618 <entry align="left">
619 <constant>GL_LINE_SMOOTH_HINT</constant> setting
620 </entry>
621 </row>
622 <row>
623 <entry align="left">
624 </entry>
625 <entry align="left">
626 <constant>GL_POLYGON_SMOOTH_HINT</constant> setting
627 </entry>
628 </row>
629 <row>
630 <entry align="left">
631 </entry>
632 <entry align="left">
633 <constant>GL_FOG_HINT</constant> setting
634 </entry>
635 </row>
636 <row>
637 <entry align="left">
638 </entry>
639 <entry align="left">
640 <constant>GL_GENERATE_MIPMAP_HINT</constant> setting
641 </entry>
642 </row>
643 <row>
644 <entry align="left">
645 </entry>
646 <entry align="left">
647 <constant>GL_TEXTURE_COMPRESSION_HINT</constant> setting
648 </entry>
649 </row>
650 <row>
651 <entry align="left">
652 <constant>GL_LIGHTING_BIT</constant>
653 </entry>
654 <entry align="left">
655 <constant>GL_COLOR_MATERIAL</constant> enable bit
656 </entry>
657 </row>
658 <row>
659 <entry align="left">
660 </entry>
661 <entry align="left">
662 <constant>GL_COLOR_MATERIAL_FACE</constant> value
663 </entry>
664 </row>
665 <row>
666 <entry align="left">
667 </entry>
668 <entry align="left">
669 Color material parameters that are tracking the current color
670 </entry>
671 </row>
672 <row>
673 <entry align="left">
674 </entry>
675 <entry align="left">
676 Ambient scene color
677 </entry>
678 </row>
679 <row>
680 <entry align="left">
681 </entry>
682 <entry align="left">
683 <constant>GL_LIGHT_MODEL_LOCAL_VIEWER</constant> value
684 </entry>
685 </row>
686 <row>
687 <entry align="left">
688 </entry>
689 <entry align="left">
690 <constant>GL_LIGHT_MODEL_TWO_SIDE</constant> setting
691 </entry>
692 </row>
693 <row>
694 <entry align="left">
695 </entry>
696 <entry align="left">
697 <constant>GL_LIGHTING</constant> enable bit
698 </entry>
699 </row>
700 <row>
701 <entry align="left">
702 </entry>
703 <entry align="left">
704 Enable bit for each light
705 </entry>
706 </row>
707 <row>
708 <entry align="left">
709 </entry>
710 <entry align="left">
711 Ambient, diffuse, and specular intensity for each light
712 </entry>
713 </row>
714 <row>
715 <entry align="left">
716 </entry>
717 <entry align="left">
718 Direction, position, exponent, and cutoff angle for each light
719 </entry>
720 </row>
721 <row>
722 <entry align="left">
723 </entry>
724 <entry align="left">
725 Constant, linear, and quadratic attenuation factors for each light
726 </entry>
727 </row>
728 <row>
729 <entry align="left">
730 </entry>
731 <entry align="left">
732 Ambient, diffuse, specular, and emissive color for each material
733 </entry>
734 </row>
735 <row>
736 <entry align="left">
737 </entry>
738 <entry align="left">
739 Ambient, diffuse, and specular color indices for each material
740 </entry>
741 </row>
742 <row>
743 <entry align="left">
744 </entry>
745 <entry align="left">
746 Specular exponent for each material
747 </entry>
748 </row>
749 <row>
750 <entry align="left">
751 </entry>
752 <entry align="left">
753 <constant>GL_SHADE_MODEL</constant> setting
754 </entry>
755 </row>
756 <row>
757 <entry align="left">
758 <constant>GL_LINE_BIT</constant>
759 </entry>
760 <entry align="left">
761 <constant>GL_LINE_SMOOTH</constant> flag
762 </entry>
763 </row>
764 <row>
765 <entry align="left">
766 </entry>
767 <entry align="left">
768 <constant>GL_LINE_STIPPLE</constant> enable bit
769 </entry>
770 </row>
771 <row>
772 <entry align="left">
773 </entry>
774 <entry align="left">
775 Line stipple pattern and repeat counter
776 </entry>
777 </row>
778 <row>
779 <entry align="left">
780 </entry>
781 <entry align="left">
782 Line width
783 </entry>
784 </row>
785 <row>
786 <entry align="left">
787 <constant>GL_LIST_BIT</constant>
788 </entry>
789 <entry align="left">
790 <constant>GL_LIST_BASE</constant> setting
791 </entry>
792 </row>
793 <row>
794 <entry align="left">
795 <constant>GL_MULTISAMPLE_BIT</constant>
796 </entry>
797 <entry align="left">
798 <constant>GL_MULTISAMPLE</constant> flag
799 </entry>
800 </row>
801 <row>
802 <entry align="left">
803 </entry>
804 <entry align="left">
805 <constant>GL_SAMPLE_ALPHA_TO_COVERAGE</constant> flag
806 </entry>
807 </row>
808 <row>
809 <entry align="left">
810 </entry>
811 <entry align="left">
812 <constant>GL_SAMPLE_ALPHA_TO_ONE</constant> flag
813 </entry>
814 </row>
815 <row>
816 <entry align="left">
817 </entry>
818 <entry align="left">
819 <constant>GL_SAMPLE_COVERAGE</constant> flag
820 </entry>
821 </row>
822 <row>
823 <entry align="left">
824 </entry>
825 <entry align="left">
826 <constant>GL_SAMPLE_COVERAGE_VALUE</constant> value
827 </entry>
828 </row>
829 <row>
830 <entry align="left">
831 </entry>
832 <entry align="left">
833 <constant>GL_SAMPLE_COVERAGE_INVERT</constant> value
834 </entry>
835 </row>
836 <row>
837 <entry align="left">
838 <constant>GL_PIXEL_MODE_BIT</constant>
839 </entry>
840 <entry align="left">
841 <constant>GL_RED_BIAS</constant> and <constant>GL_RED_SCALE</constant> settings
842 </entry>
843 </row>
844 <row>
845 <entry align="left">
846 </entry>
847 <entry align="left">
848 <constant>GL_GREEN_BIAS</constant> and <constant>GL_GREEN_SCALE</constant> values
849 </entry>
850 </row>
851 <row>
852 <entry align="left">
853 </entry>
854 <entry align="left">
855 <constant>GL_BLUE_BIAS</constant> and <constant>GL_BLUE_SCALE</constant>
856 </entry>
857 </row>
858 <row>
859 <entry align="left">
860 </entry>
861 <entry align="left">
862 <constant>GL_ALPHA_BIAS</constant> and <constant>GL_ALPHA_SCALE</constant>
863 </entry>
864 </row>
865 <row>
866 <entry align="left">
867 </entry>
868 <entry align="left">
869 <constant>GL_DEPTH_BIAS</constant> and <constant>GL_DEPTH_SCALE</constant>
870 </entry>
871 </row>
872 <row>
873 <entry align="left">
874 </entry>
875 <entry align="left">
876 <constant>GL_INDEX_OFFSET</constant> and <constant>GL_INDEX_SHIFT</constant> values
877 </entry>
878 </row>
879 <row>
880 <entry align="left">
881 </entry>
882 <entry align="left">
883 <constant>GL_MAP_COLOR</constant> and <constant>GL_MAP_STENCIL</constant> flags
884 </entry>
885 </row>
886 <row>
887 <entry align="left">
888 </entry>
889 <entry align="left">
890 <constant>GL_ZOOM_X</constant> and <constant>GL_ZOOM_Y</constant> factors
891 </entry>
892 </row>
893 <row>
894 <entry align="left">
895 </entry>
896 <entry align="left">
897 <constant>GL_READ_BUFFER</constant> setting
898 </entry>
899 </row>
900 <row>
901 <entry align="left">
902 <constant>GL_POINT_BIT</constant>
903 </entry>
904 <entry align="left">
905 <constant>GL_POINT_SMOOTH</constant> flag
906 </entry>
907 </row>
908 <row>
909 <entry align="left">
910 </entry>
911 <entry align="left">
912 Point size
913 </entry>
914 </row>
915 <row>
916 <entry align="left">
917 <constant>GL_POLYGON_BIT</constant>
918 </entry>
919 <entry align="left">
920 <constant>GL_CULL_FACE</constant> enable bit
921 </entry>
922 </row>
923 <row>
924 <entry align="left">
925 </entry>
926 <entry align="left">
927 <constant>GL_CULL_FACE_MODE</constant> value
928 </entry>
929 </row>
930 <row>
931 <entry align="left">
932 </entry>
933 <entry align="left">
934 <constant>GL_FRONT_FACE</constant> indicator
935 </entry>
936 </row>
937 <row>
938 <entry align="left">
939 </entry>
940 <entry align="left">
941 <constant>GL_POLYGON_MODE</constant> setting
942 </entry>
943 </row>
944 <row>
945 <entry align="left">
946 </entry>
947 <entry align="left">
948 <constant>GL_POLYGON_SMOOTH</constant> flag
949 </entry>
950 </row>
951 <row>
952 <entry align="left">
953 </entry>
954 <entry align="left">
955 <constant>GL_POLYGON_STIPPLE</constant> enable bit
956 </entry>
957 </row>
958 <row>
959 <entry align="left">
960 </entry>
961 <entry align="left">
962 <constant>GL_POLYGON_OFFSET_FILL</constant> flag
963 </entry>
964 </row>
965 <row>
966 <entry align="left">
967 </entry>
968 <entry align="left">
969 <constant>GL_POLYGON_OFFSET_LINE</constant> flag
970 </entry>
971 </row>
972 <row>
973 <entry align="left">
974 </entry>
975 <entry align="left">
976 <constant>GL_POLYGON_OFFSET_POINT</constant> flag
977 </entry>
978 </row>
979 <row>
980 <entry align="left">
981 </entry>
982 <entry align="left">
983 <constant>GL_POLYGON_OFFSET_FACTOR</constant>
984 </entry>
985 </row>
986 <row>
987 <entry align="left">
988 </entry>
989 <entry align="left">
990 <constant>GL_POLYGON_OFFSET_UNITS</constant>
991 </entry>
992 </row>
993 <row>
994 <entry align="left">
995 <constant>GL_POLYGON_STIPPLE_BIT</constant>
996 </entry>
997 <entry align="left">
998 Polygon stipple image
999 </entry>
1000 </row>
1001 <row>
1002 <entry align="left">
1003 <constant>GL_SCISSOR_BIT</constant>
1004 </entry>
1005 <entry align="left">
1006 <constant>GL_SCISSOR_TEST</constant> flag
1007 </entry>
1008 </row>
1009 <row>
1010 <entry align="left">
1011 </entry>
1012 <entry align="left">
1013 Scissor box
1014 </entry>
1015 </row>
1016 <row>
1017 <entry align="left">
1018 <constant>GL_STENCIL_BUFFER_BIT</constant>
1019 </entry>
1020 <entry align="left">
1021 <constant>GL_STENCIL_TEST</constant> enable bit
1022 </entry>
1023 </row>
1024 <row>
1025 <entry align="left">
1026 </entry>
1027 <entry align="left">
1028 Stencil function and reference value
1029 </entry>
1030 </row>
1031 <row>
1032 <entry align="left">
1033 </entry>
1034 <entry align="left">
1035 Stencil value mask
1036 </entry>
1037 </row>
1038 <row>
1039 <entry align="left">
1040 </entry>
1041 <entry align="left">
1042 Stencil fail, pass, and depth buffer pass actions
1043 </entry>
1044 </row>
1045 <row>
1046 <entry align="left">
1047 </entry>
1048 <entry align="left">
1049 Stencil buffer clear value
1050 </entry>
1051 </row>
1052 <row>
1053 <entry align="left">
1054 </entry>
1055 <entry align="left">
1056 Stencil buffer writemask
1057 </entry>
1058 </row>
1059 <row>
1060 <entry align="left">
1061 <constant>GL_TEXTURE_BIT</constant>
1062 </entry>
1063 <entry align="left">
1064 Enable bits for the four texture coordinates
1065 </entry>
1066 </row>
1067 <row>
1068 <entry align="left">
1069 </entry>
1070 <entry align="left">
1071 Border color for each texture image
1072 </entry>
1073 </row>
1074 <row>
1075 <entry align="left">
1076 </entry>
1077 <entry align="left">
1078 Minification function for each texture image
1079 </entry>
1080 </row>
1081 <row>
1082 <entry align="left">
1083 </entry>
1084 <entry align="left">
1085 Magnification function for each texture image
1086 </entry>
1087 </row>
1088 <row>
1089 <entry align="left">
1090 </entry>
1091 <entry align="left">
1092 Texture coordinates and wrap mode for each texture image
1093 </entry>
1094 </row>
1095 <row>
1096 <entry align="left">
1097 </entry>
1098 <entry align="left">
1099 Color and mode for each texture environment
1100 </entry>
1101 </row>
1102 <row>
1103 <entry align="left">
1104 </entry>
1105 <entry align="left">
1106 Enable bits <constant>GL_TEXTURE_GEN_</constant><emphasis>x</emphasis>, <emphasis>x</emphasis> is S, T, R, and Q
1107 </entry>
1108 </row>
1109 <row>
1110 <entry align="left">
1111 </entry>
1112 <entry align="left">
1113 <constant>GL_TEXTURE_GEN_MODE</constant> setting for S, T, R, and Q
1114 </entry>
1115 </row>
1116 <row>
1117 <entry align="left">
1118 </entry>
1119 <entry align="left">
1120 <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry> plane equations for S, T, R, and Q
1121 </entry>
1122 </row>
1123 <row>
1124 <entry align="left">
1125 </entry>
1126 <entry align="left">
1127 Current texture bindings (for example, <constant>GL_TEXTURE_BINDING_2D</constant>)
1128 </entry>
1129 </row>
1130 <row>
1131 <entry align="left">
1132 <constant>GL_TRANSFORM_BIT</constant>
1133 </entry>
1134 <entry align="left">
1135 Coefficients of the six clipping planes
1136 </entry>
1137 </row>
1138 <row>
1139 <entry align="left">
1140 </entry>
1141 <entry align="left">
1142 Enable bits for the user-definable clipping planes
1143 </entry>
1144 </row>
1145 <row>
1146 <entry align="left">
1147 </entry>
1148 <entry align="left">
1149 <constant>GL_MATRIX_MODE</constant> value
1150 </entry>
1151 </row>
1152 <row>
1153 <entry align="left">
1154 </entry>
1155 <entry align="left">
1156 <constant>GL_NORMALIZE</constant> flag
1157 </entry>
1158 </row>
1159 <row>
1160 <entry align="left">
1161 </entry>
1162 <entry align="left">
1163 <constant>GL_RESCALE_NORMAL</constant> flag
1164 </entry>
1165 </row>
1166 <row>
1167 <entry align="left">
1168 <constant>GL_VIEWPORT_BIT</constant>
1169 </entry>
1170 <entry align="left">
1171 Depth range (near and far)
1172 </entry>
1173 </row>
1174 <row>
1175 <entry align="left">
1176 </entry>
1177 <entry align="left">
1178 Viewport origin and extent
1179 </entry>
1180 </row>
1181 </tbody>
1182 </tgroup>
1183 </informaltable>
1184 <para>
1185 <citerefentry><refentrytitle>glPopAttrib</refentrytitle></citerefentry> restores the values of the state variables saved with the last
1186 <function>glPushAttrib</function> command.
1187 Those not saved are left unchanged.
1188 </para>
1189 <para>
1190 It is an error to push attributes onto a full stack
1191 or to pop attributes off an empty stack.
1192 In either case, the error flag is set
1193 and no other change is made to GL state.
1194 </para>
1195 <para>
1196 Initially, the attribute stack is empty.
1197 </para>
1198 </refsect1>
1199 <refsect1 id="notes"><title>Notes</title>
1200 <para>
1201 Not all values for GL state can be saved on the attribute stack.
1202 For example,
1203 render mode state,
1204 and select and feedback state cannot be saved.
1205 Client state must be saved with
1206 <citerefentry><refentrytitle>glPushClientAttrib</refentrytitle></citerefentry>.
1207 </para>
1208 <para>
1209 The depth of the attribute stack depends on the implementation,
1210 but it must be at least 16.
1211 </para>
1212 <para>
1213 For OpenGL versions 1.3 and greater, or when the <code>ARB_multitexture</code> extension is supported, pushing and
1214 popping texture state applies to all supported texture units.
1215 </para>
1216 </refsect1>
1217 <refsect1 id="errors"><title>Errors</title>
1218 <para>
1219 <constant>GL_STACK_OVERFLOW</constant> is generated if <function>glPushAttrib</function> is called while
1220 the attribute stack is full.
1221 </para>
1222 <para>
1223 <constant>GL_STACK_UNDERFLOW</constant> is generated if <citerefentry><refentrytitle>glPopAttrib</refentrytitle></citerefentry> is called while
1224 the attribute stack is empty.
1225 </para>
1226 <para>
1227 <constant>GL_INVALID_OPERATION</constant> is generated if <function>glPushAttrib</function> or <citerefentry><refentrytitle>glPopAttrib</refentrytitle></citerefentry>
1228 is executed between the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
1229 and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
1230 </para>
1231 </refsect1>
1232 <refsect1 id="associatedgets"><title>Associated Gets</title>
1233 <para>
1234 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ATTRIB_STACK_DEPTH</constant>
1235 </para>
1236 <para>
1237 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MAX_ATTRIB_STACK_DEPTH</constant>
1238 </para>
1239 </refsect1>
1240 <refsect1 id="seealso"><title>See Also</title>
1241 <para>
1242 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
1243 <citerefentry><refentrytitle>glGetClipPlane</refentrytitle></citerefentry>,
1244 <citerefentry><refentrytitle>glGetError</refentrytitle></citerefentry>,
1245 <citerefentry><refentrytitle>glGetLight</refentrytitle></citerefentry>,
1246 <citerefentry><refentrytitle>glGetMap</refentrytitle></citerefentry>,
1247 <citerefentry><refentrytitle>glGetMaterial</refentrytitle></citerefentry>,
1248 <citerefentry><refentrytitle>glGetPixelMap</refentrytitle></citerefentry>,
1249 <citerefentry><refentrytitle>glGetPolygonStipple</refentrytitle></citerefentry>,
1250 <citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>,
1251 <citerefentry><refentrytitle>glGetTexEnv</refentrytitle></citerefentry>,
1252 <citerefentry><refentrytitle>glGetTexGen</refentrytitle></citerefentry>,
1253 <citerefentry><refentrytitle>glGetTexImage</refentrytitle></citerefentry>,
1254 <citerefentry><refentrytitle>glGetTexLevelParameter</refentrytitle></citerefentry>,
1255 <citerefentry><refentrytitle>glGetTexParameter</refentrytitle></citerefentry>,
1256 <citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry>,
1257 <citerefentry><refentrytitle>glPushClientAttrib</refentrytitle></citerefentry>
1258 </para>
1259 </refsect1>
1260 <refsect1 id="Copyright"><title>Copyright</title>
1261 <para>
1262 Copyright <trademark class="copyright"></trademark> 1991-2006
1263 Silicon Graphics, Inc. This document is licensed under the SGI
1264 Free Software B License. For details, see
1265 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
1266 </para>
1267 </refsect1>
1268 </refentry>