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