st/xorg: Include cursorstr.h
[mesa.git] / progs / util / dumpstate.c
1
2 /*
3 *
4 * From: Stephane Rehel <rehel@worldnet.fr>
5 * Date: Mon, 31 May 1999 18:40:54 -0400
6 * To: Paul Brian <brianp@ra.avid.com>
7 * Subject: OpenGL State Dump Function
8 *
9 * Here is a function that dumps the current OpenGL state. I wrote it
10 * some time ago.
11 *
12 * In the attachment:
13 * + the code itself
14 * + its output
15 *
16 * I think Mesa is wrong on some getBooleanv(). For example, GL_VERTEX_ARRAY
17 * is queried by IsEnabled() (cf. p. 196 of the spec). But on page 193
18 * we can read that all the boolean attribs that can be queried by IsEnabled()
19 * can also be queried by IsEnabled().
20 *
21 * I had duplicated all the enums (LOCAL_*) so that the code can run on any
22 * OpenGL version, even if an enum is not recognized.
23 *
24 * The code can be shipped in the public domain.
25 *
26 * Stephane.
27 */
28
29
30 /*
31 * Stephane Rehel
32 * Creation: February 5 1999
33 */
34
35 #include <stdio.h>
36 #include <GL/gl.h>
37
38 /***************************************************************************/
39
40 enum {
41 /* Data types */
42 LOCAL_GL_BYTE = 0x1400,
43 LOCAL_GL_UNSIGNED_BYTE = 0x1401,
44 LOCAL_GL_SHORT = 0x1402,
45 LOCAL_GL_UNSIGNED_SHORT = 0x1403,
46 LOCAL_GL_INT = 0x1404,
47 LOCAL_GL_UNSIGNED_INT = 0x1405,
48 LOCAL_GL_FLOAT = 0x1406,
49 LOCAL_GL_DOUBLE = 0x140A,
50 LOCAL_GL_2_BYTES = 0x1407,
51 LOCAL_GL_3_BYTES = 0x1408,
52 LOCAL_GL_4_BYTES = 0x1409,
53
54 /* Primitives */
55 LOCAL_GL_LINES = 0x0001,
56 LOCAL_GL_POINTS = 0x0000,
57 LOCAL_GL_LINE_STRIP = 0x0003,
58 LOCAL_GL_LINE_LOOP = 0x0002,
59 LOCAL_GL_TRIANGLES = 0x0004,
60 LOCAL_GL_TRIANGLE_STRIP = 0x0005,
61 LOCAL_GL_TRIANGLE_FAN = 0x0006,
62 LOCAL_GL_QUADS = 0x0007,
63 LOCAL_GL_QUAD_STRIP = 0x0008,
64 LOCAL_GL_POLYGON = 0x0009,
65 LOCAL_GL_EDGE_FLAG = 0x0B43,
66
67 /* Vertex Arrays */
68 LOCAL_GL_VERTEX_ARRAY = 0x8074,
69 LOCAL_GL_NORMAL_ARRAY = 0x8075,
70 LOCAL_GL_COLOR_ARRAY = 0x8076,
71 LOCAL_GL_INDEX_ARRAY = 0x8077,
72 LOCAL_GL_TEXTURE_COORD_ARRAY = 0x8078,
73 LOCAL_GL_EDGE_FLAG_ARRAY = 0x8079,
74 LOCAL_GL_VERTEX_ARRAY_SIZE = 0x807A,
75 LOCAL_GL_VERTEX_ARRAY_TYPE = 0x807B,
76 LOCAL_GL_VERTEX_ARRAY_STRIDE = 0x807C,
77 LOCAL_GL_NORMAL_ARRAY_TYPE = 0x807E,
78 LOCAL_GL_NORMAL_ARRAY_STRIDE = 0x807F,
79 LOCAL_GL_COLOR_ARRAY_SIZE = 0x8081,
80 LOCAL_GL_COLOR_ARRAY_TYPE = 0x8082,
81 LOCAL_GL_COLOR_ARRAY_STRIDE = 0x8083,
82 LOCAL_GL_INDEX_ARRAY_TYPE = 0x8085,
83 LOCAL_GL_INDEX_ARRAY_STRIDE = 0x8086,
84 LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088,
85 LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089,
86 LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A,
87 LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C,
88 LOCAL_GL_VERTEX_ARRAY_POINTER = 0x808E,
89 LOCAL_GL_NORMAL_ARRAY_POINTER = 0x808F,
90 LOCAL_GL_COLOR_ARRAY_POINTER = 0x8090,
91 LOCAL_GL_INDEX_ARRAY_POINTER = 0x8091,
92 LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092,
93 LOCAL_GL_EDGE_FLAG_ARRAY_POINTER = 0x8093,
94 LOCAL_GL_V2F = 0x2A20,
95 LOCAL_GL_V3F = 0x2A21,
96 LOCAL_GL_C4UB_V2F = 0x2A22,
97 LOCAL_GL_C4UB_V3F = 0x2A23,
98 LOCAL_GL_C3F_V3F = 0x2A24,
99 LOCAL_GL_N3F_V3F = 0x2A25,
100 LOCAL_GL_C4F_N3F_V3F = 0x2A26,
101 LOCAL_GL_T2F_V3F = 0x2A27,
102 LOCAL_GL_T4F_V4F = 0x2A28,
103 LOCAL_GL_T2F_C4UB_V3F = 0x2A29,
104 LOCAL_GL_T2F_C3F_V3F = 0x2A2A,
105 LOCAL_GL_T2F_N3F_V3F = 0x2A2B,
106 LOCAL_GL_T2F_C4F_N3F_V3F = 0x2A2C,
107 LOCAL_GL_T4F_C4F_N3F_V4F = 0x2A2D,
108
109 /* Matrix Mode */
110 LOCAL_GL_MATRIX_MODE = 0x0BA0,
111 LOCAL_GL_MODELVIEW = 0x1700,
112 LOCAL_GL_PROJECTION = 0x1701,
113 LOCAL_GL_TEXTURE = 0x1702,
114
115 /* Points */
116 LOCAL_GL_POINT_SMOOTH = 0x0B10,
117 LOCAL_GL_POINT_SIZE = 0x0B11,
118 LOCAL_GL_POINT_SIZE_GRANULARITY = 0x0B13,
119 LOCAL_GL_POINT_SIZE_RANGE = 0x0B12,
120
121 /* Lines */
122 LOCAL_GL_LINE_SMOOTH = 0x0B20,
123 LOCAL_GL_LINE_STIPPLE = 0x0B24,
124 LOCAL_GL_LINE_STIPPLE_PATTERN = 0x0B25,
125 LOCAL_GL_LINE_STIPPLE_REPEAT = 0x0B26,
126 LOCAL_GL_LINE_WIDTH = 0x0B21,
127 LOCAL_GL_LINE_WIDTH_GRANULARITY = 0x0B23,
128 LOCAL_GL_LINE_WIDTH_RANGE = 0x0B22,
129
130 /* Polygons */
131 LOCAL_GL_POINT = 0x1B00,
132 LOCAL_GL_LINE = 0x1B01,
133 LOCAL_GL_FILL = 0x1B02,
134 LOCAL_GL_CCW = 0x0901,
135 LOCAL_GL_CW = 0x0900,
136 LOCAL_GL_FRONT = 0x0404,
137 LOCAL_GL_BACK = 0x0405,
138 LOCAL_GL_CULL_FACE = 0x0B44,
139 LOCAL_GL_CULL_FACE_MODE = 0x0B45,
140 LOCAL_GL_POLYGON_SMOOTH = 0x0B41,
141 LOCAL_GL_POLYGON_STIPPLE = 0x0B42,
142 LOCAL_GL_FRONT_FACE = 0x0B46,
143 LOCAL_GL_POLYGON_MODE = 0x0B40,
144 LOCAL_GL_POLYGON_OFFSET_FACTOR = 0x8038,
145 LOCAL_GL_POLYGON_OFFSET_UNITS = 0x2A00,
146 LOCAL_GL_POLYGON_OFFSET_POINT = 0x2A01,
147 LOCAL_GL_POLYGON_OFFSET_LINE = 0x2A02,
148 LOCAL_GL_POLYGON_OFFSET_FILL = 0x8037,
149
150 /* Display Lists */
151 LOCAL_GL_COMPILE = 0x1300,
152 LOCAL_GL_COMPILE_AND_EXECUTE = 0x1301,
153 LOCAL_GL_LIST_BASE = 0x0B32,
154 LOCAL_GL_LIST_INDEX = 0x0B33,
155 LOCAL_GL_LIST_MODE = 0x0B30,
156
157 /* Depth buffer */
158 LOCAL_GL_NEVER = 0x0200,
159 LOCAL_GL_LESS = 0x0201,
160 LOCAL_GL_GEQUAL = 0x0206,
161 LOCAL_GL_LEQUAL = 0x0203,
162 LOCAL_GL_GREATER = 0x0204,
163 LOCAL_GL_NOTEQUAL = 0x0205,
164 LOCAL_GL_EQUAL = 0x0202,
165 LOCAL_GL_ALWAYS = 0x0207,
166 LOCAL_GL_DEPTH_TEST = 0x0B71,
167 LOCAL_GL_DEPTH_BITS = 0x0D56,
168 LOCAL_GL_DEPTH_CLEAR_VALUE = 0x0B73,
169 LOCAL_GL_DEPTH_FUNC = 0x0B74,
170 LOCAL_GL_DEPTH_RANGE = 0x0B70,
171 LOCAL_GL_DEPTH_WRITEMASK = 0x0B72,
172 LOCAL_GL_DEPTH_COMPONENT = 0x1902,
173
174 /* Lighting */
175 LOCAL_GL_LIGHTING = 0x0B50,
176 LOCAL_GL_LIGHT0 = 0x4000,
177 LOCAL_GL_LIGHT1 = 0x4001,
178 LOCAL_GL_LIGHT2 = 0x4002,
179 LOCAL_GL_LIGHT3 = 0x4003,
180 LOCAL_GL_LIGHT4 = 0x4004,
181 LOCAL_GL_LIGHT5 = 0x4005,
182 LOCAL_GL_LIGHT6 = 0x4006,
183 LOCAL_GL_LIGHT7 = 0x4007,
184 LOCAL_GL_SPOT_EXPONENT = 0x1205,
185 LOCAL_GL_SPOT_CUTOFF = 0x1206,
186 LOCAL_GL_CONSTANT_ATTENUATION = 0x1207,
187 LOCAL_GL_LINEAR_ATTENUATION = 0x1208,
188 LOCAL_GL_QUADRATIC_ATTENUATION = 0x1209,
189 LOCAL_GL_AMBIENT = 0x1200,
190 LOCAL_GL_DIFFUSE = 0x1201,
191 LOCAL_GL_SPECULAR = 0x1202,
192 LOCAL_GL_SHININESS = 0x1601,
193 LOCAL_GL_EMISSION = 0x1600,
194 LOCAL_GL_POSITION = 0x1203,
195 LOCAL_GL_SPOT_DIRECTION = 0x1204,
196 LOCAL_GL_AMBIENT_AND_DIFFUSE = 0x1602,
197 LOCAL_GL_COLOR_INDEXES = 0x1603,
198 LOCAL_GL_LIGHT_MODEL_TWO_SIDE = 0x0B52,
199 LOCAL_GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51,
200 LOCAL_GL_LIGHT_MODEL_AMBIENT = 0x0B53,
201 LOCAL_GL_FRONT_AND_BACK = 0x0408,
202 LOCAL_GL_SHADE_MODEL = 0x0B54,
203 LOCAL_GL_FLAT = 0x1D00,
204 LOCAL_GL_SMOOTH = 0x1D01,
205 LOCAL_GL_COLOR_MATERIAL = 0x0B57,
206 LOCAL_GL_COLOR_MATERIAL_FACE = 0x0B55,
207 LOCAL_GL_COLOR_MATERIAL_PARAMETER = 0x0B56,
208 LOCAL_GL_NORMALIZE = 0x0BA1,
209
210 /* User clipping planes */
211 LOCAL_GL_CLIP_PLANE0 = 0x3000,
212 LOCAL_GL_CLIP_PLANE1 = 0x3001,
213 LOCAL_GL_CLIP_PLANE2 = 0x3002,
214 LOCAL_GL_CLIP_PLANE3 = 0x3003,
215 LOCAL_GL_CLIP_PLANE4 = 0x3004,
216 LOCAL_GL_CLIP_PLANE5 = 0x3005,
217
218 /* Accumulation buffer */
219 LOCAL_GL_ACCUM_RED_BITS = 0x0D58,
220 LOCAL_GL_ACCUM_GREEN_BITS = 0x0D59,
221 LOCAL_GL_ACCUM_BLUE_BITS = 0x0D5A,
222 LOCAL_GL_ACCUM_ALPHA_BITS = 0x0D5B,
223 LOCAL_GL_ACCUM_CLEAR_VALUE = 0x0B80,
224 LOCAL_GL_ACCUM = 0x0100,
225 LOCAL_GL_ADD = 0x0104,
226 LOCAL_GL_LOAD = 0x0101,
227 LOCAL_GL_MULT = 0x0103,
228 LOCAL_GL_RETURN = 0x0102,
229
230 /* Alpha testing */
231 LOCAL_GL_ALPHA_TEST = 0x0BC0,
232 LOCAL_GL_ALPHA_TEST_REF = 0x0BC2,
233 LOCAL_GL_ALPHA_TEST_FUNC = 0x0BC1,
234
235 /* Blending */
236 LOCAL_GL_BLEND = 0x0BE2,
237 LOCAL_GL_BLEND_SRC = 0x0BE1,
238 LOCAL_GL_BLEND_DST = 0x0BE0,
239 LOCAL_GL_ZERO = 0,
240 LOCAL_GL_ONE = 1,
241 LOCAL_GL_SRC_COLOR = 0x0300,
242 LOCAL_GL_ONE_MINUS_SRC_COLOR = 0x0301,
243 LOCAL_GL_DST_COLOR = 0x0306,
244 LOCAL_GL_ONE_MINUS_DST_COLOR = 0x0307,
245 LOCAL_GL_SRC_ALPHA = 0x0302,
246 LOCAL_GL_ONE_MINUS_SRC_ALPHA = 0x0303,
247 LOCAL_GL_DST_ALPHA = 0x0304,
248 LOCAL_GL_ONE_MINUS_DST_ALPHA = 0x0305,
249 LOCAL_GL_SRC_ALPHA_SATURATE = 0x0308,
250 LOCAL_GL_CONSTANT_COLOR = 0x8001,
251 LOCAL_GL_ONE_MINUS_CONSTANT_COLOR = 0x8002,
252 LOCAL_GL_CONSTANT_ALPHA = 0x8003,
253 LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
254
255 /* Render Mode */
256 LOCAL_GL_FEEDBACK = 0x1C01,
257 LOCAL_GL_RENDER = 0x1C00,
258 LOCAL_GL_SELECT = 0x1C02,
259
260 /* Feedback */
261 LOCAL_GL_2D = 0x0600,
262 LOCAL_GL_3D = 0x0601,
263 LOCAL_GL_3D_COLOR = 0x0602,
264 LOCAL_GL_3D_COLOR_TEXTURE = 0x0603,
265 LOCAL_GL_4D_COLOR_TEXTURE = 0x0604,
266 LOCAL_GL_POINT_TOKEN = 0x0701,
267 LOCAL_GL_LINE_TOKEN = 0x0702,
268 LOCAL_GL_LINE_RESET_TOKEN = 0x0707,
269 LOCAL_GL_POLYGON_TOKEN = 0x0703,
270 LOCAL_GL_BITMAP_TOKEN = 0x0704,
271 LOCAL_GL_DRAW_PIXEL_TOKEN = 0x0705,
272 LOCAL_GL_COPY_PIXEL_TOKEN = 0x0706,
273 LOCAL_GL_PASS_THROUGH_TOKEN = 0x0700,
274 LOCAL_GL_FEEDBACK_BUFFER_POINTER = 0x0DF0,
275 LOCAL_GL_FEEDBACK_BUFFER_SIZE = 0x0DF1,
276 LOCAL_GL_FEEDBACK_BUFFER_TYPE = 0x0DF2,
277
278 /* Selection */
279 LOCAL_GL_SELECTION_BUFFER_POINTER = 0x0DF3,
280 LOCAL_GL_SELECTION_BUFFER_SIZE = 0x0DF4,
281
282 /* Fog */
283 LOCAL_GL_FOG = 0x0B60,
284 LOCAL_GL_FOG_MODE = 0x0B65,
285 LOCAL_GL_FOG_DENSITY = 0x0B62,
286 LOCAL_GL_FOG_COLOR = 0x0B66,
287 LOCAL_GL_FOG_INDEX = 0x0B61,
288 LOCAL_GL_FOG_START = 0x0B63,
289 LOCAL_GL_FOG_END = 0x0B64,
290 LOCAL_GL_LINEAR = 0x2601,
291 LOCAL_GL_EXP = 0x0800,
292 LOCAL_GL_EXP2 = 0x0801,
293
294 /* Logic Ops */
295 LOCAL_GL_LOGIC_OP = 0x0BF1,
296 LOCAL_GL_INDEX_LOGIC_OP = 0x0BF1,
297 LOCAL_GL_COLOR_LOGIC_OP = 0x0BF2,
298 LOCAL_GL_LOGIC_OP_MODE = 0x0BF0,
299 LOCAL_GL_CLEAR = 0x1500,
300 LOCAL_GL_SET = 0x150F,
301 LOCAL_GL_COPY = 0x1503,
302 LOCAL_GL_COPY_INVERTED = 0x150C,
303 LOCAL_GL_NOOP = 0x1505,
304 LOCAL_GL_INVERT = 0x150A,
305 LOCAL_GL_AND = 0x1501,
306 LOCAL_GL_NAND = 0x150E,
307 LOCAL_GL_OR = 0x1507,
308 LOCAL_GL_NOR = 0x1508,
309 LOCAL_GL_XOR = 0x1506,
310 LOCAL_GL_EQUIV = 0x1509,
311 LOCAL_GL_AND_REVERSE = 0x1502,
312 LOCAL_GL_AND_INVERTED = 0x1504,
313 LOCAL_GL_OR_REVERSE = 0x150B,
314 LOCAL_GL_OR_INVERTED = 0x150D,
315
316 /* Stencil */
317 LOCAL_GL_STENCIL_TEST = 0x0B90,
318 LOCAL_GL_STENCIL_WRITEMASK = 0x0B98,
319 LOCAL_GL_STENCIL_BITS = 0x0D57,
320 LOCAL_GL_STENCIL_FUNC = 0x0B92,
321 LOCAL_GL_STENCIL_VALUE_MASK = 0x0B93,
322 LOCAL_GL_STENCIL_REF = 0x0B97,
323 LOCAL_GL_STENCIL_FAIL = 0x0B94,
324 LOCAL_GL_STENCIL_PASS_DEPTH_PASS = 0x0B96,
325 LOCAL_GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95,
326 LOCAL_GL_STENCIL_CLEAR_VALUE = 0x0B91,
327 LOCAL_GL_STENCIL_INDEX = 0x1901,
328 LOCAL_GL_KEEP = 0x1E00,
329 LOCAL_GL_REPLACE = 0x1E01,
330 LOCAL_GL_INCR = 0x1E02,
331 LOCAL_GL_DECR = 0x1E03,
332
333 /* Buffers, Pixel Drawing/Reading */
334 LOCAL_GL_NONE = 0,
335 LOCAL_GL_LEFT = 0x0406,
336 LOCAL_GL_RIGHT = 0x0407,
337 /*LOCAL_GL_FRONT = 0x0404, */
338 /*LOCAL_GL_BACK = 0x0405, */
339 /*LOCAL_GL_FRONT_AND_BACK = 0x0408, */
340 LOCAL_GL_FRONT_LEFT = 0x0400,
341 LOCAL_GL_FRONT_RIGHT = 0x0401,
342 LOCAL_GL_BACK_LEFT = 0x0402,
343 LOCAL_GL_BACK_RIGHT = 0x0403,
344 LOCAL_GL_AUX0 = 0x0409,
345 LOCAL_GL_AUX1 = 0x040A,
346 LOCAL_GL_AUX2 = 0x040B,
347 LOCAL_GL_AUX3 = 0x040C,
348 LOCAL_GL_COLOR_INDEX = 0x1900,
349 LOCAL_GL_RED = 0x1903,
350 LOCAL_GL_GREEN = 0x1904,
351 LOCAL_GL_BLUE = 0x1905,
352 LOCAL_GL_ALPHA = 0x1906,
353 LOCAL_GL_LUMINANCE = 0x1909,
354 LOCAL_GL_LUMINANCE_ALPHA = 0x190A,
355 LOCAL_GL_ALPHA_BITS = 0x0D55,
356 LOCAL_GL_RED_BITS = 0x0D52,
357 LOCAL_GL_GREEN_BITS = 0x0D53,
358 LOCAL_GL_BLUE_BITS = 0x0D54,
359 LOCAL_GL_INDEX_BITS = 0x0D51,
360 LOCAL_GL_SUBPIXEL_BITS = 0x0D50,
361 LOCAL_GL_AUX_BUFFERS = 0x0C00,
362 LOCAL_GL_READ_BUFFER = 0x0C02,
363 LOCAL_GL_DRAW_BUFFER = 0x0C01,
364 LOCAL_GL_DOUBLEBUFFER = 0x0C32,
365 LOCAL_GL_STEREO = 0x0C33,
366 LOCAL_GL_BITMAP = 0x1A00,
367 LOCAL_GL_COLOR = 0x1800,
368 LOCAL_GL_DEPTH = 0x1801,
369 LOCAL_GL_STENCIL = 0x1802,
370 LOCAL_GL_DITHER = 0x0BD0,
371 LOCAL_GL_RGB = 0x1907,
372 LOCAL_GL_RGBA = 0x1908,
373
374 /* Implementation limits */
375 LOCAL_GL_MAX_LIST_NESTING = 0x0B31,
376 LOCAL_GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35,
377 LOCAL_GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36,
378 LOCAL_GL_MAX_NAME_STACK_DEPTH = 0x0D37,
379 LOCAL_GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38,
380 LOCAL_GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39,
381 LOCAL_GL_MAX_EVAL_ORDER = 0x0D30,
382 LOCAL_GL_MAX_LIGHTS = 0x0D31,
383 LOCAL_GL_MAX_CLIP_PLANES = 0x0D32,
384 LOCAL_GL_MAX_TEXTURE_SIZE = 0x0D33,
385 LOCAL_GL_MAX_PIXEL_MAP_TABLE = 0x0D34,
386 LOCAL_GL_MAX_VIEWPORT_DIMS = 0x0D3A,
387 LOCAL_GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B,
388
389 /* Gets */
390 LOCAL_GL_ATTRIB_STACK_DEPTH = 0x0BB0,
391 LOCAL_GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1,
392 LOCAL_GL_COLOR_CLEAR_VALUE = 0x0C22,
393 LOCAL_GL_COLOR_WRITEMASK = 0x0C23,
394 LOCAL_GL_CURRENT_INDEX = 0x0B01,
395 LOCAL_GL_CURRENT_COLOR = 0x0B00,
396 LOCAL_GL_CURRENT_NORMAL = 0x0B02,
397 LOCAL_GL_CURRENT_RASTER_COLOR = 0x0B04,
398 LOCAL_GL_CURRENT_RASTER_DISTANCE = 0x0B09,
399 LOCAL_GL_CURRENT_RASTER_INDEX = 0x0B05,
400 LOCAL_GL_CURRENT_RASTER_POSITION = 0x0B07,
401 LOCAL_GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06,
402 LOCAL_GL_CURRENT_RASTER_POSITION_VALID = 0x0B08,
403 LOCAL_GL_CURRENT_TEXTURE_COORDS = 0x0B03,
404 LOCAL_GL_INDEX_CLEAR_VALUE = 0x0C20,
405 LOCAL_GL_INDEX_MODE = 0x0C30,
406 LOCAL_GL_INDEX_WRITEMASK = 0x0C21,
407 LOCAL_GL_MODELVIEW_MATRIX = 0x0BA6,
408 LOCAL_GL_MODELVIEW_STACK_DEPTH = 0x0BA3,
409 LOCAL_GL_NAME_STACK_DEPTH = 0x0D70,
410 LOCAL_GL_PROJECTION_MATRIX = 0x0BA7,
411 LOCAL_GL_PROJECTION_STACK_DEPTH = 0x0BA4,
412 LOCAL_GL_RENDER_MODE = 0x0C40,
413 LOCAL_GL_RGBA_MODE = 0x0C31,
414 LOCAL_GL_TEXTURE_MATRIX = 0x0BA8,
415 LOCAL_GL_TEXTURE_STACK_DEPTH = 0x0BA5,
416 LOCAL_GL_VIEWPORT = 0x0BA2,
417
418
419 /* Evaluators */
420 LOCAL_GL_AUTO_NORMAL = 0x0D80,
421 LOCAL_GL_MAP1_COLOR_4 = 0x0D90,
422 LOCAL_GL_MAP1_GRID_DOMAIN = 0x0DD0,
423 LOCAL_GL_MAP1_GRID_SEGMENTS = 0x0DD1,
424 LOCAL_GL_MAP1_INDEX = 0x0D91,
425 LOCAL_GL_MAP1_NORMAL = 0x0D92,
426 LOCAL_GL_MAP1_TEXTURE_COORD_1 = 0x0D93,
427 LOCAL_GL_MAP1_TEXTURE_COORD_2 = 0x0D94,
428 LOCAL_GL_MAP1_TEXTURE_COORD_3 = 0x0D95,
429 LOCAL_GL_MAP1_TEXTURE_COORD_4 = 0x0D96,
430 LOCAL_GL_MAP1_VERTEX_3 = 0x0D97,
431 LOCAL_GL_MAP1_VERTEX_4 = 0x0D98,
432 LOCAL_GL_MAP2_COLOR_4 = 0x0DB0,
433 LOCAL_GL_MAP2_GRID_DOMAIN = 0x0DD2,
434 LOCAL_GL_MAP2_GRID_SEGMENTS = 0x0DD3,
435 LOCAL_GL_MAP2_INDEX = 0x0DB1,
436 LOCAL_GL_MAP2_NORMAL = 0x0DB2,
437 LOCAL_GL_MAP2_TEXTURE_COORD_1 = 0x0DB3,
438 LOCAL_GL_MAP2_TEXTURE_COORD_2 = 0x0DB4,
439 LOCAL_GL_MAP2_TEXTURE_COORD_3 = 0x0DB5,
440 LOCAL_GL_MAP2_TEXTURE_COORD_4 = 0x0DB6,
441 LOCAL_GL_MAP2_VERTEX_3 = 0x0DB7,
442 LOCAL_GL_MAP2_VERTEX_4 = 0x0DB8,
443 LOCAL_GL_COEFF = 0x0A00,
444 LOCAL_GL_DOMAIN = 0x0A02,
445 LOCAL_GL_ORDER = 0x0A01,
446
447 /* Hints */
448 LOCAL_GL_FOG_HINT = 0x0C54,
449 LOCAL_GL_LINE_SMOOTH_HINT = 0x0C52,
450 LOCAL_GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50,
451 LOCAL_GL_POINT_SMOOTH_HINT = 0x0C51,
452 LOCAL_GL_POLYGON_SMOOTH_HINT = 0x0C53,
453 LOCAL_GL_DONT_CARE = 0x1100,
454 LOCAL_GL_FASTEST = 0x1101,
455 LOCAL_GL_NICEST = 0x1102,
456
457 /* Scissor box */
458 LOCAL_GL_SCISSOR_TEST = 0x0C11,
459 LOCAL_GL_SCISSOR_BOX = 0x0C10,
460
461 /* Pixel Mode / Transfer */
462 LOCAL_GL_MAP_COLOR = 0x0D10,
463 LOCAL_GL_MAP_STENCIL = 0x0D11,
464 LOCAL_GL_INDEX_SHIFT = 0x0D12,
465 LOCAL_GL_INDEX_OFFSET = 0x0D13,
466 LOCAL_GL_RED_SCALE = 0x0D14,
467 LOCAL_GL_RED_BIAS = 0x0D15,
468 LOCAL_GL_GREEN_SCALE = 0x0D18,
469 LOCAL_GL_GREEN_BIAS = 0x0D19,
470 LOCAL_GL_BLUE_SCALE = 0x0D1A,
471 LOCAL_GL_BLUE_BIAS = 0x0D1B,
472 LOCAL_GL_ALPHA_SCALE = 0x0D1C,
473 LOCAL_GL_ALPHA_BIAS = 0x0D1D,
474 LOCAL_GL_DEPTH_SCALE = 0x0D1E,
475 LOCAL_GL_DEPTH_BIAS = 0x0D1F,
476 LOCAL_GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1,
477 LOCAL_GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0,
478 LOCAL_GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2,
479 LOCAL_GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3,
480 LOCAL_GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4,
481 LOCAL_GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5,
482 LOCAL_GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6,
483 LOCAL_GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7,
484 LOCAL_GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8,
485 LOCAL_GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9,
486 LOCAL_GL_PIXEL_MAP_S_TO_S = 0x0C71,
487 LOCAL_GL_PIXEL_MAP_I_TO_I = 0x0C70,
488 LOCAL_GL_PIXEL_MAP_I_TO_R = 0x0C72,
489 LOCAL_GL_PIXEL_MAP_I_TO_G = 0x0C73,
490 LOCAL_GL_PIXEL_MAP_I_TO_B = 0x0C74,
491 LOCAL_GL_PIXEL_MAP_I_TO_A = 0x0C75,
492 LOCAL_GL_PIXEL_MAP_R_TO_R = 0x0C76,
493 LOCAL_GL_PIXEL_MAP_G_TO_G = 0x0C77,
494 LOCAL_GL_PIXEL_MAP_B_TO_B = 0x0C78,
495 LOCAL_GL_PIXEL_MAP_A_TO_A = 0x0C79,
496 LOCAL_GL_PACK_ALIGNMENT = 0x0D05,
497 LOCAL_GL_PACK_LSB_FIRST = 0x0D01,
498 LOCAL_GL_PACK_ROW_LENGTH = 0x0D02,
499 LOCAL_GL_PACK_SKIP_PIXELS = 0x0D04,
500 LOCAL_GL_PACK_SKIP_ROWS = 0x0D03,
501 LOCAL_GL_PACK_SWAP_BYTES = 0x0D00,
502 LOCAL_GL_UNPACK_ALIGNMENT = 0x0CF5,
503 LOCAL_GL_UNPACK_LSB_FIRST = 0x0CF1,
504 LOCAL_GL_UNPACK_ROW_LENGTH = 0x0CF2,
505 LOCAL_GL_UNPACK_SKIP_PIXELS = 0x0CF4,
506 LOCAL_GL_UNPACK_SKIP_ROWS = 0x0CF3,
507 LOCAL_GL_UNPACK_SWAP_BYTES = 0x0CF0,
508 LOCAL_GL_ZOOM_X = 0x0D16,
509 LOCAL_GL_ZOOM_Y = 0x0D17,
510
511 /* Texture mapping */
512 LOCAL_GL_TEXTURE_ENV = 0x2300,
513 LOCAL_GL_TEXTURE_ENV_MODE = 0x2200,
514 LOCAL_GL_TEXTURE_1D = 0x0DE0,
515 LOCAL_GL_TEXTURE_2D = 0x0DE1,
516 LOCAL_GL_TEXTURE_WRAP_S = 0x2802,
517 LOCAL_GL_TEXTURE_WRAP_T = 0x2803,
518 LOCAL_GL_TEXTURE_MAG_FILTER = 0x2800,
519 LOCAL_GL_TEXTURE_MIN_FILTER = 0x2801,
520 LOCAL_GL_TEXTURE_ENV_COLOR = 0x2201,
521 LOCAL_GL_TEXTURE_GEN_S = 0x0C60,
522 LOCAL_GL_TEXTURE_GEN_T = 0x0C61,
523 LOCAL_GL_TEXTURE_GEN_MODE = 0x2500,
524 LOCAL_GL_TEXTURE_BORDER_COLOR = 0x1004,
525 LOCAL_GL_TEXTURE_WIDTH = 0x1000,
526 LOCAL_GL_TEXTURE_HEIGHT = 0x1001,
527 LOCAL_GL_TEXTURE_BORDER = 0x1005,
528 LOCAL_GL_TEXTURE_COMPONENTS = 0x1003,
529 LOCAL_GL_TEXTURE_RED_SIZE = 0x805C,
530 LOCAL_GL_TEXTURE_GREEN_SIZE = 0x805D,
531 LOCAL_GL_TEXTURE_BLUE_SIZE = 0x805E,
532 LOCAL_GL_TEXTURE_ALPHA_SIZE = 0x805F,
533 LOCAL_GL_TEXTURE_LUMINANCE_SIZE = 0x8060,
534 LOCAL_GL_TEXTURE_INTENSITY_SIZE = 0x8061,
535 LOCAL_GL_NEAREST_MIPMAP_NEAREST = 0x2700,
536 LOCAL_GL_NEAREST_MIPMAP_LINEAR = 0x2702,
537 LOCAL_GL_LINEAR_MIPMAP_NEAREST = 0x2701,
538 LOCAL_GL_LINEAR_MIPMAP_LINEAR = 0x2703,
539 LOCAL_GL_OBJECT_LINEAR = 0x2401,
540 LOCAL_GL_OBJECT_PLANE = 0x2501,
541 LOCAL_GL_EYE_LINEAR = 0x2400,
542 LOCAL_GL_EYE_PLANE = 0x2502,
543 LOCAL_GL_SPHERE_MAP = 0x2402,
544 LOCAL_GL_DECAL = 0x2101,
545 LOCAL_GL_MODULATE = 0x2100,
546 LOCAL_GL_NEAREST = 0x2600,
547 LOCAL_GL_REPEAT = 0x2901,
548 LOCAL_GL_CLAMP = 0x2900,
549 LOCAL_GL_S = 0x2000,
550 LOCAL_GL_T = 0x2001,
551 LOCAL_GL_R = 0x2002,
552 LOCAL_GL_Q = 0x2003,
553 LOCAL_GL_TEXTURE_GEN_R = 0x0C62,
554 LOCAL_GL_TEXTURE_GEN_Q = 0x0C63,
555
556 /* GL 1.1 texturing */
557 LOCAL_GL_PROXY_TEXTURE_1D = 0x8063,
558 LOCAL_GL_PROXY_TEXTURE_2D = 0x8064,
559 LOCAL_GL_TEXTURE_PRIORITY = 0x8066,
560 LOCAL_GL_TEXTURE_RESIDENT = 0x8067,
561 LOCAL_GL_TEXTURE_BINDING_1D = 0x8068,
562 LOCAL_GL_TEXTURE_BINDING_2D = 0x8069,
563 LOCAL_GL_TEXTURE_INTERNAL_FORMAT = 0x1003,
564
565 /* GL 1.2 texturing */
566 LOCAL_GL_PACK_SKIP_IMAGES = 0x806B,
567 LOCAL_GL_PACK_IMAGE_HEIGHT = 0x806C,
568 LOCAL_GL_UNPACK_SKIP_IMAGES = 0x806D,
569 LOCAL_GL_UNPACK_IMAGE_HEIGHT = 0x806E,
570 LOCAL_GL_TEXTURE_3D = 0x806F,
571 LOCAL_GL_PROXY_TEXTURE_3D = 0x8070,
572 LOCAL_GL_TEXTURE_DEPTH = 0x8071,
573 LOCAL_GL_TEXTURE_WRAP_R = 0x8072,
574 LOCAL_GL_MAX_3D_TEXTURE_SIZE = 0x8073,
575 LOCAL_GL_TEXTURE_BINDING_3D = 0x806A,
576
577 /* Internal texture formats (GL 1.1) */
578 LOCAL_GL_ALPHA4 = 0x803B,
579 LOCAL_GL_ALPHA8 = 0x803C,
580 LOCAL_GL_ALPHA12 = 0x803D,
581 LOCAL_GL_ALPHA16 = 0x803E,
582 LOCAL_GL_LUMINANCE4 = 0x803F,
583 LOCAL_GL_LUMINANCE8 = 0x8040,
584 LOCAL_GL_LUMINANCE12 = 0x8041,
585 LOCAL_GL_LUMINANCE16 = 0x8042,
586 LOCAL_GL_LUMINANCE4_ALPHA4 = 0x8043,
587 LOCAL_GL_LUMINANCE6_ALPHA2 = 0x8044,
588 LOCAL_GL_LUMINANCE8_ALPHA8 = 0x8045,
589 LOCAL_GL_LUMINANCE12_ALPHA4 = 0x8046,
590 LOCAL_GL_LUMINANCE12_ALPHA12 = 0x8047,
591 LOCAL_GL_LUMINANCE16_ALPHA16 = 0x8048,
592 LOCAL_GL_INTENSITY = 0x8049,
593 LOCAL_GL_INTENSITY4 = 0x804A,
594 LOCAL_GL_INTENSITY8 = 0x804B,
595 LOCAL_GL_INTENSITY12 = 0x804C,
596 LOCAL_GL_INTENSITY16 = 0x804D,
597 LOCAL_GL_R3_G3_B2 = 0x2A10,
598 LOCAL_GL_RGB4 = 0x804F,
599 LOCAL_GL_RGB5 = 0x8050,
600 LOCAL_GL_RGB8 = 0x8051,
601 LOCAL_GL_RGB10 = 0x8052,
602 LOCAL_GL_RGB12 = 0x8053,
603 LOCAL_GL_RGB16 = 0x8054,
604 LOCAL_GL_RGBA2 = 0x8055,
605 LOCAL_GL_RGBA4 = 0x8056,
606 LOCAL_GL_RGB5_A1 = 0x8057,
607 LOCAL_GL_RGBA8 = 0x8058,
608 LOCAL_GL_RGB10_A2 = 0x8059,
609 LOCAL_GL_RGBA12 = 0x805A,
610 LOCAL_GL_RGBA16 = 0x805B,
611
612 /* Utility */
613 LOCAL_GL_VENDOR = 0x1F00,
614 LOCAL_GL_RENDERER = 0x1F01,
615 LOCAL_GL_VERSION = 0x1F02,
616 LOCAL_GL_EXTENSIONS = 0x1F03,
617
618 /* Errors */
619 LOCAL_GL_INVALID_VALUE = 0x0501,
620 LOCAL_GL_INVALID_ENUM = 0x0500,
621 LOCAL_GL_INVALID_OPERATION = 0x0502,
622 LOCAL_GL_STACK_OVERFLOW = 0x0503,
623 LOCAL_GL_STACK_UNDERFLOW = 0x0504,
624 LOCAL_GL_OUT_OF_MEMORY = 0x0505,
625
626 /*
627 * Extensions
628 */
629
630 /* LOCAL_GL_EXT_blend_minmax and LOCAL_GL_EXT_blend_color */
631 LOCAL_GL_CONSTANT_COLOR_EXT = 0x8001,
632 LOCAL_GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002,
633 LOCAL_GL_CONSTANT_ALPHA_EXT = 0x8003,
634 LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004,
635 LOCAL_GL_BLEND_EQUATION_EXT = 0x8009,
636 LOCAL_GL_MIN_EXT = 0x8007,
637 LOCAL_GL_MAX_EXT = 0x8008,
638 LOCAL_GL_FUNC_ADD_EXT = 0x8006,
639 LOCAL_GL_FUNC_SUBTRACT_EXT = 0x800A,
640 LOCAL_GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B,
641 LOCAL_GL_BLEND_COLOR_EXT = 0x8005,
642
643 /* LOCAL_GL_EXT_polygon_offset */
644 LOCAL_GL_POLYGON_OFFSET_EXT = 0x8037,
645 LOCAL_GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038,
646 LOCAL_GL_POLYGON_OFFSET_BIAS_EXT = 0x8039,
647
648 /* LOCAL_GL_EXT_vertex_array */
649 LOCAL_GL_VERTEX_ARRAY_EXT = 0x8074,
650 LOCAL_GL_NORMAL_ARRAY_EXT = 0x8075,
651 LOCAL_GL_COLOR_ARRAY_EXT = 0x8076,
652 LOCAL_GL_INDEX_ARRAY_EXT = 0x8077,
653 LOCAL_GL_TEXTURE_COORD_ARRAY_EXT = 0x8078,
654 LOCAL_GL_EDGE_FLAG_ARRAY_EXT = 0x8079,
655 LOCAL_GL_VERTEX_ARRAY_SIZE_EXT = 0x807A,
656 LOCAL_GL_VERTEX_ARRAY_TYPE_EXT = 0x807B,
657 LOCAL_GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C,
658 LOCAL_GL_VERTEX_ARRAY_COUNT_EXT = 0x807D,
659 LOCAL_GL_NORMAL_ARRAY_TYPE_EXT = 0x807E,
660 LOCAL_GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F,
661 LOCAL_GL_NORMAL_ARRAY_COUNT_EXT = 0x8080,
662 LOCAL_GL_COLOR_ARRAY_SIZE_EXT = 0x8081,
663 LOCAL_GL_COLOR_ARRAY_TYPE_EXT = 0x8082,
664 LOCAL_GL_COLOR_ARRAY_STRIDE_EXT = 0x8083,
665 LOCAL_GL_COLOR_ARRAY_COUNT_EXT = 0x8084,
666 LOCAL_GL_INDEX_ARRAY_TYPE_EXT = 0x8085,
667 LOCAL_GL_INDEX_ARRAY_STRIDE_EXT = 0x8086,
668 LOCAL_GL_INDEX_ARRAY_COUNT_EXT = 0x8087,
669 LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088,
670 LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089,
671 LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A,
672 LOCAL_GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B,
673 LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C,
674 LOCAL_GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D,
675 LOCAL_GL_VERTEX_ARRAY_POINTER_EXT = 0x808E,
676 LOCAL_GL_NORMAL_ARRAY_POINTER_EXT = 0x808F,
677 LOCAL_GL_COLOR_ARRAY_POINTER_EXT = 0x8090,
678 LOCAL_GL_INDEX_ARRAY_POINTER_EXT = 0x8091,
679 LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092,
680 LOCAL_GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093,
681
682 /* LOCAL_GL_EXT_texture_object */
683 LOCAL_GL_TEXTURE_PRIORITY_EXT = 0x8066,
684 LOCAL_GL_TEXTURE_RESIDENT_EXT = 0x8067,
685 LOCAL_GL_TEXTURE_1D_BINDING_EXT = 0x8068,
686 LOCAL_GL_TEXTURE_2D_BINDING_EXT = 0x8069,
687
688 /* LOCAL_GL_EXT_texture3D */
689 LOCAL_GL_PACK_SKIP_IMAGES_EXT = 0x806B,
690 LOCAL_GL_PACK_IMAGE_HEIGHT_EXT = 0x806C,
691 LOCAL_GL_UNPACK_SKIP_IMAGES_EXT = 0x806D,
692 LOCAL_GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E,
693 LOCAL_GL_TEXTURE_3D_EXT = 0x806F,
694 LOCAL_GL_PROXY_TEXTURE_3D_EXT = 0x8070,
695 LOCAL_GL_TEXTURE_DEPTH_EXT = 0x8071,
696 LOCAL_GL_TEXTURE_WRAP_R_EXT = 0x8072,
697 LOCAL_GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073,
698 LOCAL_GL_TEXTURE_3D_BINDING_EXT = 0x806A,
699
700 /* LOCAL_GL_EXT_paletted_texture */
701 LOCAL_GL_TABLE_TOO_LARGE_EXT = 0x8031,
702 LOCAL_GL_COLOR_TABLE_FORMAT_EXT = 0x80D8,
703 LOCAL_GL_COLOR_TABLE_WIDTH_EXT = 0x80D9,
704 LOCAL_GL_COLOR_TABLE_RED_SIZE_EXT = 0x80DA,
705 LOCAL_GL_COLOR_TABLE_GREEN_SIZE_EXT = 0x80DB,
706 LOCAL_GL_COLOR_TABLE_BLUE_SIZE_EXT = 0x80DC,
707 LOCAL_GL_COLOR_TABLE_ALPHA_SIZE_EXT = 0x80DD,
708 LOCAL_GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = 0x80DE,
709 LOCAL_GL_COLOR_TABLE_INTENSITY_SIZE_EXT = 0x80DF,
710 LOCAL_GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED,
711 LOCAL_GL_COLOR_INDEX1_EXT = 0x80E2,
712 LOCAL_GL_COLOR_INDEX2_EXT = 0x80E3,
713 LOCAL_GL_COLOR_INDEX4_EXT = 0x80E4,
714 LOCAL_GL_COLOR_INDEX8_EXT = 0x80E5,
715 LOCAL_GL_COLOR_INDEX12_EXT = 0x80E6,
716 LOCAL_GL_COLOR_INDEX16_EXT = 0x80E7,
717
718 /* LOCAL_GL_EXT_shared_texture_palette */
719 LOCAL_GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB,
720
721 /* LOCAL_GL_EXT_point_parameters */
722 LOCAL_GL_POINT_SIZE_MIN_EXT = 0x8126,
723 LOCAL_GL_POINT_SIZE_MAX_EXT = 0x8127,
724 LOCAL_GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128,
725 LOCAL_GL_DISTANCE_ATTENUATION_EXT = 0x8129,
726
727 /* LOCAL_GL_EXT_rescale_normal */
728 LOCAL_GL_RESCALE_NORMAL_EXT = 0x803A,
729
730 /* LOCAL_GL_EXT_abgr */
731 LOCAL_GL_ABGR_EXT = 0x8000,
732
733 /* LOCAL_GL_SGIS_multitexture */
734 LOCAL_GL_SELECTED_TEXTURE_SGIS = 0x835C,
735 LOCAL_GL_SELECTED_TEXTURE_COORD_SET_SGIS = 0x835D,
736 LOCAL_GL_MAX_TEXTURES_SGIS = 0x835E,
737 LOCAL_GL_TEXTURE0_SGIS = 0x835F,
738 LOCAL_GL_TEXTURE1_SGIS = 0x8360,
739 LOCAL_GL_TEXTURE2_SGIS = 0x8361,
740 LOCAL_GL_TEXTURE3_SGIS = 0x8362,
741 LOCAL_GL_TEXTURE_COORD_SET_SOURCE_SGIS = 0x8363,
742
743 /* LOCAL_GL_EXT_multitexture */
744 LOCAL_GL_SELECTED_TEXTURE_EXT = 0x83C0,
745 LOCAL_GL_SELECTED_TEXTURE_COORD_SET_EXT = 0x83C1,
746 LOCAL_GL_SELECTED_TEXTURE_TRANSFORM_EXT = 0x83C2,
747 LOCAL_GL_MAX_TEXTURES_EXT = 0x83C3,
748 LOCAL_GL_MAX_TEXTURE_COORD_SETS_EXT = 0x83C4,
749 LOCAL_GL_TEXTURE_ENV_COORD_SET_EXT = 0x83C5,
750 LOCAL_GL_TEXTURE0_EXT = 0x83C6,
751 LOCAL_GL_TEXTURE1_EXT = 0x83C7,
752 LOCAL_GL_TEXTURE2_EXT = 0x83C8,
753 LOCAL_GL_TEXTURE3_EXT = 0x83C9,
754
755 /* LOCAL_GL_SGIS_texture_edge_clamp */
756 LOCAL_GL_CLAMP_TO_EDGE_SGIS = 0x812F,
757
758 /* OpenGL 1.2 */
759 LOCAL_GL_RESCALE_NORMAL = 0x803A,
760 LOCAL_GL_CLAMP_TO_EDGE = 0x812F,
761 LOCAL_GL_MAX_ELEMENTS_VERTICES = 0xF0E8,
762 LOCAL_GL_MAX_ELEMENTS_INDICES = 0xF0E9,
763 LOCAL_GL_BGR = 0x80E0,
764 LOCAL_GL_BGRA = 0x80E1,
765 LOCAL_GL_UNSIGNED_BYTE_3_3_2 = 0x8032,
766 LOCAL_GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362,
767 LOCAL_GL_UNSIGNED_SHORT_5_6_5 = 0x8363,
768 LOCAL_GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364,
769 LOCAL_GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033,
770 LOCAL_GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365,
771 LOCAL_GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034,
772 LOCAL_GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366,
773 LOCAL_GL_UNSIGNED_INT_8_8_8_8 = 0x8035,
774 LOCAL_GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367,
775 LOCAL_GL_UNSIGNED_INT_10_10_10_2 = 0x8036,
776 LOCAL_GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368,
777 LOCAL_GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8,
778 LOCAL_GL_SINGLE_COLOR = 0x81F9,
779 LOCAL_GL_SEPARATE_SPECULAR_COLOR = 0x81FA,
780 LOCAL_GL_TEXTURE_MIN_LOD = 0x813A,
781 LOCAL_GL_TEXTURE_MAX_LOD = 0x813B,
782 LOCAL_GL_TEXTURE_BASE_LEVEL = 0x813C,
783 LOCAL_GL_TEXTURE_MAX_LEVEL = 0x813D
784 };
785
786 typedef struct { GLenum e; const char* name; } ENUM;
787 #define EDEF(VAR) { (GLenum)(LOCAL_GL_##VAR), #VAR }
788
789 static ENUM enums[] =
790 {
791 EDEF(BYTE),
792 EDEF(UNSIGNED_BYTE),
793 EDEF(SHORT),
794 EDEF(UNSIGNED_SHORT),
795 EDEF(INT),
796 EDEF(UNSIGNED_INT),
797 EDEF(FLOAT),
798 EDEF(DOUBLE),
799 EDEF(2_BYTES),
800 EDEF(3_BYTES),
801 EDEF(4_BYTES),
802 /*
803 EDEF(LINES),
804 EDEF(POINTS),
805 EDEF(LINE_STRIP),
806 EDEF(LINE_LOOP),
807 EDEF(TRIANGLES),
808 EDEF(TRIANGLE_STRIP),
809 EDEF(TRIANGLE_FAN),
810 EDEF(QUADS),
811 EDEF(QUAD_STRIP),
812 EDEF(POLYGON),
813 EDEF(EDGE_FLAG),
814 */
815 EDEF(VERTEX_ARRAY),
816 EDEF(NORMAL_ARRAY),
817 EDEF(COLOR_ARRAY),
818 EDEF(INDEX_ARRAY),
819 EDEF(TEXTURE_COORD_ARRAY),
820 EDEF(EDGE_FLAG_ARRAY),
821 EDEF(VERTEX_ARRAY_SIZE),
822 EDEF(VERTEX_ARRAY_TYPE),
823 EDEF(VERTEX_ARRAY_STRIDE),
824 EDEF(NORMAL_ARRAY_TYPE),
825 EDEF(NORMAL_ARRAY_STRIDE),
826 EDEF(COLOR_ARRAY_SIZE),
827 EDEF(COLOR_ARRAY_TYPE),
828 EDEF(COLOR_ARRAY_STRIDE),
829 EDEF(INDEX_ARRAY_TYPE),
830 EDEF(INDEX_ARRAY_STRIDE),
831 EDEF(TEXTURE_COORD_ARRAY_SIZE),
832 EDEF(TEXTURE_COORD_ARRAY_TYPE),
833 EDEF(TEXTURE_COORD_ARRAY_STRIDE),
834 EDEF(EDGE_FLAG_ARRAY_STRIDE),
835 EDEF(VERTEX_ARRAY_POINTER),
836 EDEF(NORMAL_ARRAY_POINTER),
837 EDEF(COLOR_ARRAY_POINTER),
838 EDEF(INDEX_ARRAY_POINTER),
839 EDEF(TEXTURE_COORD_ARRAY_POINTER),
840 EDEF(EDGE_FLAG_ARRAY_POINTER),
841 EDEF(V2F),
842 EDEF(V3F),
843 EDEF(C4UB_V2F),
844 EDEF(C4UB_V3F),
845 EDEF(C3F_V3F),
846 EDEF(N3F_V3F),
847 EDEF(C4F_N3F_V3F),
848 EDEF(T2F_V3F),
849 EDEF(T4F_V4F),
850 EDEF(T2F_C4UB_V3F),
851 EDEF(T2F_C3F_V3F),
852 EDEF(T2F_N3F_V3F),
853 EDEF(T2F_C4F_N3F_V3F),
854 EDEF(T4F_C4F_N3F_V4F),
855 EDEF(MATRIX_MODE),
856 EDEF(MODELVIEW),
857 EDEF(PROJECTION),
858 EDEF(TEXTURE),
859 EDEF(POINT_SMOOTH),
860 EDEF(POINT_SIZE),
861 EDEF(POINT_SIZE_GRANULARITY),
862 EDEF(POINT_SIZE_RANGE),
863 EDEF(LINE_SMOOTH),
864 EDEF(LINE_STIPPLE),
865 EDEF(LINE_STIPPLE_PATTERN),
866 EDEF(LINE_STIPPLE_REPEAT),
867 EDEF(LINE_WIDTH),
868 EDEF(LINE_WIDTH_GRANULARITY),
869 EDEF(LINE_WIDTH_RANGE),
870 EDEF(POINT),
871 EDEF(LINE),
872 EDEF(FILL),
873 EDEF(CCW),
874 EDEF(CW),
875 EDEF(FRONT),
876 EDEF(BACK),
877 EDEF(CULL_FACE),
878 EDEF(CULL_FACE_MODE),
879 EDEF(POLYGON_SMOOTH),
880 EDEF(POLYGON_STIPPLE),
881 EDEF(FRONT_FACE),
882 EDEF(POLYGON_MODE),
883 EDEF(POLYGON_OFFSET_FACTOR),
884 EDEF(POLYGON_OFFSET_UNITS),
885 EDEF(POLYGON_OFFSET_POINT),
886 EDEF(POLYGON_OFFSET_LINE),
887 EDEF(POLYGON_OFFSET_FILL),
888 EDEF(COMPILE),
889 EDEF(COMPILE_AND_EXECUTE),
890 EDEF(LIST_BASE),
891 EDEF(LIST_INDEX),
892 EDEF(LIST_MODE),
893 EDEF(NEVER),
894 EDEF(LESS),
895 EDEF(GEQUAL),
896 EDEF(LEQUAL),
897 EDEF(GREATER),
898 EDEF(NOTEQUAL),
899 EDEF(EQUAL),
900 EDEF(ALWAYS),
901 EDEF(DEPTH_TEST),
902 EDEF(DEPTH_BITS),
903 EDEF(DEPTH_CLEAR_VALUE),
904 EDEF(DEPTH_FUNC),
905 EDEF(DEPTH_RANGE),
906 EDEF(DEPTH_WRITEMASK),
907 EDEF(DEPTH_COMPONENT),
908 EDEF(LIGHTING),
909 EDEF(LIGHT0),
910 EDEF(LIGHT1),
911 EDEF(LIGHT2),
912 EDEF(LIGHT3),
913 EDEF(LIGHT4),
914 EDEF(LIGHT5),
915 EDEF(LIGHT6),
916 EDEF(LIGHT7),
917 EDEF(SPOT_EXPONENT),
918 EDEF(SPOT_CUTOFF),
919 EDEF(CONSTANT_ATTENUATION),
920 EDEF(LINEAR_ATTENUATION),
921 EDEF(QUADRATIC_ATTENUATION),
922 EDEF(AMBIENT),
923 EDEF(DIFFUSE),
924 EDEF(SPECULAR),
925 EDEF(SHININESS),
926 EDEF(EMISSION),
927 EDEF(POSITION),
928 EDEF(SPOT_DIRECTION),
929 EDEF(AMBIENT_AND_DIFFUSE),
930 EDEF(COLOR_INDEXES),
931 EDEF(LIGHT_MODEL_TWO_SIDE),
932 EDEF(LIGHT_MODEL_LOCAL_VIEWER),
933 EDEF(LIGHT_MODEL_AMBIENT),
934 EDEF(FRONT_AND_BACK),
935 EDEF(SHADE_MODEL),
936 EDEF(FLAT),
937 EDEF(SMOOTH),
938 EDEF(COLOR_MATERIAL),
939 EDEF(COLOR_MATERIAL_FACE),
940 EDEF(COLOR_MATERIAL_PARAMETER),
941 EDEF(NORMALIZE),
942 EDEF(CLIP_PLANE0),
943 EDEF(CLIP_PLANE1),
944 EDEF(CLIP_PLANE2),
945 EDEF(CLIP_PLANE3),
946 EDEF(CLIP_PLANE4),
947 EDEF(CLIP_PLANE5),
948 EDEF(ACCUM_RED_BITS),
949 EDEF(ACCUM_GREEN_BITS),
950 EDEF(ACCUM_BLUE_BITS),
951 EDEF(ACCUM_ALPHA_BITS),
952 EDEF(ACCUM_CLEAR_VALUE),
953 EDEF(ACCUM),
954 EDEF(ADD),
955 EDEF(LOAD),
956 EDEF(MULT),
957 EDEF(RETURN),
958 EDEF(ALPHA_TEST),
959 EDEF(ALPHA_TEST_REF),
960 EDEF(ALPHA_TEST_FUNC),
961 EDEF(BLEND),
962 EDEF(BLEND_SRC),
963 EDEF(BLEND_DST),
964 EDEF(ZERO),
965 EDEF(ONE),
966 EDEF(SRC_COLOR),
967 EDEF(ONE_MINUS_SRC_COLOR),
968 EDEF(DST_COLOR),
969 EDEF(ONE_MINUS_DST_COLOR),
970 EDEF(SRC_ALPHA),
971 EDEF(ONE_MINUS_SRC_ALPHA),
972 EDEF(DST_ALPHA),
973 EDEF(ONE_MINUS_DST_ALPHA),
974 EDEF(SRC_ALPHA_SATURATE),
975 EDEF(CONSTANT_COLOR),
976 EDEF(ONE_MINUS_CONSTANT_COLOR),
977 EDEF(CONSTANT_ALPHA),
978 EDEF(ONE_MINUS_CONSTANT_ALPHA),
979 EDEF(FEEDBACK),
980 EDEF(RENDER),
981 EDEF(SELECT),
982 EDEF(2D),
983 EDEF(3D),
984 EDEF(3D_COLOR),
985 EDEF(3D_COLOR_TEXTURE),
986 EDEF(4D_COLOR_TEXTURE),
987 EDEF(POINT_TOKEN),
988 EDEF(LINE_TOKEN),
989 EDEF(LINE_RESET_TOKEN),
990 EDEF(POLYGON_TOKEN),
991 EDEF(BITMAP_TOKEN),
992 EDEF(DRAW_PIXEL_TOKEN),
993 EDEF(COPY_PIXEL_TOKEN),
994 EDEF(PASS_THROUGH_TOKEN),
995 EDEF(FEEDBACK_BUFFER_POINTER),
996 EDEF(FEEDBACK_BUFFER_SIZE),
997 EDEF(FEEDBACK_BUFFER_TYPE),
998 EDEF(SELECTION_BUFFER_POINTER),
999 EDEF(SELECTION_BUFFER_SIZE),
1000 EDEF(FOG),
1001 EDEF(FOG_MODE),
1002 EDEF(FOG_DENSITY),
1003 EDEF(FOG_COLOR),
1004 EDEF(FOG_INDEX),
1005 EDEF(FOG_START),
1006 EDEF(FOG_END),
1007 EDEF(LINEAR),
1008 EDEF(EXP),
1009 EDEF(EXP2),
1010 EDEF(LOGIC_OP),
1011 EDEF(INDEX_LOGIC_OP),
1012 EDEF(COLOR_LOGIC_OP),
1013 EDEF(LOGIC_OP_MODE),
1014 EDEF(CLEAR),
1015 EDEF(SET),
1016 EDEF(COPY),
1017 EDEF(COPY_INVERTED),
1018 EDEF(NOOP),
1019 EDEF(INVERT),
1020 EDEF(AND),
1021 EDEF(NAND),
1022 EDEF(OR),
1023 EDEF(NOR),
1024 EDEF(XOR),
1025 EDEF(EQUIV),
1026 EDEF(AND_REVERSE),
1027 EDEF(AND_INVERTED),
1028 EDEF(OR_REVERSE),
1029 EDEF(OR_INVERTED),
1030 EDEF(STENCIL_TEST),
1031 EDEF(STENCIL_WRITEMASK),
1032 EDEF(STENCIL_BITS),
1033 EDEF(STENCIL_FUNC),
1034 EDEF(STENCIL_VALUE_MASK),
1035 EDEF(STENCIL_REF),
1036 EDEF(STENCIL_FAIL),
1037 EDEF(STENCIL_PASS_DEPTH_PASS),
1038 EDEF(STENCIL_PASS_DEPTH_FAIL),
1039 EDEF(STENCIL_CLEAR_VALUE),
1040 EDEF(STENCIL_INDEX),
1041 EDEF(KEEP),
1042 EDEF(REPLACE),
1043 EDEF(INCR),
1044 EDEF(DECR),
1045 EDEF(NONE),
1046 EDEF(LEFT),
1047 EDEF(RIGHT),
1048 EDEF(FRONT_LEFT),
1049 EDEF(FRONT_RIGHT),
1050 EDEF(BACK_LEFT),
1051 EDEF(BACK_RIGHT),
1052 EDEF(AUX0),
1053 EDEF(AUX1),
1054 EDEF(AUX2),
1055 EDEF(AUX3),
1056 EDEF(COLOR_INDEX),
1057 EDEF(RED),
1058 EDEF(GREEN),
1059 EDEF(BLUE),
1060 EDEF(ALPHA),
1061 EDEF(LUMINANCE),
1062 EDEF(LUMINANCE_ALPHA),
1063 EDEF(ALPHA_BITS),
1064 EDEF(RED_BITS),
1065 EDEF(GREEN_BITS),
1066 EDEF(BLUE_BITS),
1067 EDEF(INDEX_BITS),
1068 EDEF(SUBPIXEL_BITS),
1069 EDEF(AUX_BUFFERS),
1070 EDEF(READ_BUFFER),
1071 EDEF(DRAW_BUFFER),
1072 EDEF(DOUBLEBUFFER),
1073 EDEF(STEREO),
1074 EDEF(BITMAP),
1075 EDEF(COLOR),
1076 EDEF(DEPTH),
1077 EDEF(STENCIL),
1078 EDEF(DITHER),
1079 EDEF(RGB),
1080 EDEF(RGBA),
1081 EDEF(MAX_LIST_NESTING),
1082 EDEF(MAX_ATTRIB_STACK_DEPTH),
1083 EDEF(MAX_MODELVIEW_STACK_DEPTH),
1084 EDEF(MAX_NAME_STACK_DEPTH),
1085 EDEF(MAX_PROJECTION_STACK_DEPTH),
1086 EDEF(MAX_TEXTURE_STACK_DEPTH),
1087 EDEF(MAX_EVAL_ORDER),
1088 EDEF(MAX_LIGHTS),
1089 EDEF(MAX_CLIP_PLANES),
1090 EDEF(MAX_TEXTURE_SIZE),
1091 EDEF(MAX_PIXEL_MAP_TABLE),
1092 EDEF(MAX_VIEWPORT_DIMS),
1093 EDEF(MAX_CLIENT_ATTRIB_STACK_DEPTH),
1094 EDEF(ATTRIB_STACK_DEPTH),
1095 EDEF(CLIENT_ATTRIB_STACK_DEPTH),
1096 EDEF(COLOR_CLEAR_VALUE),
1097 EDEF(COLOR_WRITEMASK),
1098 EDEF(CURRENT_INDEX),
1099 EDEF(CURRENT_COLOR),
1100 EDEF(CURRENT_NORMAL),
1101 EDEF(CURRENT_RASTER_COLOR),
1102 EDEF(CURRENT_RASTER_DISTANCE),
1103 EDEF(CURRENT_RASTER_INDEX),
1104 EDEF(CURRENT_RASTER_POSITION),
1105 EDEF(CURRENT_RASTER_TEXTURE_COORDS),
1106 EDEF(CURRENT_RASTER_POSITION_VALID),
1107 EDEF(CURRENT_TEXTURE_COORDS),
1108 EDEF(INDEX_CLEAR_VALUE),
1109 EDEF(INDEX_MODE),
1110 EDEF(INDEX_WRITEMASK),
1111 EDEF(MODELVIEW_MATRIX),
1112 EDEF(MODELVIEW_STACK_DEPTH),
1113 EDEF(NAME_STACK_DEPTH),
1114 EDEF(PROJECTION_MATRIX),
1115 EDEF(PROJECTION_STACK_DEPTH),
1116 EDEF(RENDER_MODE),
1117 EDEF(RGBA_MODE),
1118 EDEF(TEXTURE_MATRIX),
1119 EDEF(TEXTURE_STACK_DEPTH),
1120 EDEF(VIEWPORT),
1121 EDEF(AUTO_NORMAL),
1122 EDEF(MAP1_COLOR_4),
1123 EDEF(MAP1_GRID_DOMAIN),
1124 EDEF(MAP1_GRID_SEGMENTS),
1125 EDEF(MAP1_INDEX),
1126 EDEF(MAP1_NORMAL),
1127 EDEF(MAP1_TEXTURE_COORD_1),
1128 EDEF(MAP1_TEXTURE_COORD_2),
1129 EDEF(MAP1_TEXTURE_COORD_3),
1130 EDEF(MAP1_TEXTURE_COORD_4),
1131 EDEF(MAP1_VERTEX_3),
1132 EDEF(MAP1_VERTEX_4),
1133 EDEF(MAP2_COLOR_4),
1134 EDEF(MAP2_GRID_DOMAIN),
1135 EDEF(MAP2_GRID_SEGMENTS),
1136 EDEF(MAP2_INDEX),
1137 EDEF(MAP2_NORMAL),
1138 EDEF(MAP2_TEXTURE_COORD_1),
1139 EDEF(MAP2_TEXTURE_COORD_2),
1140 EDEF(MAP2_TEXTURE_COORD_3),
1141 EDEF(MAP2_TEXTURE_COORD_4),
1142 EDEF(MAP2_VERTEX_3),
1143 EDEF(MAP2_VERTEX_4),
1144 EDEF(COEFF),
1145 EDEF(DOMAIN),
1146 EDEF(ORDER),
1147 EDEF(FOG_HINT),
1148 EDEF(LINE_SMOOTH_HINT),
1149 EDEF(PERSPECTIVE_CORRECTION_HINT),
1150 EDEF(POINT_SMOOTH_HINT),
1151 EDEF(POLYGON_SMOOTH_HINT),
1152 EDEF(DONT_CARE),
1153 EDEF(FASTEST),
1154 EDEF(NICEST),
1155 EDEF(SCISSOR_TEST),
1156 EDEF(SCISSOR_BOX),
1157 EDEF(MAP_COLOR),
1158 EDEF(MAP_STENCIL),
1159 EDEF(INDEX_SHIFT),
1160 EDEF(INDEX_OFFSET),
1161 EDEF(RED_SCALE),
1162 EDEF(RED_BIAS),
1163 EDEF(GREEN_SCALE),
1164 EDEF(GREEN_BIAS),
1165 EDEF(BLUE_SCALE),
1166 EDEF(BLUE_BIAS),
1167 EDEF(ALPHA_SCALE),
1168 EDEF(ALPHA_BIAS),
1169 EDEF(DEPTH_SCALE),
1170 EDEF(DEPTH_BIAS),
1171 EDEF(PIXEL_MAP_S_TO_S_SIZE),
1172 EDEF(PIXEL_MAP_I_TO_I_SIZE),
1173 EDEF(PIXEL_MAP_I_TO_R_SIZE),
1174 EDEF(PIXEL_MAP_I_TO_G_SIZE),
1175 EDEF(PIXEL_MAP_I_TO_B_SIZE),
1176 EDEF(PIXEL_MAP_I_TO_A_SIZE),
1177 EDEF(PIXEL_MAP_R_TO_R_SIZE),
1178 EDEF(PIXEL_MAP_G_TO_G_SIZE),
1179 EDEF(PIXEL_MAP_B_TO_B_SIZE),
1180 EDEF(PIXEL_MAP_A_TO_A_SIZE),
1181 EDEF(PIXEL_MAP_S_TO_S),
1182 EDEF(PIXEL_MAP_I_TO_I),
1183 EDEF(PIXEL_MAP_I_TO_R),
1184 EDEF(PIXEL_MAP_I_TO_G),
1185 EDEF(PIXEL_MAP_I_TO_B),
1186 EDEF(PIXEL_MAP_I_TO_A),
1187 EDEF(PIXEL_MAP_R_TO_R),
1188 EDEF(PIXEL_MAP_G_TO_G),
1189 EDEF(PIXEL_MAP_B_TO_B),
1190 EDEF(PIXEL_MAP_A_TO_A),
1191 EDEF(PACK_ALIGNMENT),
1192 EDEF(PACK_LSB_FIRST),
1193 EDEF(PACK_ROW_LENGTH),
1194 EDEF(PACK_SKIP_PIXELS),
1195 EDEF(PACK_SKIP_ROWS),
1196 EDEF(PACK_SWAP_BYTES),
1197 EDEF(UNPACK_ALIGNMENT),
1198 EDEF(UNPACK_LSB_FIRST),
1199 EDEF(UNPACK_ROW_LENGTH),
1200 EDEF(UNPACK_SKIP_PIXELS),
1201 EDEF(UNPACK_SKIP_ROWS),
1202 EDEF(UNPACK_SWAP_BYTES),
1203 EDEF(ZOOM_X),
1204 EDEF(ZOOM_Y),
1205 EDEF(TEXTURE_ENV),
1206 EDEF(TEXTURE_ENV_MODE),
1207 EDEF(TEXTURE_1D),
1208 EDEF(TEXTURE_2D),
1209 EDEF(TEXTURE_WRAP_S),
1210 EDEF(TEXTURE_WRAP_T),
1211 EDEF(TEXTURE_MAG_FILTER),
1212 EDEF(TEXTURE_MIN_FILTER),
1213 EDEF(TEXTURE_ENV_COLOR),
1214 EDEF(TEXTURE_GEN_S),
1215 EDEF(TEXTURE_GEN_T),
1216 EDEF(TEXTURE_GEN_MODE),
1217 EDEF(TEXTURE_BORDER_COLOR),
1218 EDEF(TEXTURE_WIDTH),
1219 EDEF(TEXTURE_HEIGHT),
1220 EDEF(TEXTURE_BORDER),
1221 EDEF(TEXTURE_COMPONENTS),
1222 EDEF(TEXTURE_RED_SIZE),
1223 EDEF(TEXTURE_GREEN_SIZE),
1224 EDEF(TEXTURE_BLUE_SIZE),
1225 EDEF(TEXTURE_ALPHA_SIZE),
1226 EDEF(TEXTURE_LUMINANCE_SIZE),
1227 EDEF(TEXTURE_INTENSITY_SIZE),
1228 EDEF(NEAREST_MIPMAP_NEAREST),
1229 EDEF(NEAREST_MIPMAP_LINEAR),
1230 EDEF(LINEAR_MIPMAP_NEAREST),
1231 EDEF(LINEAR_MIPMAP_LINEAR),
1232 EDEF(OBJECT_LINEAR),
1233 EDEF(OBJECT_PLANE),
1234 EDEF(EYE_LINEAR),
1235 EDEF(EYE_PLANE),
1236 EDEF(SPHERE_MAP),
1237 EDEF(DECAL),
1238 EDEF(MODULATE),
1239 EDEF(NEAREST),
1240 EDEF(REPEAT),
1241 EDEF(CLAMP),
1242 EDEF(S),
1243 EDEF(T),
1244 EDEF(R),
1245 EDEF(Q),
1246 EDEF(TEXTURE_GEN_R),
1247 EDEF(TEXTURE_GEN_Q),
1248 EDEF(PROXY_TEXTURE_1D),
1249 EDEF(PROXY_TEXTURE_2D),
1250 EDEF(TEXTURE_PRIORITY),
1251 EDEF(TEXTURE_RESIDENT),
1252 EDEF(TEXTURE_BINDING_1D),
1253 EDEF(TEXTURE_BINDING_2D),
1254 EDEF(TEXTURE_INTERNAL_FORMAT),
1255 EDEF(PACK_SKIP_IMAGES),
1256 EDEF(PACK_IMAGE_HEIGHT),
1257 EDEF(UNPACK_SKIP_IMAGES),
1258 EDEF(UNPACK_IMAGE_HEIGHT),
1259 EDEF(TEXTURE_3D),
1260 EDEF(PROXY_TEXTURE_3D),
1261 EDEF(TEXTURE_DEPTH),
1262 EDEF(TEXTURE_WRAP_R),
1263 EDEF(MAX_3D_TEXTURE_SIZE),
1264 EDEF(TEXTURE_BINDING_3D),
1265 EDEF(ALPHA4),
1266 EDEF(ALPHA8),
1267 EDEF(ALPHA12),
1268 EDEF(ALPHA16),
1269 EDEF(LUMINANCE4),
1270 EDEF(LUMINANCE8),
1271 EDEF(LUMINANCE12),
1272 EDEF(LUMINANCE16),
1273 EDEF(LUMINANCE4_ALPHA4),
1274 EDEF(LUMINANCE6_ALPHA2),
1275 EDEF(LUMINANCE8_ALPHA8),
1276 EDEF(LUMINANCE12_ALPHA4),
1277 EDEF(LUMINANCE12_ALPHA12),
1278 EDEF(LUMINANCE16_ALPHA16),
1279 EDEF(INTENSITY),
1280 EDEF(INTENSITY4),
1281 EDEF(INTENSITY8),
1282 EDEF(INTENSITY12),
1283 EDEF(INTENSITY16),
1284 EDEF(R3_G3_B2),
1285 EDEF(RGB4),
1286 EDEF(RGB5),
1287 EDEF(RGB8),
1288 EDEF(RGB10),
1289 EDEF(RGB12),
1290 EDEF(RGB16),
1291 EDEF(RGBA2),
1292 EDEF(RGBA4),
1293 EDEF(RGB5_A1),
1294 EDEF(RGBA8),
1295 EDEF(RGB10_A2),
1296 EDEF(RGBA12),
1297 EDEF(RGBA16),
1298 EDEF(VENDOR),
1299 EDEF(RENDERER),
1300 EDEF(VERSION),
1301 EDEF(EXTENSIONS),
1302 EDEF(INVALID_VALUE),
1303 EDEF(INVALID_ENUM),
1304 EDEF(INVALID_OPERATION),
1305 EDEF(STACK_OVERFLOW),
1306 EDEF(STACK_UNDERFLOW),
1307 EDEF(OUT_OF_MEMORY),
1308
1309 /* extensions */
1310 EDEF(CONSTANT_COLOR_EXT),
1311 EDEF(ONE_MINUS_CONSTANT_COLOR_EXT),
1312 EDEF(CONSTANT_ALPHA_EXT),
1313 EDEF(ONE_MINUS_CONSTANT_ALPHA_EXT),
1314 EDEF(BLEND_EQUATION_EXT),
1315 EDEF(MIN_EXT),
1316 EDEF(MAX_EXT),
1317 EDEF(FUNC_ADD_EXT),
1318 EDEF(FUNC_SUBTRACT_EXT),
1319 EDEF(FUNC_REVERSE_SUBTRACT_EXT),
1320 EDEF(BLEND_COLOR_EXT),
1321 EDEF(POLYGON_OFFSET_EXT),
1322 EDEF(POLYGON_OFFSET_FACTOR_EXT),
1323 EDEF(POLYGON_OFFSET_BIAS_EXT),
1324 EDEF(VERTEX_ARRAY_EXT),
1325 EDEF(NORMAL_ARRAY_EXT),
1326 EDEF(COLOR_ARRAY_EXT),
1327 EDEF(INDEX_ARRAY_EXT),
1328 EDEF(TEXTURE_COORD_ARRAY_EXT),
1329 EDEF(EDGE_FLAG_ARRAY_EXT),
1330 EDEF(VERTEX_ARRAY_SIZE_EXT),
1331 EDEF(VERTEX_ARRAY_TYPE_EXT),
1332 EDEF(VERTEX_ARRAY_STRIDE_EXT),
1333 EDEF(VERTEX_ARRAY_COUNT_EXT),
1334 EDEF(NORMAL_ARRAY_TYPE_EXT),
1335 EDEF(NORMAL_ARRAY_STRIDE_EXT),
1336 EDEF(NORMAL_ARRAY_COUNT_EXT),
1337 EDEF(COLOR_ARRAY_SIZE_EXT),
1338 EDEF(COLOR_ARRAY_TYPE_EXT),
1339 EDEF(COLOR_ARRAY_STRIDE_EXT),
1340 EDEF(COLOR_ARRAY_COUNT_EXT),
1341 EDEF(INDEX_ARRAY_TYPE_EXT),
1342 EDEF(INDEX_ARRAY_STRIDE_EXT),
1343 EDEF(INDEX_ARRAY_COUNT_EXT),
1344 EDEF(TEXTURE_COORD_ARRAY_SIZE_EXT),
1345 EDEF(TEXTURE_COORD_ARRAY_TYPE_EXT),
1346 EDEF(TEXTURE_COORD_ARRAY_STRIDE_EXT),
1347 EDEF(TEXTURE_COORD_ARRAY_COUNT_EXT),
1348 EDEF(EDGE_FLAG_ARRAY_STRIDE_EXT),
1349 EDEF(EDGE_FLAG_ARRAY_COUNT_EXT),
1350 EDEF(VERTEX_ARRAY_POINTER_EXT),
1351 EDEF(NORMAL_ARRAY_POINTER_EXT),
1352 EDEF(COLOR_ARRAY_POINTER_EXT),
1353 EDEF(INDEX_ARRAY_POINTER_EXT),
1354 EDEF(TEXTURE_COORD_ARRAY_POINTER_EXT),
1355 EDEF(EDGE_FLAG_ARRAY_POINTER_EXT),
1356 EDEF(TEXTURE_PRIORITY_EXT),
1357 EDEF(TEXTURE_RESIDENT_EXT),
1358 EDEF(TEXTURE_1D_BINDING_EXT),
1359 EDEF(TEXTURE_2D_BINDING_EXT),
1360 EDEF(PACK_SKIP_IMAGES_EXT),
1361 EDEF(PACK_IMAGE_HEIGHT_EXT),
1362 EDEF(UNPACK_SKIP_IMAGES_EXT),
1363 EDEF(UNPACK_IMAGE_HEIGHT_EXT),
1364 EDEF(TEXTURE_3D_EXT),
1365 EDEF(PROXY_TEXTURE_3D_EXT),
1366 EDEF(TEXTURE_DEPTH_EXT),
1367 EDEF(TEXTURE_WRAP_R_EXT),
1368 EDEF(MAX_3D_TEXTURE_SIZE_EXT),
1369 EDEF(TEXTURE_3D_BINDING_EXT),
1370 EDEF(TABLE_TOO_LARGE_EXT),
1371 EDEF(COLOR_TABLE_FORMAT_EXT),
1372 EDEF(COLOR_TABLE_WIDTH_EXT),
1373 EDEF(COLOR_TABLE_RED_SIZE_EXT),
1374 EDEF(COLOR_TABLE_GREEN_SIZE_EXT),
1375 EDEF(COLOR_TABLE_BLUE_SIZE_EXT),
1376 EDEF(COLOR_TABLE_ALPHA_SIZE_EXT),
1377 EDEF(COLOR_TABLE_LUMINANCE_SIZE_EXT),
1378 EDEF(COLOR_TABLE_INTENSITY_SIZE_EXT),
1379 EDEF(TEXTURE_INDEX_SIZE_EXT),
1380 EDEF(COLOR_INDEX1_EXT),
1381 EDEF(COLOR_INDEX2_EXT),
1382 EDEF(COLOR_INDEX4_EXT),
1383 EDEF(COLOR_INDEX8_EXT),
1384 EDEF(COLOR_INDEX12_EXT),
1385 EDEF(COLOR_INDEX16_EXT),
1386 EDEF(SHARED_TEXTURE_PALETTE_EXT),
1387 EDEF(POINT_SIZE_MIN_EXT),
1388 EDEF(POINT_SIZE_MAX_EXT),
1389 EDEF(POINT_FADE_THRESHOLD_SIZE_EXT),
1390 EDEF(DISTANCE_ATTENUATION_EXT),
1391 EDEF(RESCALE_NORMAL_EXT),
1392 EDEF(ABGR_EXT),
1393 EDEF(SELECTED_TEXTURE_SGIS),
1394 EDEF(SELECTED_TEXTURE_COORD_SET_SGIS),
1395 EDEF(MAX_TEXTURES_SGIS),
1396 EDEF(TEXTURE0_SGIS),
1397 EDEF(TEXTURE1_SGIS),
1398 EDEF(TEXTURE2_SGIS),
1399 EDEF(TEXTURE3_SGIS),
1400 EDEF(TEXTURE_COORD_SET_SOURCE_SGIS),
1401 EDEF(SELECTED_TEXTURE_EXT),
1402 EDEF(SELECTED_TEXTURE_COORD_SET_EXT),
1403 EDEF(SELECTED_TEXTURE_TRANSFORM_EXT),
1404 EDEF(MAX_TEXTURES_EXT),
1405 EDEF(MAX_TEXTURE_COORD_SETS_EXT),
1406 EDEF(TEXTURE_ENV_COORD_SET_EXT),
1407 EDEF(TEXTURE0_EXT),
1408 EDEF(TEXTURE1_EXT),
1409 EDEF(TEXTURE2_EXT),
1410 EDEF(TEXTURE3_EXT),
1411 EDEF(CLAMP_TO_EDGE_SGIS),
1412 EDEF(RESCALE_NORMAL),
1413 EDEF(CLAMP_TO_EDGE),
1414 EDEF(MAX_ELEMENTS_VERTICES),
1415 EDEF(MAX_ELEMENTS_INDICES),
1416 EDEF(BGR),
1417 EDEF(BGRA),
1418 EDEF(UNSIGNED_BYTE_3_3_2),
1419 EDEF(UNSIGNED_BYTE_2_3_3_REV),
1420 EDEF(UNSIGNED_SHORT_5_6_5),
1421 EDEF(UNSIGNED_SHORT_5_6_5_REV),
1422 EDEF(UNSIGNED_SHORT_4_4_4_4),
1423 EDEF(UNSIGNED_SHORT_4_4_4_4_REV),
1424 EDEF(UNSIGNED_SHORT_5_5_5_1),
1425 EDEF(UNSIGNED_SHORT_1_5_5_5_REV),
1426 EDEF(UNSIGNED_INT_8_8_8_8),
1427 EDEF(UNSIGNED_INT_8_8_8_8_REV),
1428 EDEF(UNSIGNED_INT_10_10_10_2),
1429 EDEF(UNSIGNED_INT_2_10_10_10_REV),
1430 EDEF(LIGHT_MODEL_COLOR_CONTROL),
1431 EDEF(SINGLE_COLOR),
1432 EDEF(SEPARATE_SPECULAR_COLOR),
1433 EDEF(TEXTURE_MIN_LOD),
1434 EDEF(TEXTURE_MAX_LOD),
1435 EDEF(TEXTURE_BASE_LEVEL),
1436 EDEF(TEXTURE_MAX_LEVEL)
1437 };
1438
1439 #undef EDEF
1440
1441 #define N_ENUMS (sizeof(enums) / sizeof(ENUM))
1442
1443 /***************************************************************************/
1444
1445 static void print_enum_name( FILE* OUT, GLenum e )
1446 {
1447 int i, found= 0;
1448 for( i= 0; i < N_ENUMS; ++i )
1449 {
1450 if( enums[i].e == e )
1451 {
1452 if( found )
1453 fprintf( OUT, "/" );
1454 found= 1;
1455 fprintf( OUT, "%s", enums[i].name );
1456 }
1457 }
1458 if( ! found )
1459 fprintf( OUT, "*UNKNOWN* [%04x]", (int)e );
1460 fprintf( OUT, "\n" );
1461 }
1462
1463 #define BOOL_STRING(b) (b ? "true" : "false")
1464
1465 #define VAR_ENUM(VAR) \
1466 { \
1467 GLint e= 0; \
1468 glGetIntegerv(GL_##VAR,&e); \
1469 fprintf( OUT, "%s: ", #VAR ); \
1470 print_enum_name( OUT, (GLenum) e ); \
1471 }
1472
1473 #define VAR_FLOAT4(VAR) \
1474 { \
1475 GLfloat f[4]; \
1476 f[0]= f[1]= f[2]= f[3]= 0.0; \
1477 glGetFloatv(GL_##VAR,f); \
1478 fprintf( OUT, "%s: [%f %f %f %f]\n", \
1479 #VAR, f[0], f[1], f[2], f[3] ); \
1480 }
1481
1482 #define VAR_MAT_FLOAT4(VAR) \
1483 { \
1484 GLfloat f[4]; \
1485 f[0]= f[1]= f[2]= f[3]= 0.0; \
1486 glGetMaterialfv(GL_FRONT,GL_##VAR,f); \
1487 fprintf( OUT, "FRONT_%s: [%f %f %f %f]\n", \
1488 #VAR, f[0], f[1], f[2], f[3] ); \
1489 glGetMaterialfv(GL_BACK,GL_##VAR,f); \
1490 fprintf( OUT, " BACK_%s: [%f %f %f %f]\n", \
1491 #VAR, f[0], f[1], f[2], f[3] ); \
1492 }
1493
1494 #define VAR_LIGHT_FLOAT4(LIGHT,VAR) \
1495 { \
1496 GLfloat f[4]; \
1497 f[0]= f[1]= f[2]= f[3]= 0.0; \
1498 glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,f); \
1499 fprintf( OUT, "LIGHT%d.%s: [%f %f %f %f]\n", \
1500 LIGHT, #VAR, f[0], f[1], f[2], f[3] ); \
1501 }
1502
1503 #define VAR_LIGHT_FLOAT3(LIGHT,VAR) \
1504 { \
1505 GLfloat f[3]; \
1506 f[0]= f[1]= f[2]= 0.0; \
1507 glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,f); \
1508 fprintf( OUT, "LIGHT%d.%s: [%f %f %f]\n", \
1509 LIGHT, #VAR, f[0], f[1], f[2] ); \
1510 }
1511
1512 #define VAR_FLOAT3(VAR) \
1513 { \
1514 GLfloat f[3]; \
1515 f[0]= f[1]= f[2]= 0.0; \
1516 glGetFloatv(GL_##VAR,f) ; \
1517 fprintf( OUT, "%s: [%f %f %f]\n", \
1518 #VAR, f[0], f[1], f[2] ); \
1519 }
1520 #define VAR_FLOAT2(VAR) \
1521 { \
1522 GLfloat f[2]; \
1523 f[0]= f[1]= 0.0; \
1524 glGetFloatv(GL_##VAR,f); \
1525 fprintf( OUT, "%s: [%f %f]\n", \
1526 #VAR, f[0], f[1] ); \
1527 }
1528
1529 #define VAR_COLOR(VAR) VAR_FLOAT4(VAR)
1530 #define VAR_TEXCOORD(VAR) VAR_FLOAT4(VAR)
1531 #define VAR_NORMAL(VAR) VAR_FLOAT3(VAR)
1532
1533 #define VAR_MAT_COLOR(VAR) VAR_MAT_FLOAT4(VAR)
1534 #define VAR_LIGHT_COLOR(LIGHT,VAR) VAR_LIGHT_FLOAT4(LIGHT,VAR)
1535
1536 #define VAR_FLOAT(VAR) \
1537 { \
1538 GLfloat f= 0.0; \
1539 glGetFloatv(GL_##VAR,&f); \
1540 fprintf( OUT, "%s: %f\n", #VAR, f ); \
1541 }
1542
1543 #define VAR_MAT_FLOAT(VAR) \
1544 { \
1545 GLfloat f= 0.0; \
1546 glGetMaterialfv(GL_FRONT,GL_##VAR,&f); \
1547 fprintf( OUT, "FRONT_%s: %f\n", #VAR, f ); \
1548 glGetMaterialfv(GL_BACK,GL_##VAR,&f); \
1549 fprintf( OUT, " BACK_%s: %f\n", #VAR, f ); \
1550 }
1551
1552 #define VAR_LIGHT_FLOAT(LIGHT,VAR) \
1553 { \
1554 GLfloat f= 0.0; \
1555 glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,&f); \
1556 fprintf( OUT, "LIGHT%d.%s: %f\n", \
1557 LIGHT, #VAR, f ); \
1558 }
1559
1560 #define VAR_INT(VAR) \
1561 { \
1562 GLint i= 0; \
1563 glGetIntegerv(GL_##VAR,&i); \
1564 fprintf( OUT, "%s: %d\n", #VAR, (int)i ); \
1565 }
1566 #define VAR_INTEGER(VAR) VAR_INT(VAR)
1567 #define VAR_INDEX(VAR) VAR_INT(VAR)
1568 #define VAR_HEXINT(VAR) \
1569 { \
1570 GLint i= 0; \
1571 glGetIntegerv(GL_##VAR,&i); \
1572 fprintf( OUT, "%s: 0x%04x\n", #VAR, (int)i ); \
1573 }
1574 #define VAR_INT4(VAR) \
1575 { \
1576 GLint i[4]; \
1577 i[0]= i[1]= i[2]= i[3]= 0; \
1578 glGetIntegerv(GL_##VAR,i); \
1579 fprintf( OUT, "%s: [%d %d %d %d]\n", \
1580 #VAR, (int)i[0], (int)i[1], (int)i[2], (int)i[3] ); \
1581 }
1582 #define VAR_BOOL(VAR) \
1583 { \
1584 GLboolean b= 0; \
1585 glGetBooleanv(GL_##VAR,&b); \
1586 fprintf( OUT, "%s: %s\n", #VAR, BOOL_STRING(b) ); \
1587 }
1588 #define VAR_BOOL4(VAR) \
1589 { \
1590 GLboolean b[4]; \
1591 b[0]= b[1]= b[2]= b[3]= 0; \
1592 glGetBooleanv(GL_##VAR,b); \
1593 fprintf( OUT, "%s: [%s %s %s %s]\n", \
1594 #VAR, \
1595 BOOL_STRING(b[0]), \
1596 BOOL_STRING(b[1]), \
1597 BOOL_STRING(b[2]), \
1598 BOOL_STRING(b[3]) ); \
1599 }
1600 #define VAR_PTR(VAR) \
1601 { \
1602 GLvoid* p= 0; \
1603 glGetPointerv(GL_##VAR,&p); \
1604 fprintf( OUT, "%s: %p\n", #VAR, p ); \
1605 }
1606 #define VAR_MATRIX(VAR) \
1607 { \
1608 GLfloat m[16]; \
1609 int i; \
1610 for( i= 0; i < 16; ++i ) m[i]= 0.0; \
1611 glGetFloatv(GL_##VAR,m); \
1612 fprintf( OUT, \
1613 "%s:\n\t[%+.6f %+.6f %+.6f %+.6f]\n\t[%+.6f %+.6f %+.6f
1614 %+.6f]\n\t[%+.6f %+.6f %+.6f %+.6f]\n\t[%+.6f %+.6f %+.6f %+.6f]\n", \
1615 #VAR, \
1616 m[0+0*4], m[0+1*4], m[0+2*4], m[0+3*4], \
1617 m[1+0*4], m[1+1*4], m[1+2*4], m[1+3*4], \
1618 m[2+0*4], m[2+1*4], m[2+2*4], m[2+3*4], \
1619 m[3+0*4], m[3+1*4], m[3+2*4], m[3+3*4] ); \
1620 }
1621
1622 /***************************************************************************/
1623
1624 /*
1625 #define OUT stderr
1626 */
1627 void dump_opengl_state( FILE* OUT )
1628 {
1629 int i;
1630 GLint n_lights= 0;
1631
1632 glGetIntegerv( GL_MAX_LIGHTS, &n_lights );
1633
1634 VAR_COLOR(CURRENT_COLOR)
1635 VAR_INDEX(CURRENT_INDEX)
1636 VAR_TEXCOORD(CURRENT_TEXTURE_COORDS)
1637 VAR_NORMAL(CURRENT_NORMAL)
1638 VAR_FLOAT4(CURRENT_RASTER_POSITION)
1639 VAR_FLOAT(CURRENT_RASTER_DISTANCE)
1640 VAR_COLOR(CURRENT_RASTER_COLOR)
1641 VAR_INDEX(CURRENT_RASTER_INDEX)
1642 VAR_TEXCOORD(CURRENT_RASTER_TEXTURE_COORDS)
1643 VAR_BOOL(CURRENT_RASTER_POSITION_VALID)
1644 VAR_BOOL(EDGE_FLAG)
1645
1646 VAR_BOOL (VERTEX_ARRAY)
1647 VAR_INTEGER(VERTEX_ARRAY_SIZE)
1648 VAR_ENUM (VERTEX_ARRAY_TYPE)
1649 VAR_INTEGER(VERTEX_ARRAY_STRIDE)
1650 VAR_PTR (VERTEX_ARRAY_POINTER)
1651
1652 VAR_BOOL (NORMAL_ARRAY)
1653 VAR_ENUM (NORMAL_ARRAY_TYPE)
1654 VAR_INTEGER(NORMAL_ARRAY_STRIDE)
1655 VAR_PTR (NORMAL_ARRAY_POINTER)
1656
1657 VAR_BOOL (COLOR_ARRAY)
1658 VAR_INTEGER(COLOR_ARRAY_SIZE)
1659 VAR_ENUM (COLOR_ARRAY_TYPE)
1660 VAR_INTEGER(COLOR_ARRAY_STRIDE)
1661 VAR_PTR (COLOR_ARRAY_POINTER)
1662
1663 VAR_BOOL (INDEX_ARRAY)
1664 VAR_ENUM (INDEX_ARRAY_TYPE)
1665 VAR_INTEGER(INDEX_ARRAY_STRIDE)
1666 VAR_PTR (INDEX_ARRAY_POINTER)
1667
1668 VAR_BOOL (TEXTURE_COORD_ARRAY)
1669 VAR_INTEGER(TEXTURE_COORD_ARRAY_SIZE)
1670 VAR_ENUM (TEXTURE_COORD_ARRAY_TYPE)
1671 VAR_INTEGER(TEXTURE_COORD_ARRAY_STRIDE)
1672 VAR_PTR (TEXTURE_COORD_ARRAY_POINTER)
1673
1674 VAR_BOOL (EDGE_FLAG_ARRAY)
1675 VAR_INTEGER(EDGE_FLAG_ARRAY_STRIDE)
1676 VAR_PTR (EDGE_FLAG_ARRAY_POINTER)
1677
1678 VAR_MATRIX(MODELVIEW_MATRIX)
1679 VAR_MATRIX(PROJECTION_MATRIX)
1680 VAR_MATRIX(TEXTURE_MATRIX)
1681 VAR_INT4(VIEWPORT)
1682 VAR_FLOAT2(DEPTH_RANGE)
1683 VAR_INT(MODELVIEW_STACK_DEPTH)
1684 VAR_INT(PROJECTION_STACK_DEPTH)
1685 VAR_INT(TEXTURE_STACK_DEPTH)
1686 VAR_ENUM(MATRIX_MODE)
1687 VAR_BOOL(NORMALIZE)
1688 VAR_BOOL(RESCALE_NORMAL_EXT)
1689 VAR_BOOL(CLIP_PLANE0)
1690 VAR_BOOL(CLIP_PLANE1)
1691 VAR_BOOL(CLIP_PLANE2)
1692 VAR_BOOL(CLIP_PLANE3)
1693 VAR_BOOL(CLIP_PLANE4)
1694 VAR_BOOL(CLIP_PLANE5)
1695 /* + glGetClipPlane() */
1696
1697 VAR_COLOR(FOG_COLOR)
1698 VAR_INDEX(FOG_INDEX)
1699 VAR_FLOAT(FOG_DENSITY)
1700 VAR_FLOAT(FOG_START)
1701 VAR_FLOAT(FOG_END)
1702 VAR_ENUM(FOG_MODE)
1703 VAR_BOOL(FOG)
1704 VAR_ENUM(SHADE_MODEL)
1705
1706 VAR_BOOL(LIGHTING)
1707 VAR_BOOL(COLOR_MATERIAL)
1708 VAR_ENUM(COLOR_MATERIAL_PARAMETER)
1709 VAR_ENUM(COLOR_MATERIAL_FACE)
1710
1711 VAR_MAT_COLOR(AMBIENT)
1712 VAR_MAT_COLOR(DIFFUSE)
1713 VAR_MAT_COLOR(SPECULAR)
1714 VAR_MAT_COLOR(EMISSION)
1715 VAR_MAT_FLOAT(SHININESS)
1716
1717 VAR_COLOR(LIGHT_MODEL_AMBIENT)
1718 VAR_BOOL(LIGHT_MODEL_LOCAL_VIEWER)
1719 VAR_BOOL(LIGHT_MODEL_TWO_SIDE)
1720 /* VAR_ENUM(LIGHT_MODEL_COLOR_CONTROL)*/
1721
1722 for( i= 0; i < n_lights; ++i )
1723 {
1724 GLboolean b= 0;
1725
1726 glGetBooleanv( GL_LIGHT0 + i, &b );
1727 fprintf( OUT, "LIGHT%d: %s\n", i, BOOL_STRING(b) );
1728
1729 if( ! b )
1730 continue;
1731
1732 VAR_LIGHT_COLOR(i,AMBIENT)
1733 VAR_LIGHT_COLOR(i,DIFFUSE)
1734 VAR_LIGHT_COLOR(i,SPECULAR)
1735 VAR_LIGHT_FLOAT4(i,POSITION)
1736 VAR_LIGHT_FLOAT(i,CONSTANT_ATTENUATION)
1737 VAR_LIGHT_FLOAT(i,LINEAR_ATTENUATION)
1738 VAR_LIGHT_FLOAT(i,QUADRATIC_ATTENUATION)
1739 VAR_LIGHT_FLOAT3(i,SPOT_DIRECTION)
1740 VAR_LIGHT_FLOAT(i,SPOT_EXPONENT)
1741 VAR_LIGHT_FLOAT(i,SPOT_CUTOFF)
1742 /* COLOR_INDEXES */
1743 }
1744
1745 VAR_FLOAT(POINT_SIZE)
1746 VAR_BOOL(POINT_SMOOTH)
1747 VAR_FLOAT(LINE_WIDTH)
1748 VAR_BOOL(LINE_SMOOTH)
1749 VAR_HEXINT(LINE_STIPPLE_PATTERN)
1750 VAR_INT(LINE_STIPPLE_REPEAT)
1751 VAR_BOOL(LINE_STIPPLE)
1752 VAR_BOOL(CULL_FACE)
1753 VAR_ENUM(CULL_FACE_MODE)
1754 VAR_ENUM(FRONT_FACE)
1755 VAR_BOOL(POLYGON_SMOOTH)
1756 VAR_ENUM(POLYGON_MODE)
1757 VAR_FLOAT(POLYGON_OFFSET_FACTOR)
1758 VAR_FLOAT(POLYGON_OFFSET_UNITS)
1759 VAR_BOOL(POLYGON_OFFSET_POINT)
1760 VAR_BOOL(POLYGON_OFFSET_LINE)
1761 VAR_BOOL(POLYGON_OFFSET_FILL)
1762 /* GetPolygonStipple */
1763 VAR_BOOL(POLYGON_STIPPLE)
1764
1765 VAR_BOOL(TEXTURE_1D)
1766 VAR_BOOL(TEXTURE_2D)
1767 /* VAR_BOOL(TEXTURE_3D)*/
1768
1769 VAR_INT(TEXTURE_BINDING_1D)
1770 VAR_INT(TEXTURE_BINDING_2D)
1771 /* VAR_INT(TEXTURE_BINDING_3D)*/
1772
1773 /* GetTexImage() */
1774 /* GetTexLevelParameter() */
1775 /* GetTexEnv() */
1776
1777 VAR_BOOL(TEXTURE_GEN_S)
1778 VAR_BOOL(TEXTURE_GEN_T)
1779 VAR_BOOL(TEXTURE_GEN_R)
1780 VAR_BOOL(TEXTURE_GEN_Q)
1781
1782 /* GetTexGen() */
1783
1784 VAR_BOOL(SCISSOR_TEST)
1785 VAR_INT4(SCISSOR_BOX)
1786 VAR_BOOL(ALPHA_TEST)
1787 VAR_ENUM(ALPHA_TEST_FUNC)
1788 VAR_FLOAT(ALPHA_TEST_REF)
1789 VAR_BOOL(STENCIL_TEST)
1790 VAR_ENUM(STENCIL_FUNC)
1791 VAR_HEXINT(STENCIL_VALUE_MASK)
1792 VAR_INT(STENCIL_REF)
1793 VAR_ENUM(STENCIL_FAIL)
1794 VAR_ENUM(STENCIL_PASS_DEPTH_FAIL)
1795 VAR_ENUM(STENCIL_PASS_DEPTH_PASS)
1796 VAR_BOOL(DEPTH_TEST)
1797 VAR_ENUM(DEPTH_FUNC)
1798 VAR_BOOL(BLEND)
1799 VAR_ENUM(BLEND_SRC)
1800 VAR_ENUM(BLEND_DST)
1801
1802 VAR_BOOL(DITHER)
1803 VAR_BOOL(LOGIC_OP) /* INDEX_LOGIC_OP */
1804 VAR_BOOL(COLOR_LOGIC_OP)
1805
1806 VAR_ENUM(DRAW_BUFFER)
1807 VAR_INT(INDEX_WRITEMASK)
1808 VAR_BOOL4(COLOR_WRITEMASK)
1809 VAR_BOOL(DEPTH_WRITEMASK)
1810 VAR_HEXINT(STENCIL_WRITEMASK)
1811 VAR_COLOR(COLOR_CLEAR_VALUE)
1812 VAR_INDEX(INDEX_CLEAR_VALUE)
1813 VAR_FLOAT(DEPTH_CLEAR_VALUE)
1814 VAR_INT(STENCIL_CLEAR_VALUE)
1815 VAR_FLOAT(ACCUM_CLEAR_VALUE)
1816
1817 VAR_BOOL(UNPACK_SWAP_BYTES)
1818 VAR_BOOL(UNPACK_LSB_FIRST)
1819 #ifdef UNPACK_IMAGE_HEIGHT
1820 VAR_INT(UNPACK_IMAGE_HEIGHT)
1821 #endif
1822 #ifdef UNPACK_SKIP_IMAGES
1823 VAR_INT(UNPACK_SKIP_IMAGES)
1824 #endif
1825 VAR_INT(UNPACK_ROW_LENGTH)
1826 VAR_INT(UNPACK_SKIP_ROWS)
1827 VAR_INT(UNPACK_SKIP_PIXELS)
1828 VAR_INT(UNPACK_ALIGNMENT)
1829
1830 VAR_BOOL(PACK_SWAP_BYTES)
1831 VAR_BOOL(PACK_LSB_FIRST)
1832 #ifdef PACK_IMAGE_HEIGHT
1833 VAR_INT(PACK_IMAGE_HEIGHT)
1834 #endif
1835 #ifdef PACK_SKIP_IMAGES
1836 VAR_INT(PACK_SKIP_IMAGES)
1837 #endif
1838 VAR_INT(PACK_ROW_LENGTH)
1839 VAR_INT(PACK_SKIP_ROWS)
1840 VAR_INT(PACK_SKIP_PIXELS)
1841 VAR_INT(PACK_ALIGNMENT)
1842
1843 VAR_BOOL(MAP_COLOR)
1844 VAR_BOOL(MAP_STENCIL)
1845 VAR_INT(INDEX_SHIFT)
1846 VAR_INT(INDEX_OFFSET)
1847 VAR_FLOAT(RED_SCALE)
1848 VAR_FLOAT(GREEN_SCALE)
1849 VAR_FLOAT(BLUE_SCALE)
1850 VAR_FLOAT(ALPHA_SCALE)
1851 VAR_FLOAT(DEPTH_SCALE)
1852 VAR_FLOAT(RED_BIAS)
1853 VAR_FLOAT(GREEN_BIAS)
1854 VAR_FLOAT(BLUE_BIAS)
1855 VAR_FLOAT(ALPHA_BIAS)
1856 VAR_FLOAT(DEPTH_BIAS)
1857
1858 VAR_FLOAT(ZOOM_X)
1859 VAR_FLOAT(ZOOM_Y)
1860
1861 VAR_ENUM(READ_BUFFER)
1862
1863 VAR_BOOL(AUTO_NORMAL)
1864
1865 VAR_ENUM(PERSPECTIVE_CORRECTION_HINT)
1866 VAR_ENUM(POINT_SMOOTH_HINT)
1867 VAR_ENUM(LINE_SMOOTH_HINT)
1868 VAR_ENUM(POLYGON_SMOOTH_HINT)
1869 VAR_ENUM(FOG_HINT)
1870
1871 VAR_INT(MAX_LIGHTS)
1872 VAR_INT(MAX_CLIP_PLANES)
1873 VAR_INT(MAX_MODELVIEW_STACK_DEPTH)
1874 VAR_INT(MAX_PROJECTION_STACK_DEPTH)
1875 VAR_INT(MAX_TEXTURE_STACK_DEPTH)
1876 VAR_INT(SUBPIXEL_BITS)
1877 #ifdef GL_MAX_3D_TEXTURE_SIZE
1878 VAR_INT(MAX_3D_TEXTURE_SIZE)
1879 #endif
1880 VAR_INT(MAX_TEXTURE_SIZE)
1881 VAR_INT(MAX_PIXEL_MAP_TABLE)
1882 VAR_INT(MAX_NAME_STACK_DEPTH)
1883 VAR_INT(MAX_LIST_NESTING)
1884 VAR_INT(MAX_EVAL_ORDER)
1885 VAR_INT(MAX_VIEWPORT_DIMS)
1886 VAR_INT(MAX_ATTRIB_STACK_DEPTH)
1887 VAR_INT(MAX_CLIENT_ATTRIB_STACK_DEPTH)
1888 VAR_INT(AUX_BUFFERS)
1889 VAR_BOOL(RGBA_MODE)
1890 VAR_BOOL(INDEX_MODE)
1891 VAR_BOOL(DOUBLEBUFFER)
1892 VAR_BOOL(STEREO)
1893 #ifdef GL_ALIASED_POINT_SIZE_RANGE
1894 VAR_FLOAT2(ALIASED_POINT_SIZE_RANGE)
1895 #endif
1896 #ifdef GL_POINT_SIZE_RANGE
1897 VAR_FLOAT2(POINT_SIZE_RANGE) /* SMOOTH_POINT_SIZE_RANGE */
1898 #endif
1899 VAR_FLOAT(POINT_SIZE_GRANULARITY) /* SMOOTH_POINT_SIZE_GRANULARITY */
1900 #ifdef GL_ALIASED_LINE_WIDTH_RANGE
1901 VAR_FLOAT2(ALIASED_LINE_WIDTH_RANGE)
1902 #endif
1903 VAR_FLOAT2(LINE_WIDTH_RANGE) /* SMOOTH_LINE_WIDTH_RANGE */
1904 VAR_FLOAT(LINE_WIDTH_GRANULARITY) /* SMOOTH_LINE_WIDTH_GRANULARITY */
1905
1906 #ifdef GL_MAX_ELEMENTS_INDICES
1907 VAR_INT(MAX_ELEMENTS_INDICES)
1908 #endif
1909 #ifdef GL_MAX_ELEMENTS_VERTICES
1910 VAR_INT(MAX_ELEMENTS_VERTICES)
1911 #endif
1912 VAR_INT(RED_BITS)
1913 VAR_INT(GREEN_BITS)
1914 VAR_INT(BLUE_BITS)
1915 VAR_INT(ALPHA_BITS)
1916 VAR_INT(INDEX_BITS)
1917 VAR_INT(DEPTH_BITS)
1918 VAR_INT(STENCIL_BITS)
1919 VAR_INT(ACCUM_RED_BITS)
1920 VAR_INT(ACCUM_GREEN_BITS)
1921 VAR_INT(ACCUM_BLUE_BITS)
1922 VAR_INT(ACCUM_ALPHA_BITS)
1923
1924 VAR_INT(LIST_BASE)
1925 VAR_INT(LIST_INDEX)
1926 VAR_ENUM(LIST_MODE)
1927 VAR_INT(ATTRIB_STACK_DEPTH)
1928 VAR_INT(CLIENT_ATTRIB_STACK_DEPTH)
1929 VAR_INT(NAME_STACK_DEPTH)
1930 VAR_ENUM(RENDER_MODE)
1931 VAR_PTR(SELECTION_BUFFER_POINTER)
1932 VAR_INT(SELECTION_BUFFER_SIZE)
1933 VAR_PTR(FEEDBACK_BUFFER_POINTER)
1934 VAR_INT(FEEDBACK_BUFFER_SIZE)
1935 VAR_ENUM(FEEDBACK_BUFFER_TYPE)
1936
1937 /* glGetError() */
1938 }
1939
1940 /***************************************************************************/
1941
1942 /*#define TEST*/
1943 #ifdef TEST
1944
1945 #include <GL/glut.h>
1946
1947 int main( int argc, char *argv[] )
1948 {
1949 glutInit( &argc, argv );
1950 glutInitWindowPosition(0, 0);
1951 glutInitWindowSize(400, 300);
1952 glutInitDisplayMode(GLUT_RGB);
1953 glutCreateWindow(argv[0]);
1954 dump_opengl_state(stdout);
1955 return 0;
1956 }
1957
1958 #endif
1959