GL_ARB_texture_rectangle enums (Andreas Stenglein)
[profile/ivi/mesa.git] / src / mesa / main / enums.c
1 /*
2  * Mesa 3-D graphics library
3  * Version:  6.3
4  *
5  * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a
8  * copy of this software and associated documentation files (the "Software"),
9  * to deal in the Software without restriction, including without limitation
10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11  * and/or sell copies of the Software, and to permit persons to whom the
12  * Software is furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included
15  * in all copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  *
24  * Author:
25  *    Keith Whitwell <keith@tungstengraphics.com>
26  */
27
28
29 #include "glheader.h"
30 #include "enums.h"
31 #include "imports.h"
32
33
34 typedef struct {
35    const char *c;
36    int n;
37 } enum_elt;
38
39 /**
40  * XXX We should auto-generate this with a Python script someday.
41  */
42 static enum_elt all_enums[] =
43 {
44    /* Boolean values */
45    { "GL_FALSE", 0 },
46    { "GL_TRUE", 1 },
47
48    /* Data types */
49    { "GL_BYTE", 0x1400 },
50    { "GL_UNSIGNED_BYTE", 0x1401 },
51    { "GL_SHORT", 0x1402 },
52    { "GL_UNSIGNED_SHORT", 0x1403 },
53    { "GL_INT", 0x1404 },
54    { "GL_UNSIGNED_INT", 0x1405 },
55    { "GL_FLOAT", 0x1406 },
56    { "GL_DOUBLE", 0x140A },
57    { "GL_2_BYTES", 0x1407 },
58    { "GL_3_BYTES", 0x1408 },
59    { "GL_4_BYTES", 0x1409 },
60
61    /* Primitives */
62    { "GL_LINES", 0x0001 },
63    { "GL_POINTS", 0x0000 },
64    { "GL_LINE_STRIP", 0x0003 },
65    { "GL_LINE_LOOP", 0x0002 },
66    { "GL_TRIANGLES", 0x0004 },
67    { "GL_TRIANGLE_STRIP", 0x0005 },
68    { "GL_TRIANGLE_FAN", 0x0006 },
69    { "GL_QUADS", 0x0007 },
70    { "GL_QUAD_STRIP", 0x0008 },
71    { "GL_POLYGON", 0x0009 },
72    { "GL_EDGE_FLAG", 0x0B43 },
73
74    /* Vertex Arrays */
75    { "GL_VERTEX_ARRAY", 0x8074 },
76    { "GL_NORMAL_ARRAY", 0x8075 },
77    { "GL_COLOR_ARRAY", 0x8076 },
78    { "GL_INDEX_ARRAY", 0x8077 },
79    { "GL_TEXTURE_COORD_ARRAY", 0x8078 },
80    { "GL_EDGE_FLAG_ARRAY", 0x8079 },
81    { "GL_VERTEX_ARRAY_SIZE", 0x807A },
82    { "GL_VERTEX_ARRAY_TYPE", 0x807B },
83    { "GL_VERTEX_ARRAY_STRIDE", 0x807C },
84    { "GL_NORMAL_ARRAY_TYPE", 0x807E },
85    { "GL_NORMAL_ARRAY_STRIDE", 0x807F },
86    { "GL_COLOR_ARRAY_SIZE", 0x8081 },
87    { "GL_COLOR_ARRAY_TYPE", 0x8082 },
88    { "GL_COLOR_ARRAY_STRIDE", 0x8083 },
89    { "GL_INDEX_ARRAY_TYPE", 0x8085 },
90    { "GL_INDEX_ARRAY_STRIDE", 0x8086 },
91    { "GL_TEXTURE_COORD_ARRAY_SIZE", 0x8088 },
92    { "GL_TEXTURE_COORD_ARRAY_TYPE", 0x8089 },
93    { "GL_TEXTURE_COORD_ARRAY_STRIDE", 0x808A },
94    { "GL_EDGE_FLAG_ARRAY_STRIDE", 0x808C },
95    { "GL_VERTEX_ARRAY_POINTER", 0x808E },
96    { "GL_NORMAL_ARRAY_POINTER", 0x808F },
97    { "GL_COLOR_ARRAY_POINTER", 0x8090 },
98    { "GL_INDEX_ARRAY_POINTER", 0x8091 },
99    { "GL_TEXTURE_COORD_ARRAY_POINTER", 0x8092 },
100    { "GL_EDGE_FLAG_ARRAY_POINTER", 0x8093 },
101    { "GL_V2F", 0x2A20 },
102    { "GL_V3F", 0x2A21 },
103    { "GL_C4UB_V2F", 0x2A22 },
104    { "GL_C4UB_V3F", 0x2A23 },
105    { "GL_C3F_V3F", 0x2A24 },
106    { "GL_N3F_V3F", 0x2A25 },
107    { "GL_C4F_N3F_V3F", 0x2A26 },
108    { "GL_T2F_V3F", 0x2A27 },
109    { "GL_T4F_V4F", 0x2A28 },
110    { "GL_T2F_C4UB_V3F", 0x2A29 },
111    { "GL_T2F_C3F_V3F", 0x2A2A },
112    { "GL_T2F_N3F_V3F", 0x2A2B },
113    { "GL_T2F_C4F_N3F_V3F", 0x2A2C },
114    { "GL_T4F_C4F_N3F_V4F", 0x2A2D },
115
116    /* Matrix Mode */
117    { "GL_MATRIX_MODE", 0x0BA0 },
118    { "GL_MODELVIEW", 0x1700 },
119    { "GL_PROJECTION", 0x1701 },
120    { "GL_TEXTURE", 0x1702 },
121
122    /* Points */
123    { "GL_POINT_SMOOTH", 0x0B10 },
124    { "GL_POINT_SIZE", 0x0B11 },
125    { "GL_POINT_SIZE_GRANULARITY ", 0x0B13 },
126    { "GL_POINT_SIZE_RANGE", 0x0B12 },
127
128    /* Lines */
129    { "GL_LINE_SMOOTH", 0x0B20 },
130    { "GL_LINE_STIPPLE", 0x0B24 },
131    { "GL_LINE_STIPPLE_PATTERN", 0x0B25 },
132    { "GL_LINE_STIPPLE_REPEAT", 0x0B26 },
133    { "GL_LINE_WIDTH", 0x0B21 },
134    { "GL_LINE_WIDTH_GRANULARITY", 0x0B23 },
135    { "GL_LINE_WIDTH_RANGE", 0x0B22 },
136
137    /* Polygons */
138    { "GL_POINT", 0x1B00 },
139    { "GL_LINE", 0x1B01 },
140    { "GL_FILL", 0x1B02 },
141    { "GL_CCW", 0x0901 },
142    { "GL_CW", 0x0900 },
143    { "GL_FRONT", 0x0404 },
144    { "GL_BACK", 0x0405 },
145    { "GL_CULL_FACE", 0x0B44 },
146    { "GL_CULL_FACE_MODE", 0x0B45 },
147    { "GL_POLYGON_SMOOTH", 0x0B41 },
148    { "GL_POLYGON_STIPPLE", 0x0B42 },
149    { "GL_FRONT_FACE", 0x0B46 },
150    { "GL_POLYGON_MODE", 0x0B40 },
151    { "GL_POLYGON_OFFSET_FACTOR", 0x8038 },
152    { "GL_POLYGON_OFFSET_UNITS", 0x2A00 },
153    { "GL_POLYGON_OFFSET_POINT", 0x2A01 },
154    { "GL_POLYGON_OFFSET_LINE", 0x2A02 },
155    { "GL_POLYGON_OFFSET_FILL", 0x8037 },
156
157    /* Display Lists */
158    { "GL_COMPILE", 0x1300 },
159    { "GL_COMPILE_AND_EXECUTE", 0x1301 },
160    { "GL_LIST_BASE", 0x0B32 },
161    { "GL_LIST_INDEX", 0x0B33 },
162    { "GL_LIST_MODE", 0x0B30 },
163
164    /* Depth buffer */
165    { "GL_NEVER", 0x0200 },
166    { "GL_LESS", 0x0201 },
167    { "GL_GEQUAL", 0x0206 },
168    { "GL_LEQUAL", 0x0203 },
169    { "GL_GREATER", 0x0204 },
170    { "GL_NOTEQUAL", 0x0205 },
171    { "GL_EQUAL", 0x0202 },
172    { "GL_ALWAYS", 0x0207 },
173    { "GL_DEPTH_TEST", 0x0B71 },
174    { "GL_DEPTH_BITS", 0x0D56 },
175    { "GL_DEPTH_CLEAR_VALUE", 0x0B73 },
176    { "GL_DEPTH_FUNC", 0x0B74 },
177    { "GL_DEPTH_RANGE", 0x0B70 },
178    { "GL_DEPTH_WRITEMASK", 0x0B72 },
179    { "GL_DEPTH_COMPONENT", 0x1902 },
180
181    /* Lighting */
182    { "GL_LIGHTING", 0x0B50 },
183    { "GL_LIGHT0", 0x4000 },
184    { "GL_LIGHT1", 0x4001 },
185    { "GL_LIGHT2", 0x4002 },
186    { "GL_LIGHT3", 0x4003 },
187    { "GL_LIGHT4", 0x4004 },
188    { "GL_LIGHT5", 0x4005 },
189    { "GL_LIGHT6", 0x4006 },
190    { "GL_LIGHT7", 0x4007 },
191    { "GL_SPOT_EXPONENT", 0x1205 },
192    { "GL_SPOT_CUTOFF", 0x1206 },
193    { "GL_CONSTANT_ATTENUATION", 0x1207 },
194    { "GL_LINEAR_ATTENUATION", 0x1208 },
195    { "GL_QUADRATIC_ATTENUATION", 0x1209 },
196    { "GL_AMBIENT", 0x1200 },
197    { "GL_DIFFUSE", 0x1201 },
198    { "GL_SPECULAR", 0x1202 },
199    { "GL_SHININESS", 0x1601 },
200    { "GL_EMISSION", 0x1600 },
201    { "GL_POSITION", 0x1203 },
202    { "GL_SPOT_DIRECTION", 0x1204 },
203    { "GL_AMBIENT_AND_DIFFUSE", 0x1602 },
204    { "GL_COLOR_INDEXES", 0x1603 },
205    { "GL_LIGHT_MODEL_TWO_SIDE", 0x0B52 },
206    { "GL_LIGHT_MODEL_LOCAL_VIEWER", 0x0B51 },
207    { "GL_LIGHT_MODEL_AMBIENT", 0x0B53 },
208    { "GL_FRONT_AND_BACK", 0x0408 },
209    { "GL_SHADE_MODEL", 0x0B54 },
210    { "GL_FLAT", 0x1D00 },
211    { "GL_SMOOTH", 0x1D01 },
212    { "GL_COLOR_MATERIAL", 0x0B57 },
213    { "GL_COLOR_MATERIAL_FACE", 0x0B55 },
214    { "GL_COLOR_MATERIAL_PARAMETER", 0x0B56 },
215    { "GL_NORMALIZE", 0x0BA1 },
216
217    /* User clipping planes */
218    { "GL_CLIP_PLANE0", 0x3000 },
219    { "GL_CLIP_PLANE1", 0x3001 },
220    { "GL_CLIP_PLANE2", 0x3002 },
221    { "GL_CLIP_PLANE3", 0x3003 },
222    { "GL_CLIP_PLANE4", 0x3004 },
223    { "GL_CLIP_PLANE5", 0x3005 },
224
225    /* Accumulation buffer */
226    { "GL_ACCUM_RED_BITS", 0x0D58 },
227    { "GL_ACCUM_GREEN_BITS", 0x0D59 },
228    { "GL_ACCUM_BLUE_BITS", 0x0D5A },
229    { "GL_ACCUM_ALPHA_BITS", 0x0D5B },
230    { "GL_ACCUM_CLEAR_VALUE", 0x0B80 },
231    { "GL_ACCUM", 0x0100 },
232    { "GL_ADD", 0x0104 },
233    { "GL_LOAD", 0x0101 },
234    { "GL_MULT", 0x0103 },
235    { "GL_RETURN", 0x0102 },
236
237    /* Alpha testing */
238    { "GL_ALPHA_TEST", 0x0BC0 },
239    { "GL_ALPHA_TEST_REF", 0x0BC2 },
240    { "GL_ALPHA_TEST_FUNC", 0x0BC1 },
241
242    /* Blending */
243    { "GL_BLEND", 0x0BE2 },
244    { "GL_BLEND_SRC", 0x0BE1 },
245    { "GL_BLEND_DST", 0x0BE0 },
246    { "GL_ZERO", 0 },
247    { "GL_ONE", 1 },
248    { "GL_SRC_COLOR", 0x0300 },
249    { "GL_ONE_MINUS_SRC_COLOR", 0x0301 },
250    { "GL_DST_COLOR", 0x0306 },
251    { "GL_ONE_MINUS_DST_COLOR", 0x0307 },
252    { "GL_SRC_ALPHA", 0x0302 },
253    { "GL_ONE_MINUS_SRC_ALPHA", 0x0303 },
254    { "GL_DST_ALPHA", 0x0304 },
255    { "GL_ONE_MINUS_DST_ALPHA", 0x0305 },
256    { "GL_SRC_ALPHA_SATURATE", 0x0308 },
257    { "GL_CONSTANT_COLOR", 0x8001 },
258    { "GL_ONE_MINUS_CONSTANT_COLOR", 0x8002 },
259    { "GL_CONSTANT_ALPHA", 0x8003 },
260    { "GL_ONE_MINUS_CONSTANT_ALPHA", 0x8004 },
261
262    /* Render Mode */
263    { "GL_FEEDBACK", 0x1C01 },
264    { "GL_RENDER", 0x1C00 },
265    { "GL_SELECT", 0x1C02 },
266
267    /* Feedback */
268    { "GL_2D", 0x0600 },
269    { "GL_3D", 0x0601 },
270    { "GL_3D_COLOR", 0x0602 },
271    { "GL_3D_COLOR_TEXTURE", 0x0603 },
272    { "GL_4D_COLOR_TEXTURE", 0x0604 },
273    { "GL_POINT_TOKEN", 0x0701 },
274    { "GL_LINE_TOKEN", 0x0702 },
275    { "GL_LINE_RESET_TOKEN", 0x0707 },
276    { "GL_POLYGON_TOKEN", 0x0703 },
277    { "GL_BITMAP_TOKEN", 0x0704 },
278    { "GL_DRAW_PIXEL_TOKEN", 0x0705 },
279    { "GL_COPY_PIXEL_TOKEN", 0x0706 },
280    { "GL_PASS_THROUGH_TOKEN", 0x0700 },
281    { "GL_FEEDBACK_BUFFER_POINTER", 0x0DF0 },
282    { "GL_FEEDBACK_BUFFER_SIZE", 0x0DF1 },
283    { "GL_FEEDBACK_BUFFER_TYPE", 0x0DF2 },
284
285    /* Selection */
286    { "GL_SELECTION_BUFFER_POINTER", 0x0DF3 },
287    { "GL_SELECTION_BUFFER_SIZE", 0x0DF4 },
288
289    /* Fog */
290    { "GL_FOG", 0x0B60 },
291    { "GL_FOG_MODE", 0x0B65 },
292    { "GL_FOG_DENSITY", 0x0B62 },
293    { "GL_FOG_COLOR", 0x0B66 },
294    { "GL_FOG_INDEX", 0x0B61 },
295    { "GL_FOG_START", 0x0B63 },
296    { "GL_FOG_END", 0x0B64 },
297    { "GL_LINEAR", 0x2601 },
298    { "GL_EXP", 0x0800 },
299    { "GL_EXP2", 0x0801 },
300
301    /* Logic Ops */
302    { "GL_LOGIC_OP", 0x0BF1 },
303    { "GL_INDEX_LOGIC_OP", 0x0BF1 },
304    { "GL_COLOR_LOGIC_OP", 0x0BF2 },
305    { "GL_LOGIC_OP_MODE", 0x0BF0 },
306    { "GL_CLEAR", 0x1500 },
307    { "GL_SET", 0x150F },
308    { "GL_COPY", 0x1503 },
309    { "GL_COPY_INVERTED", 0x150C },
310    { "GL_NOOP", 0x1505 },
311    { "GL_INVERT", 0x150A },
312    { "GL_AND", 0x1501 },
313    { "GL_NAND", 0x150E },
314    { "GL_OR", 0x1507 },
315    { "GL_NOR", 0x1508 },
316    { "GL_XOR", 0x1506 },
317    { "GL_EQUIV", 0x1509 },
318    { "GL_AND_REVERSE", 0x1502 },
319    { "GL_AND_INVERTED", 0x1504 },
320    { "GL_OR_REVERSE", 0x150B },
321    { "GL_OR_INVERTED", 0x150D },
322
323    /* Stencil */
324    { "GL_STENCIL_TEST", 0x0B90 },
325    { "GL_STENCIL_WRITEMASK", 0x0B98 },
326    { "GL_STENCIL_BITS", 0x0D57 },
327    { "GL_STENCIL_FUNC", 0x0B92 },
328    { "GL_STENCIL_VALUE_MASK", 0x0B93 },
329    { "GL_STENCIL_REF", 0x0B97 },
330    { "GL_STENCIL_FAIL", 0x0B94 },
331    { "GL_STENCIL_PASS_DEPTH_PASS", 0x0B96 },
332    { "GL_STENCIL_PASS_DEPTH_FAIL", 0x0B95 },
333    { "GL_STENCIL_CLEAR_VALUE", 0x0B91 },
334    { "GL_STENCIL_INDEX", 0x1901 },
335    { "GL_KEEP", 0x1E00 },
336    { "GL_REPLACE", 0x1E01 },
337    { "GL_INCR", 0x1E02 },
338    { "GL_DECR", 0x1E03 },
339
340    /* Buffers, Pixel Drawing/Reading */
341    { "GL_NONE", 0 },
342    { "GL_LEFT", 0x0406 },
343    { "GL_RIGHT", 0x0407 },
344    { "GL_FRONT_LEFT", 0x0400 },
345    { "GL_FRONT_RIGHT", 0x0401 },
346    { "GL_BACK_LEFT", 0x0402 },
347    { "GL_BACK_RIGHT", 0x0403 },
348    { "GL_AUX0", 0x0409 },
349    { "GL_AUX1", 0x040A },
350    { "GL_AUX2", 0x040B },
351    { "GL_AUX3", 0x040C },
352    { "GL_COLOR_INDEX", 0x1900 },
353    { "GL_RED", 0x1903 },
354    { "GL_GREEN", 0x1904 },
355    { "GL_BLUE", 0x1905 },
356    { "GL_ALPHA", 0x1906 },
357    { "GL_LUMINANCE", 0x1909 },
358    { "GL_LUMINANCE_ALPHA", 0x190A },
359    { "GL_ALPHA_BITS", 0x0D55 },
360    { "GL_RED_BITS", 0x0D52 },
361    { "GL_GREEN_BITS", 0x0D53 },
362    { "GL_BLUE_BITS", 0x0D54 },
363    { "GL_INDEX_BITS", 0x0D51 },
364    { "GL_SUBPIXEL_BITS", 0x0D50 },
365    { "GL_AUX_BUFFERS", 0x0C00 },
366    { "GL_READ_BUFFER", 0x0C02 },
367    { "GL_DRAW_BUFFER", 0x0C01 },
368    { "GL_DOUBLEBUFFER", 0x0C32 },
369    { "GL_STEREO", 0x0C33 },
370    { "GL_BITMAP", 0x1A00 },
371    { "GL_COLOR", 0x1800 },
372    { "GL_DEPTH", 0x1801 },
373    { "GL_STENCIL", 0x1802 },
374    { "GL_DITHER", 0x0BD0 },
375    { "GL_RGB", 0x1907 },
376    { "GL_RGBA", 0x1908 },
377
378    /* Implementation limits */
379    { "GL_MAX_LIST_NESTING", 0x0B31 },
380    { "GL_MAX_ATTRIB_STACK_DEPTH", 0x0D35 },
381    { "GL_MAX_MODELVIEW_STACK_DEPTH", 0x0D36 },
382    { "GL_MAX_NAME_STACK_DEPTH", 0x0D37 },
383    { "GL_MAX_PROJECTION_STACK_DEPTH", 0x0D38 },
384    { "GL_MAX_TEXTURE_STACK_DEPTH", 0x0D39 },
385    { "GL_MAX_EVAL_ORDER", 0x0D30 },
386    { "GL_MAX_LIGHTS", 0x0D31 },
387    { "GL_MAX_CLIP_PLANES", 0x0D32 },
388    { "GL_MAX_TEXTURE_SIZE", 0x0D33 },
389    { "GL_MAX_PIXEL_MAP_TABLE", 0x0D34 },
390    { "GL_MAX_VIEWPORT_DIMS", 0x0D3A },
391    { "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", 0x0D3B },
392
393
394    { "GL_ATTRIB_STACK_DEPTH", 0x0BB0 },
395    { "GL_CLIENT_ATTRIB_STACK_DEPTH", 0x0BB1 },
396    { "GL_COLOR_CLEAR_VALUE", 0x0C22 },
397    { "GL_COLOR_WRITEMASK", 0x0C23 },
398    { "GL_CURRENT_INDEX", 0x0B01 },
399    { "GL_CURRENT_COLOR", 0x0B00 },
400    { "GL_CURRENT_NORMAL", 0x0B02 },
401    { "GL_CURRENT_RASTER_COLOR", 0x0B04 },
402    { "GL_CURRENT_RASTER_DISTANCE", 0x0B09 },
403    { "GL_CURRENT_RASTER_INDEX", 0x0B05 },
404    { "GL_CURRENT_RASTER_POSITION", 0x0B07 },
405    { "GL_CURRENT_RASTER_TEXTURE_COORDS", 0x0B06},
406    { "GL_CURRENT_RASTER_POSITION_VALID", 0x0B08 },
407    { "GL_CURRENT_TEXTURE_COORDS", 0x0B03 },
408    { "GL_INDEX_CLEAR_VALUE", 0x0C20 },
409    { "GL_INDEX_MODE", 0x0C30 },
410    { "GL_INDEX_WRITEMASK", 0x0C21 },
411    { "GL_MODELVIEW_MATRIX", 0x0BA6 },
412    { "GL_MODELVIEW_STACK_DEPTH", 0x0BA3 },
413    { "GL_NAME_STACK_DEPTH", 0x0D70 },
414    { "GL_PROJECTION_MATRIX", 0x0BA7 },
415    { "GL_PROJECTION_STACK_DEPTH", 0x0BA4 },
416    { "GL_RENDER_MODE", 0x0C40 },
417    { "GL_RGBA_MODE", 0x0C31 },
418    { "GL_TEXTURE_MATRIX", 0x0BA8 },
419    { "GL_TEXTURE_STACK_DEPTH", 0x0BA5 },
420    { "GL_VIEWPORT", 0x0BA2 },
421
422
423    /* Evaluators */
424    { "GL_AUTO_NORMAL", 0x0D80 },
425    { "GL_MAP1_COLOR_4", 0x0D90 },
426    { "GL_MAP1_GRID_DOMAIN", 0x0DD0 },
427    { "GL_MAP1_GRID_SEGMENTS", 0x0DD1 },
428    { "GL_MAP1_INDEX", 0x0D91 },
429    { "GL_MAP1_NORMAL", 0x0D92 },
430    { "GL_MAP1_TEXTURE_COORD_1", 0x0D93 },
431    { "GL_MAP1_TEXTURE_COORD_2", 0x0D94 },
432    { "GL_MAP1_TEXTURE_COORD_3", 0x0D95 },
433    { "GL_MAP1_TEXTURE_COORD_4", 0x0D96 },
434    { "GL_MAP1_VERTEX_3", 0x0D97 },
435    { "GL_MAP1_VERTEX_4", 0x0D98 },
436    { "GL_MAP2_COLOR_4", 0x0DB0 },
437    { "GL_MAP2_GRID_DOMAIN", 0x0DD2 },
438    { "GL_MAP2_GRID_SEGMENTS", 0x0DD3 },
439    { "GL_MAP2_INDEX", 0x0DB1 },
440    { "GL_MAP2_NORMAL", 0x0DB2 },
441    { "GL_MAP2_TEXTURE_COORD_1", 0x0DB3 },
442    { "GL_MAP2_TEXTURE_COORD_2", 0x0DB4 },
443    { "GL_MAP2_TEXTURE_COORD_3", 0x0DB5 },
444    { "GL_MAP2_TEXTURE_COORD_4", 0x0DB6 },
445    { "GL_MAP2_VERTEX_3", 0x0DB7 },
446    { "GL_MAP2_VERTEX_4", 0x0DB8 },
447    { "GL_COEFF", 0x0A00 },
448    { "GL_DOMAIN", 0x0A02 },
449    { "GL_ORDER", 0x0A01 },
450
451    /* Hints */
452    { "GL_FOG_HINT", 0x0C54 },
453    { "GL_LINE_SMOOTH_HINT", 0x0C52 },
454    { "GL_PERSPECTIVE_CORRECTION_HINT", 0x0C50 },
455    { "GL_POINT_SMOOTH_HINT", 0x0C51 },
456    { "GL_POLYGON_SMOOTH_HINT", 0x0C53 },
457    { "GL_DONT_CARE", 0x1100 },
458    { "GL_FASTEST", 0x1101 },
459    { "GL_NICEST", 0x1102 },
460
461    /* Scissor box */
462    { "GL_SCISSOR_TEST", 0x0C11 },
463    { "GL_SCISSOR_BOX", 0x0C10 },
464
465    /* Pixel Mode / Transfer */
466    { "GL_MAP_COLOR", 0x0D10 },
467    { "GL_MAP_STENCIL", 0x0D11 },
468    { "GL_INDEX_SHIFT", 0x0D12 },
469    { "GL_INDEX_OFFSET", 0x0D13 },
470    { "GL_RED_SCALE", 0x0D14 },
471    { "GL_RED_BIAS", 0x0D15 },
472    { "GL_GREEN_SCALE", 0x0D18 },
473    { "GL_GREEN_BIAS", 0x0D19 },
474    { "GL_BLUE_SCALE", 0x0D1A },
475    { "GL_BLUE_BIAS", 0x0D1B },
476    { "GL_ALPHA_SCALE", 0x0D1C },
477    { "GL_ALPHA_BIAS", 0x0D1D },
478    { "GL_DEPTH_SCALE", 0x0D1E },
479    { "GL_DEPTH_BIAS", 0x0D1F },
480    { "GL_PIXEL_MAP_S_TO_S_SIZE", 0x0CB1 },
481    { "GL_PIXEL_MAP_I_TO_I_SIZE", 0x0CB0 },
482    { "GL_PIXEL_MAP_I_TO_R_SIZE", 0x0CB2 },
483    { "GL_PIXEL_MAP_I_TO_G_SIZE", 0x0CB3 },
484    { "GL_PIXEL_MAP_I_TO_B_SIZE", 0x0CB4 },
485    { "GL_PIXEL_MAP_I_TO_A_SIZE", 0x0CB5 },
486    { "GL_PIXEL_MAP_R_TO_R_SIZE", 0x0CB6 },
487    { "GL_PIXEL_MAP_G_TO_G_SIZE", 0x0CB7 },
488    { "GL_PIXEL_MAP_B_TO_B_SIZE", 0x0CB8 },
489    { "GL_PIXEL_MAP_A_TO_A_SIZE", 0x0CB9 },
490    { "GL_PIXEL_MAP_S_TO_S", 0x0C71 },
491    { "GL_PIXEL_MAP_I_TO_I", 0x0C70 },
492    { "GL_PIXEL_MAP_I_TO_R", 0x0C72 },
493    { "GL_PIXEL_MAP_I_TO_G", 0x0C73 },
494    { "GL_PIXEL_MAP_I_TO_B", 0x0C74 },
495    { "GL_PIXEL_MAP_I_TO_A", 0x0C75 },
496    { "GL_PIXEL_MAP_R_TO_R", 0x0C76 },
497    { "GL_PIXEL_MAP_G_TO_G", 0x0C77 },
498    { "GL_PIXEL_MAP_B_TO_B", 0x0C78 },
499    { "GL_PIXEL_MAP_A_TO_A", 0x0C79 },
500    { "GL_PACK_ALIGNMENT", 0x0D05 },
501    { "GL_PACK_LSB_FIRST", 0x0D01 },
502    { "GL_PACK_ROW_LENGTH", 0x0D02 },
503    { "GL_PACK_SKIP_PIXELS", 0x0D04 },
504    { "GL_PACK_SKIP_ROWS", 0x0D03 },
505    { "GL_PACK_SWAP_BYTES", 0x0D00 },
506    { "GL_UNPACK_ALIGNMENT", 0x0CF5 },
507    { "GL_UNPACK_LSB_FIRST", 0x0CF1 },
508    { "GL_UNPACK_ROW_LENGTH", 0x0CF2 },
509    { "GL_UNPACK_SKIP_PIXELS", 0x0CF4 },
510    { "GL_UNPACK_SKIP_ROWS", 0x0CF3 },
511    { "GL_UNPACK_SWAP_BYTES", 0x0CF0 },
512    { "GL_ZOOM_X", 0x0D16 },
513    { "GL_ZOOM_Y", 0x0D17 },
514
515    /* Texture mapping */
516    { "GL_TEXTURE_ENV", 0x2300 },
517    { "GL_TEXTURE_ENV_MODE", 0x2200 },
518    { "GL_TEXTURE_1D", 0x0DE0 },
519    { "GL_TEXTURE_2D", 0x0DE1 },
520    { "GL_TEXTURE_WRAP_S", 0x2802 },
521    { "GL_TEXTURE_WRAP_T", 0x2803 },
522    { "GL_TEXTURE_MAG_FILTER", 0x2800 },
523    { "GL_TEXTURE_MIN_FILTER", 0x2801 },
524    { "GL_TEXTURE_ENV_COLOR", 0x2201 },
525    { "GL_TEXTURE_GEN_S", 0x0C60 },
526    { "GL_TEXTURE_GEN_T", 0x0C61 },
527    { "GL_TEXTURE_GEN_MODE", 0x2500 },
528    { "GL_TEXTURE_BORDER_COLOR", 0x1004 },
529    { "GL_TEXTURE_WIDTH", 0x1000 },
530    { "GL_TEXTURE_HEIGHT", 0x1001 },
531    { "GL_TEXTURE_BORDER", 0x1005 },
532    { "GL_TEXTURE_COMPONENTS", 0x1003 },
533    { "GL_TEXTURE_RED_SIZE", 0x805C },
534    { "GL_TEXTURE_GREEN_SIZE", 0x805D },
535    { "GL_TEXTURE_BLUE_SIZE", 0x805E },
536    { "GL_TEXTURE_ALPHA_SIZE", 0x805F },
537    { "GL_TEXTURE_LUMINANCE_SIZE", 0x8060 },
538    { "GL_TEXTURE_INTENSITY_SIZE", 0x8061 },
539    { "GL_NEAREST_MIPMAP_NEAREST", 0x2700 },
540    { "GL_NEAREST_MIPMAP_LINEAR", 0x2702 },
541    { "GL_LINEAR_MIPMAP_NEAREST", 0x2701 },
542    { "GL_LINEAR_MIPMAP_LINEAR", 0x2703 },
543    { "GL_OBJECT_LINEAR", 0x2401 },
544    { "GL_OBJECT_PLANE", 0x2501 },
545    { "GL_EYE_LINEAR", 0x2400 },
546    { "GL_EYE_PLANE", 0x2502 },
547    { "GL_SPHERE_MAP", 0x2402 },
548    { "GL_DECAL", 0x2101 },
549    { "GL_MODULATE", 0x2100 },
550    { "GL_NEAREST", 0x2600 },
551    { "GL_REPEAT", 0x2901 },
552    { "GL_CLAMP", 0x2900 },
553    { "GL_S", 0x2000 },
554    { "GL_T", 0x2001 },
555    { "GL_R", 0x2002 },
556    { "GL_Q", 0x2003 },
557    { "GL_TEXTURE_GEN_R", 0x0C62 },
558    { "GL_TEXTURE_GEN_Q", 0x0C63 },
559
560    /* GL 1.1 texturing */
561    { "GL_PROXY_TEXTURE_1D", 0x8063 },
562    { "GL_PROXY_TEXTURE_2D", 0x8064 },
563    { "GL_TEXTURE_PRIORITY", 0x8066 },
564    { "GL_TEXTURE_RESIDENT", 0x8067 },
565    { "GL_TEXTURE_BINDING_1D", 0x8068 },
566    { "GL_TEXTURE_BINDING_2D", 0x8069 },
567    { "GL_TEXTURE_INTERNAL_FORMAT", 0x1003 },
568
569    /* GL 1.2 texturing */
570    { "GL_PACK_SKIP_IMAGES", 0x806B },
571    { "GL_PACK_IMAGE_HEIGHT", 0x806C },
572    { "GL_UNPACK_SKIP_IMAGES", 0x806D },
573    { "GL_UNPACK_IMAGE_HEIGHT", 0x806E },
574    { "GL_TEXTURE_3D", 0x806F },
575    { "GL_PROXY_TEXTURE_3D", 0x8070 },
576    { "GL_TEXTURE_DEPTH", 0x8071 },
577    { "GL_TEXTURE_WRAP_R", 0x8072 },
578    { "GL_MAX_3D_TEXTURE_SIZE", 0x8073 },
579    { "GL_TEXTURE_BINDING_3D", 0x806A },
580
581    /* Internal texture formats (GL 1.1) */
582    { "GL_ALPHA4", 0x803B },
583    { "GL_ALPHA8", 0x803C },
584    { "GL_ALPHA12", 0x803D },
585    { "GL_ALPHA16", 0x803E },
586    { "GL_LUMINANCE4", 0x803F },
587    { "GL_LUMINANCE8", 0x8040 },
588    { "GL_LUMINANCE12", 0x8041 },
589    { "GL_LUMINANCE16", 0x8042 },
590    { "GL_LUMINANCE4_ALPHA4", 0x8043 },
591    { "GL_LUMINANCE6_ALPHA2", 0x8044 },
592    { "GL_LUMINANCE8_ALPHA8", 0x8045 },
593    { "GL_LUMINANCE12_ALPHA4", 0x8046 },
594    { "GL_LUMINANCE12_ALPHA12", 0x8047 },
595    { "GL_LUMINANCE16_ALPHA16", 0x8048 },
596    { "GL_INTENSITY", 0x8049 },
597    { "GL_INTENSITY4", 0x804A },
598    { "GL_INTENSITY8", 0x804B },
599    { "GL_INTENSITY12", 0x804C },
600    { "GL_INTENSITY16", 0x804D },
601    { "GL_R3_G3_B2", 0x2A10 },
602    { "GL_RGB4", 0x804F },
603    { "GL_RGB5", 0x8050 },
604    { "GL_RGB8", 0x8051 },
605    { "GL_RGB10", 0x8052 },
606    { "GL_RGB12", 0x8053 },
607    { "GL_RGB16", 0x8054 },
608    { "GL_RGBA2", 0x8055 },
609    { "GL_RGBA4", 0x8056 },
610    { "GL_RGB5_A1", 0x8057 },
611    { "GL_RGBA8", 0x8058 },
612    { "GL_RGB10_A2", 0x8059 },
613    { "GL_RGBA12", 0x805A },
614    { "GL_RGBA16", 0x805B },
615
616    /* Utility */
617    { "GL_VENDOR", 0x1F00 },
618    { "GL_RENDERER", 0x1F01 },
619    { "GL_VERSION", 0x1F02 },
620    { "GL_EXTENSIONS", 0x1F03 },
621
622    /* Errors */
623    { "GL_INVALID_VALUE", 0x0501 },
624    { "GL_INVALID_ENUM", 0x0500 },
625    { "GL_INVALID_OPERATION", 0x0502 },
626    { "GL_STACK_OVERFLOW", 0x0503 },
627    { "GL_STACK_UNDERFLOW", 0x0504 },
628    { "GL_OUT_OF_MEMORY", 0x0505 },
629
630    /*
631     * Extensions
632     */
633
634    { "GL_CONSTANT_COLOR_EXT", 0x8001 },
635    { "GL_ONE_MINUS_CONSTANT_COLOR_EXT", 0x8002 },
636    { "GL_CONSTANT_ALPHA_EXT", 0x8003 },
637    { "GL_ONE_MINUS_CONSTANT_ALPHA_EXT", 0x8004 },
638    { "GL_BLEND_EQUATION_EXT", 0x8009 },
639    { "GL_MIN_EXT", 0x8007 },
640    { "GL_MAX_EXT", 0x8008 },
641    { "GL_FUNC_ADD_EXT", 0x8006 },
642    { "GL_FUNC_SUBTRACT_EXT", 0x800A },
643    { "GL_FUNC_REVERSE_SUBTRACT_EXT", 0x800B },
644    { "GL_BLEND_COLOR_EXT", 0x8005 },
645
646    { "GL_POLYGON_OFFSET_EXT", 0x8037 },
647    { "GL_POLYGON_OFFSET_FACTOR_EXT", 0x8038 },
648    { "GL_POLYGON_OFFSET_BIAS_EXT", 0x8039 },
649
650
651    { "GL_VERTEX_ARRAY_EXT", 0x8074 },
652    { "GL_NORMAL_ARRAY_EXT", 0x8075 },
653    { "GL_COLOR_ARRAY_EXT", 0x8076 },
654    { "GL_INDEX_ARRAY_EXT", 0x8077 },
655    { "GL_TEXTURE_COORD_ARRAY_EXT", 0x8078 },
656    { "GL_EDGE_FLAG_ARRAY_EXT", 0x8079 },
657    { "GL_VERTEX_ARRAY_SIZE_EXT", 0x807A },
658    { "GL_VERTEX_ARRAY_TYPE_EXT", 0x807B },
659    { "GL_VERTEX_ARRAY_STRIDE_EXT", 0x807C },
660    { "GL_VERTEX_ARRAY_COUNT_EXT", 0x807D },
661    { "GL_NORMAL_ARRAY_TYPE_EXT", 0x807E },
662    { "GL_NORMAL_ARRAY_STRIDE_EXT", 0x807F },
663    { "GL_NORMAL_ARRAY_COUNT_EXT", 0x8080 },
664    { "GL_COLOR_ARRAY_SIZE_EXT", 0x8081 },
665    { "GL_COLOR_ARRAY_TYPE_EXT", 0x8082 },
666    { "GL_COLOR_ARRAY_STRIDE_EXT", 0x8083 },
667    { "GL_COLOR_ARRAY_COUNT_EXT", 0x8084 },
668    { "GL_INDEX_ARRAY_TYPE_EXT", 0x8085 },
669    { "GL_INDEX_ARRAY_STRIDE_EXT", 0x8086 },
670    { "GL_INDEX_ARRAY_COUNT_EXT", 0x8087 },
671    { "GL_TEXTURE_COORD_ARRAY_SIZE_EXT", 0x8088 },
672    { "GL_TEXTURE_COORD_ARRAY_TYPE_EXT", 0x8089 },
673    { "GL_TEXTURE_COORD_ARRAY_STRIDE_EXT", 0x808A },
674    { "GL_TEXTURE_COORD_ARRAY_COUNT_EXT", 0x808B },
675    { "GL_EDGE_FLAG_ARRAY_STRIDE_EXT", 0x808C },
676    { "GL_EDGE_FLAG_ARRAY_COUNT_EXT", 0x808D },
677    { "GL_VERTEX_ARRAY_POINTER_EXT", 0x808E },
678    { "GL_NORMAL_ARRAY_POINTER_EXT", 0x808F },
679    { "GL_COLOR_ARRAY_POINTER_EXT", 0x8090 },
680    { "GL_INDEX_ARRAY_POINTER_EXT", 0x8091 },
681    { "GL_TEXTURE_COORD_ARRAY_POINTER_EXT", 0x8092 },
682    { "GL_EDGE_FLAG_ARRAY_POINTER_EXT", 0x8093 },
683
684    { "GL_TEXTURE_PRIORITY_EXT", 0x8066 },
685    { "GL_TEXTURE_RESIDENT_EXT", 0x8067 },
686    { "GL_TEXTURE_1D_BINDING_EXT", 0x8068 },
687    { "GL_TEXTURE_2D_BINDING_EXT", 0x8069 },
688
689    { "GL_PACK_SKIP_IMAGES_EXT", 0x806B },
690    { "GL_PACK_IMAGE_HEIGHT_EXT", 0x806C },
691    { "GL_UNPACK_SKIP_IMAGES_EXT", 0x806D },
692    { "GL_UNPACK_IMAGE_HEIGHT_EXT", 0x806E },
693    { "GL_TEXTURE_3D_EXT", 0x806F },
694    { "GL_PROXY_TEXTURE_3D_EXT", 0x8070 },
695    { "GL_TEXTURE_DEPTH_EXT", 0x8071 },
696    { "GL_TEXTURE_WRAP_R_EXT", 0x8072 },
697    { "GL_MAX_3D_TEXTURE_SIZE_EXT", 0x8073 },
698    { "GL_TEXTURE_3D_BINDING_EXT", 0x806A },
699
700    { "GL_TABLE_TOO_LARGE_EXT", 0x8031 },
701    { "GL_COLOR_TABLE_FORMAT_EXT", 0x80D8 },
702    { "GL_COLOR_TABLE_WIDTH_EXT", 0x80D9 },
703    { "GL_COLOR_TABLE_RED_SIZE_EXT", 0x80DA },
704    { "GL_COLOR_TABLE_GREEN_SIZE_EXT", 0x80DB },
705    { "GL_COLOR_TABLE_BLUE_SIZE_EXT", 0x80DC },
706    { "GL_COLOR_TABLE_ALPHA_SIZE_EXT", 0x80DD },
707    { "GL_COLOR_TABLE_LUMINANCE_SIZE_EXT", 0x80DE },
708    { "GL_COLOR_TABLE_INTENSITY_SIZE_EXT", 0x80DF },
709    { "GL_TEXTURE_INDEX_SIZE_EXT", 0x80ED },
710    { "GL_COLOR_INDEX1_EXT", 0x80E2 },
711    { "GL_COLOR_INDEX2_EXT", 0x80E3 },
712    { "GL_COLOR_INDEX4_EXT", 0x80E4 },
713    { "GL_COLOR_INDEX8_EXT", 0x80E5 },
714    { "GL_COLOR_INDEX12_EXT", 0x80E6 },
715    { "GL_COLOR_INDEX16_EXT", 0x80E7 },
716
717    { "GL_SHARED_TEXTURE_PALETTE_EXT", 0x81FB },
718
719    { "GL_POINT_SIZE_MIN_EXT", 0x8126 },
720    { "GL_POINT_SIZE_MAX_EXT", 0x8127 },
721    { "GL_POINT_FADE_THRESHOLD_SIZE_EXT", 0x8128 },
722    { "GL_DISTANCE_ATTENUATION_EXT", 0x8129 },
723
724    { "GL_RESCALE_NORMAL_EXT", 0x803A },
725
726    { "GL_ABGR_EXT", 0x8000 },
727
728    { "GL_INCR_WRAP_EXT", 0x8507 },
729    { "GL_DECR_WRAP_EXT", 0x8508 },
730
731    { "GL_CLAMP_TO_EDGE_SGIS", 0x812F },
732
733    { "GL_BLEND_DST_RGB_INGR", 0x80C8 },
734    { "GL_BLEND_SRC_RGB_INGR", 0x80C9 },
735    { "GL_BLEND_DST_ALPHA_INGR", 0x80CA },
736    { "GL_BLEND_SRC_ALPHA_INGR", 0x80CB },
737
738    { "GL_RESCALE_NORMAL", 0x803A },
739    { "GL_CLAMP_TO_EDGE", 0x812F },
740    { "GL_MAX_ELEMENTS_VERTICES", 0xF0E8 },
741    { "GL_MAX_ELEMENTS_INDICES", 0xF0E9 },
742    { "GL_BGR", 0x80E0 },
743    { "GL_BGRA", 0x80E1 },
744    { "GL_UNSIGNED_BYTE_3_3_2", 0x8032 },
745    { "GL_UNSIGNED_BYTE_2_3_3_REV", 0x8362 },
746    { "GL_UNSIGNED_SHORT_5_6_5", 0x8363 },
747    { "GL_UNSIGNED_SHORT_5_6_5_REV", 0x8364 },
748    { "GL_UNSIGNED_SHORT_4_4_4_4", 0x8033 },
749    { "GL_UNSIGNED_SHORT_4_4_4_4_REV", 0x8365 },
750    { "GL_UNSIGNED_SHORT_5_5_5_1", 0x8034 },
751    { "GL_UNSIGNED_SHORT_1_5_5_5_REV", 0x8366 },
752    { "GL_UNSIGNED_INT_8_8_8_8", 0x8035 },
753    { "GL_UNSIGNED_INT_8_8_8_8_REV", 0x8367 },
754    { "GL_UNSIGNED_INT_10_10_10_2", 0x8036 },
755    { "GL_UNSIGNED_INT_2_10_10_10_REV", 0x8368 },
756    { "GL_LIGHT_MODEL_COLOR_CONTROL", 0x81F8 },
757    { "GL_SINGLE_COLOR", 0x81F9 },
758    { "GL_SEPARATE_SPECULAR_COLOR", 0x81FA },
759    { "GL_TEXTURE_MIN_LOD", 0x813A },
760    { "GL_TEXTURE_MAX_LOD", 0x813B },
761    { "GL_TEXTURE_BASE_LEVEL", 0x813C },
762    { "GL_TEXTURE_MAX_LEVEL", 0x813D },
763
764    { "GL_TEXTURE0_ARB", 0x84C0 },
765    { "GL_TEXTURE1_ARB", 0x84C1 },
766    { "GL_TEXTURE2_ARB", 0x84C2 },
767    { "GL_TEXTURE3_ARB", 0x84C3 },
768    { "GL_TEXTURE4_ARB", 0x84C4 },
769    { "GL_TEXTURE5_ARB", 0x84C5 },
770    { "GL_ACTIVE_TEXTURE_ARB", 0x84E0 },
771    { "GL_CLIENT_ACTIVE_TEXTURE_ARB", 0x84E1 },
772    { "GL_MAX_TEXTURE_UNITS_ARB", 0x84E2 },
773
774    { "GL_OCCLUSION_TEST_HP", 0x8165 },
775    { "GL_OCCLUSION_TEST_RESULT_HP", 0x8166 },
776
777    { "GL_TEXTURE_FILTER_CONTROL_EXT", 0x8500 },
778    { "GL_TEXTURE_LOD_BIAS_EXT", 0x8501 },
779
780    /* GL_ARB_texture_cube_map */
781    { "GL_NORMAL_MAP_ARB", 0x8511 },
782    { "GL_REFLECTION_MAP_ARB", 0x8512 },
783    { "GL_TEXTURE_CUBE_MAP_ARB", 0x8513 },
784    { "GL_TEXTURE_BINDING_CUBE_MAP_ARB", 0x8514 },
785    { "GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB", 0x8515 },
786    { "GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB", 0x8516 },
787    { "GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB", 0x8517 },
788    { "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB", 0x8518 },
789    { "GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB", 0x8519 },
790    { "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB", 0x851a },
791    { "GL_PROXY_TEXTURE_CUBE_MAP_ARB", 0x851b },
792    { "GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB", 0x851c },
793
794    { "GL_PREFER_DOUBLEBUFFER_HINT_PGI", 107000 },
795    { "GL_STRICT_DEPTHFUNC_HINT_PGI", 107030 },
796    { "GL_STRICT_LIGHTING_HINT_PGI", 107031 },
797    { "GL_STRICT_SCISSOR_HINT_PGI", 107032 },
798    { "GL_FULL_STIPPLE_HINT_PGI", 107033 },
799    { "GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI", 107011 },
800    { "GL_NATIVE_GRAPHICS_END_HINT_PGI", 107012 },
801    { "GL_CONSERVE_MEMORY_HINT_PGI", 107005 },
802    { "GL_RECLAIM_MEMORY_HINT_PGI", 107006 },
803    { "GL_ALWAYS_FAST_HINT_PGI", 107020 },
804    { "GL_ALWAYS_SOFT_HINT_PGI", 107021 },
805    { "GL_ALLOW_DRAW_OBJ_HINT_PGI", 107022 },
806    { "GL_ALLOW_DRAW_WIN_HINT_PGI", 107023 },
807    { "GL_ALLOW_DRAW_FRG_HINT_PGI", 107024 },
808    { "GL_ALLOW_DRAW_SPN_HINT_PGI", 107024 },
809    { "GL_ALLOW_DRAW_MEM_HINT_PGI", 107025 },
810    { "GL_CLIP_NEAR_HINT_PGI", 107040 },
811    { "GL_CLIP_FAR_HINT_PGI", 107041 },
812    { "GL_WIDE_LINE_HINT_PGI", 107042 },
813    { "GL_BACK_NORMALS_HINT_PGI", 107043 },
814    { "GL_NATIVE_GRAPHICS_HANDLE_PGI", 107010 },
815
816    /* GL_EXT_compiled_vertex_array */
817    { "GL_ARRAY_ELEMENT_LOCK_FIRST_EXT", 0x81A8},
818    { "GL_ARRAY_ELEMENT_LOCK_COUNT_EXT", 0x81A9},
819
820    /* GL_EXT_clip_volume_hint */
821    { "GL_CLIP_VOLUME_CLIPPING_HINT_EXT", 0x80F0},
822
823    /* GL_EXT_texture_env_combine */
824    { "GL_COMBINE_EXT", 0x8570 },
825    { "GL_COMBINE_RGB_EXT", 0x8571 },
826    { "GL_COMBINE_ALPHA_EXT", 0x8572 },
827    { "GL_SOURCE0_RGB_EXT", 0x8580 },
828    { "GL_SOURCE1_RGB_EXT", 0x8581 },
829    { "GL_SOURCE2_RGB_EXT", 0x8582 },
830    { "GL_SOURCE0_ALPHA_EXT", 0x8588 },
831    { "GL_SOURCE1_ALPHA_EXT", 0x8589 },
832    { "GL_SOURCE2_ALPHA_EXT", 0x858A },
833    { "GL_OPERAND0_RGB_EXT", 0x8590 },
834    { "GL_OPERAND1_RGB_EXT", 0x8591 },
835    { "GL_OPERAND2_RGB_EXT", 0x8592 },
836    { "GL_OPERAND0_ALPHA_EXT", 0x8598 },
837    { "GL_OPERAND1_ALPHA_EXT", 0x8599 },
838    { "GL_OPERAND2_ALPHA_EXT", 0x859A },
839    { "GL_RGB_SCALE_EXT", 0x8573 },
840    { "GL_ADD_SIGNED_EXT", 0x8574 },
841    { "GL_INTERPOLATE_EXT", 0x8575 },
842    { "GL_CONSTANT_EXT", 0x8576 },
843    { "GL_PRIMARY_COLOR_EXT", 0x8577 },
844    { "GL_PREVIOUS_EXT", 0x8578 },
845
846    /* GL_ARB_texture_env_combine */
847    { "GL_SUBTRACT_ARB", 0x84E7 },
848
849    /* GL_EXT_texture_env_dot3 */
850    { "GL_DOT3_RGB_EXT", 0x8740 },
851    { "GL_DOT3_RGBA_EXT", 0x8741 },
852
853    /* GL_ARB_texture_env_dot3 */
854    { "GL_DOT3_RGB_ARB", 0x86ae },
855    { "GL_DOT3_RGBA_ARB", 0x86af },
856
857    /* GL_ARB_texture_border_clamp */
858    { "GL_CLAMP_TO_BORDER_ARB", 0x812D },
859
860    /* GL_ATI_texture_env_combine3 */
861    { "GL_MODULATE_ADD_ATI", 0x8744 },
862    { "GL_MODULATE_SIGNED_ADD_ATI", 0x8745 },
863    { "GL_MODULATE_SUBTRACT_ATI", 0x8746 },
864
865    /* GL_ARB_texture_compression */
866    { "GL_COMPRESSED_ALPHA_ARB", 0x84E9 },
867    { "GL_COMPRESSED_LUMINANCE_ARB", 0x84EA },
868    { "GL_COMPRESSED_LUMINANCE_ALPHA_ARB", 0x84EB },
869    { "GL_COMPRESSED_INTENSITY_ARB", 0x84EC },
870    { "GL_COMPRESSED_RGB_ARB", 0x84ED },
871    { "GL_COMPRESSED_RGBA_ARB", 0x84EE },
872    { "GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB", 0x86A0 },
873    { "GL_TEXTURE_COMPRESSED_ARB", 0x86A1 },
874    { "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB", 0x86A2 },
875    { "GL_COMPRESSED_TEXTURE_FORMATS_ARB", 0x86A3 },
876
877    /* GL_EXT_texture_compression_s3tc */
878    { "GL_COMPRESSED_RGB_S3TC_DXT1_EXT", 0x83F0 },
879    { "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT", 0x83F1 },
880    { "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT", 0x83F2 },
881    { "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT", 0x83F3 },
882
883    /* GL_S3_s3tc */
884    { "GL_RGB_S3TC", 0x83A0 },
885    { "GL_RGB4_S3TC", 0x83A1 },
886    { "GL_RGBA_S3TC", 0x83A2 },
887    { "GL_RGBA4_S3TC", 0x83A3 },
888
889    /* GL_3DFX_texture_compression_FXT1 */
890    { "GL_COMPRESSED_RGB_FXT1_3DFX", 0x86B0 },
891    { "GL_COMPRESSED_RGBA_FXT1_3DFX", 0x86B1 },
892
893    /* GL_ATI_fragment_shader */
894    { "GL_REG_0_ATI", 0x8921 },
895    { "GL_REG_1_ATI", 0x8922 },
896    { "GL_REG_2_ATI", 0x8923 },
897    { "GL_REG_3_ATI", 0x8924 },
898    { "GL_REG_4_ATI", 0x8925 },
899    { "GL_REG_5_ATI", 0x8926 },
900
901    { "GL_CON_0_ATI", 0x8941 },
902    { "GL_CON_1_ATI", 0x8942 },
903    { "GL_CON_2_ATI", 0x8943 },
904    { "GL_CON_3_ATI", 0x8944 },
905    { "GL_CON_4_ATI", 0x8945 },
906    { "GL_CON_5_ATI", 0x8946 },
907    { "GL_CON_6_ATI", 0x8947 },
908    { "GL_CON_7_ATI", 0x8948 },
909
910    { "GL_MOV_ATI", 0x8961 },
911    { "GL_ADD_ATI", 0x8963 },
912    { "GL_MUL_ATI", 0x8964 },
913    { "GL_SUB_ATI", 0x8965 },
914    { "GL_DOT3_ATI", 0x8966 },
915    { "GL_DOT4_ATI", 0x8967 },
916         
917    { "GL_MAD_ATI", 0x8968 },
918    { "GL_LERP_ATI", 0x8969 },
919    { "GL_CND_ATI", 0x896A },
920    { "GL_CND0_ATI", 0x896B },
921    { "GL_DOT2_ADD_ATI", 0x896C },
922    { "GL_SECONDARY_INTERPOLATER_ATI", 0x896D },
923
924    { "SWIZZLE_STR_ATI", 0x8976 },
925    { "SWIZZLE_STQ_ATI", 0x8977 },
926    { "SWIZZLE_STR_DR_ATI", 0x8978 },
927    { "SWIZZLE_STQ_DQ_ATI", 0x8979 },
928
929    /* GL_ARB_texture_rectangle */
930    { "GL_TEXTURE_RECTANGLE_ARB", 0x84F5 },
931    { "GL_TEXTURE_BINDING_RECTANGLE_ARB", 0x84F6 },
932    { "GL_PROXY_TEXTURE_RECTANGLE_ARB", 0x84F7 },
933    { "GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB", 0x84F8 },
934 };
935
936 #define Elements(x) sizeof(x)/sizeof(*x)
937
938 typedef int (*cfunc)(const void *, const void *);
939
940 static enum_elt **index1 = 0;
941 static int sorted = 0;
942
943 static int compar_name( const enum_elt *a, const enum_elt *b )
944 {
945    return _mesa_strcmp(a->c, b->c);
946 }
947
948
949 /* note the extra level of indirection
950  */
951 static int compar_nr( const enum_elt **a, const enum_elt **b )
952 {
953    return (*a)->n - (*b)->n;
954 }
955
956
957 static void sort_enums( void )
958 {
959    GLuint i;
960    index1 = (enum_elt **)MALLOC( Elements(all_enums) * sizeof(enum_elt *) );
961    sorted = 1;
962
963    if (!index1)
964       return;  /* what else can we do? */
965
966    qsort( all_enums, Elements(all_enums), sizeof(*all_enums),
967           (cfunc) compar_name );
968
969    for (i = 0 ; i < Elements(all_enums) ; i++)
970       index1[i] = &all_enums[i];
971
972    qsort( index1, Elements(all_enums), sizeof(*index1), (cfunc) compar_nr );
973 }
974
975
976
977 int _mesa_lookup_enum_by_name( const char *symbol )
978 {
979    enum_elt tmp;
980    enum_elt *e;
981
982    if (!sorted)
983       sort_enums();
984
985    if (!symbol)
986       return 0;
987
988    tmp.c = symbol;
989    e = (enum_elt *)bsearch( &tmp, all_enums, Elements(all_enums),
990                             sizeof(*all_enums), (cfunc) compar_name );
991
992    return e ? e->n : -1;
993 }
994
995
996 static char token_tmp[20];
997
998 const char *_mesa_lookup_enum_by_nr( int nr )
999 {
1000    enum_elt tmp, *e, **f;
1001
1002    if (!sorted)
1003       sort_enums();
1004
1005    tmp.n = nr;
1006    e = &tmp;
1007
1008    f = (enum_elt **)bsearch( &e, index1, Elements(all_enums),
1009                              sizeof(*index1), (cfunc) compar_nr );
1010
1011    if (f) {
1012       return (*f)->c;
1013    }
1014    else {
1015       /* this isn't re-entrant safe, no big deal here */
1016       _mesa_sprintf(token_tmp, "0x%x", nr);
1017       return token_tmp;
1018    }
1019 }