home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / System / Mesa-3.1 / util / dumpstate.c next >
C/C++ Source or Header  |  1999-08-18  |  71KB  |  1,960 lines

  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.  
  1960.