/* * * From: Stephane Rehel <rehel@worldnet.fr> * Date: Mon, 31 May 1999 18:40:54 -0400 * To: Paul Brian <brianp@ra.avid.com> * Subject: OpenGL State Dump Function * * Here is a function that dumps the current OpenGL state. I wrote it * some time ago. * * In the attachment: * + the code itself * + its output * * I think Mesa is wrong on some getBooleanv(). For example, GL_VERTEX_ARRAY * is queried by IsEnabled() (cf. p. 196 of the spec). But on page 193 * we can read that all the boolean attribs that can be queried by IsEnabled() * can also be queried by IsEnabled(). * * I had duplicated all the enums (LOCAL_*) so that the code can run on any * OpenGL version, even if an enum is not recognized. * * The code can be shipped in the public domain. * * Stephane. */ /* * Stephane Rehel * Creation: February 5 1999 */ #include <stdio.h> #include <GL/gl.h> /***************************************************************************/ enum { /* Data types */ LOCAL_GL_BYTE = 0x1400, LOCAL_GL_UNSIGNED_BYTE = 0x1401, LOCAL_GL_SHORT = 0x1402, LOCAL_GL_UNSIGNED_SHORT = 0x1403, LOCAL_GL_INT = 0x1404, LOCAL_GL_UNSIGNED_INT = 0x1405, LOCAL_GL_FLOAT = 0x1406, LOCAL_GL_DOUBLE = 0x140A, LOCAL_GL_2_BYTES = 0x1407, LOCAL_GL_3_BYTES = 0x1408, LOCAL_GL_4_BYTES = 0x1409, /* Primitives */ LOCAL_GL_LINES = 0x0001, LOCAL_GL_POINTS = 0x0000, LOCAL_GL_LINE_STRIP = 0x0003, LOCAL_GL_LINE_LOOP = 0x0002, LOCAL_GL_TRIANGLES = 0x0004, LOCAL_GL_TRIANGLE_STRIP = 0x0005, LOCAL_GL_TRIANGLE_FAN = 0x0006, LOCAL_GL_QUADS = 0x0007, LOCAL_GL_QUAD_STRIP = 0x0008, LOCAL_GL_POLYGON = 0x0009, LOCAL_GL_EDGE_FLAG = 0x0B43, /* Vertex Arrays */ LOCAL_GL_VERTEX_ARRAY = 0x8074, LOCAL_GL_NORMAL_ARRAY = 0x8075, LOCAL_GL_COLOR_ARRAY = 0x8076, LOCAL_GL_INDEX_ARRAY = 0x8077, LOCAL_GL_TEXTURE_COORD_ARRAY = 0x8078, LOCAL_GL_EDGE_FLAG_ARRAY = 0x8079, LOCAL_GL_VERTEX_ARRAY_SIZE = 0x807A, LOCAL_GL_VERTEX_ARRAY_TYPE = 0x807B, LOCAL_GL_VERTEX_ARRAY_STRIDE = 0x807C, LOCAL_GL_NORMAL_ARRAY_TYPE = 0x807E, LOCAL_GL_NORMAL_ARRAY_STRIDE = 0x807F, LOCAL_GL_COLOR_ARRAY_SIZE = 0x8081, LOCAL_GL_COLOR_ARRAY_TYPE = 0x8082, LOCAL_GL_COLOR_ARRAY_STRIDE = 0x8083, LOCAL_GL_INDEX_ARRAY_TYPE = 0x8085, LOCAL_GL_INDEX_ARRAY_STRIDE = 0x8086, LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088, LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089, LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A, LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C, LOCAL_GL_VERTEX_ARRAY_POINTER = 0x808E, LOCAL_GL_NORMAL_ARRAY_POINTER = 0x808F, LOCAL_GL_COLOR_ARRAY_POINTER = 0x8090, LOCAL_GL_INDEX_ARRAY_POINTER = 0x8091, LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092, LOCAL_GL_EDGE_FLAG_ARRAY_POINTER = 0x8093, LOCAL_GL_V2F = 0x2A20, LOCAL_GL_V3F = 0x2A21, LOCAL_GL_C4UB_V2F = 0x2A22, LOCAL_GL_C4UB_V3F = 0x2A23, LOCAL_GL_C3F_V3F = 0x2A24, LOCAL_GL_N3F_V3F = 0x2A25, LOCAL_GL_C4F_N3F_V3F = 0x2A26, LOCAL_GL_T2F_V3F = 0x2A27, LOCAL_GL_T4F_V4F = 0x2A28, LOCAL_GL_T2F_C4UB_V3F = 0x2A29, LOCAL_GL_T2F_C3F_V3F = 0x2A2A, LOCAL_GL_T2F_N3F_V3F = 0x2A2B, LOCAL_GL_T2F_C4F_N3F_V3F = 0x2A2C, LOCAL_GL_T4F_C4F_N3F_V4F = 0x2A2D, /* Matrix Mode */ LOCAL_GL_MATRIX_MODE = 0x0BA0, LOCAL_GL_MODELVIEW = 0x1700, LOCAL_GL_PROJECTION = 0x1701, LOCAL_GL_TEXTURE = 0x1702, /* Points */ LOCAL_GL_POINT_SMOOTH = 0x0B10, LOCAL_GL_POINT_SIZE = 0x0B11, LOCAL_GL_POINT_SIZE_GRANULARITY = 0x0B13, LOCAL_GL_POINT_SIZE_RANGE = 0x0B12, /* Lines */ LOCAL_GL_LINE_SMOOTH = 0x0B20, LOCAL_GL_LINE_STIPPLE = 0x0B24, LOCAL_GL_LINE_STIPPLE_PATTERN = 0x0B25, LOCAL_GL_LINE_STIPPLE_REPEAT = 0x0B26, LOCAL_GL_LINE_WIDTH = 0x0B21, LOCAL_GL_LINE_WIDTH_GRANULARITY = 0x0B23, LOCAL_GL_LINE_WIDTH_RANGE = 0x0B22, /* Polygons */ LOCAL_GL_POINT = 0x1B00, LOCAL_GL_LINE = 0x1B01, LOCAL_GL_FILL = 0x1B02, LOCAL_GL_CCW = 0x0901, LOCAL_GL_CW = 0x0900, LOCAL_GL_FRONT = 0x0404, LOCAL_GL_BACK = 0x0405, LOCAL_GL_CULL_FACE = 0x0B44, LOCAL_GL_CULL_FACE_MODE = 0x0B45, LOCAL_GL_POLYGON_SMOOTH = 0x0B41, LOCAL_GL_POLYGON_STIPPLE = 0x0B42, LOCAL_GL_FRONT_FACE = 0x0B46, LOCAL_GL_POLYGON_MODE = 0x0B40, LOCAL_GL_POLYGON_OFFSET_FACTOR = 0x8038, LOCAL_GL_POLYGON_OFFSET_UNITS = 0x2A00, LOCAL_GL_POLYGON_OFFSET_POINT = 0x2A01, LOCAL_GL_POLYGON_OFFSET_LINE = 0x2A02, LOCAL_GL_POLYGON_OFFSET_FILL = 0x8037, /* Display Lists */ LOCAL_GL_COMPILE = 0x1300, LOCAL_GL_COMPILE_AND_EXECUTE = 0x1301, LOCAL_GL_LIST_BASE = 0x0B32, LOCAL_GL_LIST_INDEX = 0x0B33, LOCAL_GL_LIST_MODE = 0x0B30, /* Depth buffer */ LOCAL_GL_NEVER = 0x0200, LOCAL_GL_LESS = 0x0201, LOCAL_GL_GEQUAL = 0x0206, LOCAL_GL_LEQUAL = 0x0203, LOCAL_GL_GREATER = 0x0204, LOCAL_GL_NOTEQUAL = 0x0205, LOCAL_GL_EQUAL = 0x0202, LOCAL_GL_ALWAYS = 0x0207, LOCAL_GL_DEPTH_TEST = 0x0B71, LOCAL_GL_DEPTH_BITS = 0x0D56, LOCAL_GL_DEPTH_CLEAR_VALUE = 0x0B73, LOCAL_GL_DEPTH_FUNC = 0x0B74, LOCAL_GL_DEPTH_RANGE = 0x0B70, LOCAL_GL_DEPTH_WRITEMASK = 0x0B72, LOCAL_GL_DEPTH_COMPONENT = 0x1902, /* Lighting */ LOCAL_GL_LIGHTING = 0x0B50, LOCAL_GL_LIGHT0 = 0x4000, LOCAL_GL_LIGHT1 = 0x4001, LOCAL_GL_LIGHT2 = 0x4002, LOCAL_GL_LIGHT3 = 0x4003, LOCAL_GL_LIGHT4 = 0x4004, LOCAL_GL_LIGHT5 = 0x4005, LOCAL_GL_LIGHT6 = 0x4006, LOCAL_GL_LIGHT7 = 0x4007, LOCAL_GL_SPOT_EXPONENT = 0x1205, LOCAL_GL_SPOT_CUTOFF = 0x1206, LOCAL_GL_CONSTANT_ATTENUATION = 0x1207, LOCAL_GL_LINEAR_ATTENUATION = 0x1208, LOCAL_GL_QUADRATIC_ATTENUATION = 0x1209, LOCAL_GL_AMBIENT = 0x1200, LOCAL_GL_DIFFUSE = 0x1201, LOCAL_GL_SPECULAR = 0x1202, LOCAL_GL_SHININESS = 0x1601, LOCAL_GL_EMISSION = 0x1600, LOCAL_GL_POSITION = 0x1203, LOCAL_GL_SPOT_DIRECTION = 0x1204, LOCAL_GL_AMBIENT_AND_DIFFUSE = 0x1602, LOCAL_GL_COLOR_INDEXES = 0x1603, LOCAL_GL_LIGHT_MODEL_TWO_SIDE = 0x0B52, LOCAL_GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51, LOCAL_GL_LIGHT_MODEL_AMBIENT = 0x0B53, LOCAL_GL_FRONT_AND_BACK = 0x0408, LOCAL_GL_SHADE_MODEL = 0x0B54, LOCAL_GL_FLAT = 0x1D00, LOCAL_GL_SMOOTH = 0x1D01, LOCAL_GL_COLOR_MATERIAL = 0x0B57, LOCAL_GL_COLOR_MATERIAL_FACE = 0x0B55, LOCAL_GL_COLOR_MATERIAL_PARAMETER = 0x0B56, LOCAL_GL_NORMALIZE = 0x0BA1, /* User clipping planes */ LOCAL_GL_CLIP_PLANE0 = 0x3000, LOCAL_GL_CLIP_PLANE1 = 0x3001, LOCAL_GL_CLIP_PLANE2 = 0x3002, LOCAL_GL_CLIP_PLANE3 = 0x3003, LOCAL_GL_CLIP_PLANE4 = 0x3004, LOCAL_GL_CLIP_PLANE5 = 0x3005, /* Accumulation buffer */ LOCAL_GL_ACCUM_RED_BITS = 0x0D58, LOCAL_GL_ACCUM_GREEN_BITS = 0x0D59, LOCAL_GL_ACCUM_BLUE_BITS = 0x0D5A, LOCAL_GL_ACCUM_ALPHA_BITS = 0x0D5B, LOCAL_GL_ACCUM_CLEAR_VALUE = 0x0B80, LOCAL_GL_ACCUM = 0x0100, LOCAL_GL_ADD = 0x0104, LOCAL_GL_LOAD = 0x0101, LOCAL_GL_MULT = 0x0103, LOCAL_GL_RETURN = 0x0102, /* Alpha testing */ LOCAL_GL_ALPHA_TEST = 0x0BC0, LOCAL_GL_ALPHA_TEST_REF = 0x0BC2, LOCAL_GL_ALPHA_TEST_FUNC = 0x0BC1, /* Blending */ LOCAL_GL_BLEND = 0x0BE2, LOCAL_GL_BLEND_SRC = 0x0BE1, LOCAL_GL_BLEND_DST = 0x0BE0, LOCAL_GL_ZERO = 0, LOCAL_GL_ONE = 1, LOCAL_GL_SRC_COLOR = 0x0300, LOCAL_GL_ONE_MINUS_SRC_COLOR = 0x0301, LOCAL_GL_DST_COLOR = 0x0306, LOCAL_GL_ONE_MINUS_DST_COLOR = 0x0307, LOCAL_GL_SRC_ALPHA = 0x0302, LOCAL_GL_ONE_MINUS_SRC_ALPHA = 0x0303, LOCAL_GL_DST_ALPHA = 0x0304, LOCAL_GL_ONE_MINUS_DST_ALPHA = 0x0305, LOCAL_GL_SRC_ALPHA_SATURATE = 0x0308, LOCAL_GL_CONSTANT_COLOR = 0x8001, LOCAL_GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, LOCAL_GL_CONSTANT_ALPHA = 0x8003, LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, /* Render Mode */ LOCAL_GL_FEEDBACK = 0x1C01, LOCAL_GL_RENDER = 0x1C00, LOCAL_GL_SELECT = 0x1C02, /* Feedback */ LOCAL_GL_2D = 0x0600, LOCAL_GL_3D = 0x0601, LOCAL_GL_3D_COLOR = 0x0602, LOCAL_GL_3D_COLOR_TEXTURE = 0x0603, LOCAL_GL_4D_COLOR_TEXTURE = 0x0604, LOCAL_GL_POINT_TOKEN = 0x0701, LOCAL_GL_LINE_TOKEN = 0x0702, LOCAL_GL_LINE_RESET_TOKEN = 0x0707, LOCAL_GL_POLYGON_TOKEN = 0x0703, LOCAL_GL_BITMAP_TOKEN = 0x0704, LOCAL_GL_DRAW_PIXEL_TOKEN = 0x0705, LOCAL_GL_COPY_PIXEL_TOKEN = 0x0706, LOCAL_GL_PASS_THROUGH_TOKEN = 0x0700, LOCAL_GL_FEEDBACK_BUFFER_POINTER = 0x0DF0, LOCAL_GL_FEEDBACK_BUFFER_SIZE = 0x0DF1, LOCAL_GL_FEEDBACK_BUFFER_TYPE = 0x0DF2, /* Selection */ LOCAL_GL_SELECTION_BUFFER_POINTER = 0x0DF3, LOCAL_GL_SELECTION_BUFFER_SIZE = 0x0DF4, /* Fog */ LOCAL_GL_FOG = 0x0B60, LOCAL_GL_FOG_MODE = 0x0B65, LOCAL_GL_FOG_DENSITY = 0x0B62, LOCAL_GL_FOG_COLOR = 0x0B66, LOCAL_GL_FOG_INDEX = 0x0B61, LOCAL_GL_FOG_START = 0x0B63, LOCAL_GL_FOG_END = 0x0B64, LOCAL_GL_LINEAR = 0x2601, LOCAL_GL_EXP = 0x0800, LOCAL_GL_EXP2 = 0x0801, /* Logic Ops */ LOCAL_GL_LOGIC_OP = 0x0BF1, LOCAL_GL_INDEX_LOGIC_OP = 0x0BF1, LOCAL_GL_COLOR_LOGIC_OP = 0x0BF2, LOCAL_GL_LOGIC_OP_MODE = 0x0BF0, LOCAL_GL_CLEAR = 0x1500, LOCAL_GL_SET = 0x150F, LOCAL_GL_COPY = 0x1503, LOCAL_GL_COPY_INVERTED = 0x150C, LOCAL_GL_NOOP = 0x1505, LOCAL_GL_INVERT = 0x150A, LOCAL_GL_AND = 0x1501, LOCAL_GL_NAND = 0x150E, LOCAL_GL_OR = 0x1507, LOCAL_GL_NOR = 0x1508, LOCAL_GL_XOR = 0x1506, LOCAL_GL_EQUIV = 0x1509, LOCAL_GL_AND_REVERSE = 0x1502, LOCAL_GL_AND_INVERTED = 0x1504, LOCAL_GL_OR_REVERSE = 0x150B, LOCAL_GL_OR_INVERTED = 0x150D, /* Stencil */ LOCAL_GL_STENCIL_TEST = 0x0B90, LOCAL_GL_STENCIL_WRITEMASK = 0x0B98, LOCAL_GL_STENCIL_BITS = 0x0D57, LOCAL_GL_STENCIL_FUNC = 0x0B92, LOCAL_GL_STENCIL_VALUE_MASK = 0x0B93, LOCAL_GL_STENCIL_REF = 0x0B97, LOCAL_GL_STENCIL_FAIL = 0x0B94, LOCAL_GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, LOCAL_GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, LOCAL_GL_STENCIL_CLEAR_VALUE = 0x0B91, LOCAL_GL_STENCIL_INDEX = 0x1901, LOCAL_GL_KEEP = 0x1E00, LOCAL_GL_REPLACE = 0x1E01, LOCAL_GL_INCR = 0x1E02, LOCAL_GL_DECR = 0x1E03, /* Buffers, Pixel Drawing/Reading */ LOCAL_GL_NONE = 0, LOCAL_GL_LEFT = 0x0406, LOCAL_GL_RIGHT = 0x0407, /*LOCAL_GL_FRONT = 0x0404, */ /*LOCAL_GL_BACK = 0x0405, */ /*LOCAL_GL_FRONT_AND_BACK = 0x0408, */ LOCAL_GL_FRONT_LEFT = 0x0400, LOCAL_GL_FRONT_RIGHT = 0x0401, LOCAL_GL_BACK_LEFT = 0x0402, LOCAL_GL_BACK_RIGHT = 0x0403, LOCAL_GL_AUX0 = 0x0409, LOCAL_GL_AUX1 = 0x040A, LOCAL_GL_AUX2 = 0x040B, LOCAL_GL_AUX3 = 0x040C, LOCAL_GL_COLOR_INDEX = 0x1900, LOCAL_GL_RED = 0x1903, LOCAL_GL_GREEN = 0x1904, LOCAL_GL_BLUE = 0x1905, LOCAL_GL_ALPHA = 0x1906, LOCAL_GL_LUMINANCE = 0x1909, LOCAL_GL_LUMINANCE_ALPHA = 0x190A, LOCAL_GL_ALPHA_BITS = 0x0D55, LOCAL_GL_RED_BITS = 0x0D52, LOCAL_GL_GREEN_BITS = 0x0D53, LOCAL_GL_BLUE_BITS = 0x0D54, LOCAL_GL_INDEX_BITS = 0x0D51, LOCAL_GL_SUBPIXEL_BITS = 0x0D50, LOCAL_GL_AUX_BUFFERS = 0x0C00, LOCAL_GL_READ_BUFFER = 0x0C02, LOCAL_GL_DRAW_BUFFER = 0x0C01, LOCAL_GL_DOUBLEBUFFER = 0x0C32, LOCAL_GL_STEREO = 0x0C33, LOCAL_GL_BITMAP = 0x1A00, LOCAL_GL_COLOR = 0x1800, LOCAL_GL_DEPTH = 0x1801, LOCAL_GL_STENCIL = 0x1802, LOCAL_GL_DITHER = 0x0BD0, LOCAL_GL_RGB = 0x1907, LOCAL_GL_RGBA = 0x1908, /* Implementation limits */ LOCAL_GL_MAX_LIST_NESTING = 0x0B31, LOCAL_GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35, LOCAL_GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36, LOCAL_GL_MAX_NAME_STACK_DEPTH = 0x0D37, LOCAL_GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38, LOCAL_GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39, LOCAL_GL_MAX_EVAL_ORDER = 0x0D30, LOCAL_GL_MAX_LIGHTS = 0x0D31, LOCAL_GL_MAX_CLIP_PLANES = 0x0D32, LOCAL_GL_MAX_TEXTURE_SIZE = 0x0D33, LOCAL_GL_MAX_PIXEL_MAP_TABLE = 0x0D34, LOCAL_GL_MAX_VIEWPORT_DIMS = 0x0D3A, LOCAL_GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B, /* Gets */ LOCAL_GL_ATTRIB_STACK_DEPTH = 0x0BB0, LOCAL_GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1, LOCAL_GL_COLOR_CLEAR_VALUE = 0x0C22, LOCAL_GL_COLOR_WRITEMASK = 0x0C23, LOCAL_GL_CURRENT_INDEX = 0x0B01, LOCAL_GL_CURRENT_COLOR = 0x0B00, LOCAL_GL_CURRENT_NORMAL = 0x0B02, LOCAL_GL_CURRENT_RASTER_COLOR = 0x0B04, LOCAL_GL_CURRENT_RASTER_DISTANCE = 0x0B09, LOCAL_GL_CURRENT_RASTER_INDEX = 0x0B05, LOCAL_GL_CURRENT_RASTER_POSITION = 0x0B07, LOCAL_GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, LOCAL_GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, LOCAL_GL_CURRENT_TEXTURE_COORDS = 0x0B03, LOCAL_GL_INDEX_CLEAR_VALUE = 0x0C20, LOCAL_GL_INDEX_MODE = 0x0C30, LOCAL_GL_INDEX_WRITEMASK = 0x0C21, LOCAL_GL_MODELVIEW_MATRIX = 0x0BA6, LOCAL_GL_MODELVIEW_STACK_DEPTH = 0x0BA3, LOCAL_GL_NAME_STACK_DEPTH = 0x0D70, LOCAL_GL_PROJECTION_MATRIX = 0x0BA7, LOCAL_GL_PROJECTION_STACK_DEPTH = 0x0BA4, LOCAL_GL_RENDER_MODE = 0x0C40, LOCAL_GL_RGBA_MODE = 0x0C31, LOCAL_GL_TEXTURE_MATRIX = 0x0BA8, LOCAL_GL_TEXTURE_STACK_DEPTH = 0x0BA5, LOCAL_GL_VIEWPORT = 0x0BA2, /* Evaluators */ LOCAL_GL_AUTO_NORMAL = 0x0D80, LOCAL_GL_MAP1_COLOR_4 = 0x0D90, LOCAL_GL_MAP1_GRID_DOMAIN = 0x0DD0, LOCAL_GL_MAP1_GRID_SEGMENTS = 0x0DD1, LOCAL_GL_MAP1_INDEX = 0x0D91, LOCAL_GL_MAP1_NORMAL = 0x0D92, LOCAL_GL_MAP1_TEXTURE_COORD_1 = 0x0D93, LOCAL_GL_MAP1_TEXTURE_COORD_2 = 0x0D94, LOCAL_GL_MAP1_TEXTURE_COORD_3 = 0x0D95, LOCAL_GL_MAP1_TEXTURE_COORD_4 = 0x0D96, LOCAL_GL_MAP1_VERTEX_3 = 0x0D97, LOCAL_GL_MAP1_VERTEX_4 = 0x0D98, LOCAL_GL_MAP2_COLOR_4 = 0x0DB0, LOCAL_GL_MAP2_GRID_DOMAIN = 0x0DD2, LOCAL_GL_MAP2_GRID_SEGMENTS = 0x0DD3, LOCAL_GL_MAP2_INDEX = 0x0DB1, LOCAL_GL_MAP2_NORMAL = 0x0DB2, LOCAL_GL_MAP2_TEXTURE_COORD_1 = 0x0DB3, LOCAL_GL_MAP2_TEXTURE_COORD_2 = 0x0DB4, LOCAL_GL_MAP2_TEXTURE_COORD_3 = 0x0DB5, LOCAL_GL_MAP2_TEXTURE_COORD_4 = 0x0DB6, LOCAL_GL_MAP2_VERTEX_3 = 0x0DB7, LOCAL_GL_MAP2_VERTEX_4 = 0x0DB8, LOCAL_GL_COEFF = 0x0A00, LOCAL_GL_DOMAIN = 0x0A02, LOCAL_GL_ORDER = 0x0A01, /* Hints */ LOCAL_GL_FOG_HINT = 0x0C54, LOCAL_GL_LINE_SMOOTH_HINT = 0x0C52, LOCAL_GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50, LOCAL_GL_POINT_SMOOTH_HINT = 0x0C51, LOCAL_GL_POLYGON_SMOOTH_HINT = 0x0C53, LOCAL_GL_DONT_CARE = 0x1100, LOCAL_GL_FASTEST = 0x1101, LOCAL_GL_NICEST = 0x1102, /* Scissor box */ LOCAL_GL_SCISSOR_TEST = 0x0C11, LOCAL_GL_SCISSOR_BOX = 0x0C10, /* Pixel Mode / Transfer */ LOCAL_GL_MAP_COLOR = 0x0D10, LOCAL_GL_MAP_STENCIL = 0x0D11, LOCAL_GL_INDEX_SHIFT = 0x0D12, LOCAL_GL_INDEX_OFFSET = 0x0D13, LOCAL_GL_RED_SCALE = 0x0D14, LOCAL_GL_RED_BIAS = 0x0D15, LOCAL_GL_GREEN_SCALE = 0x0D18, LOCAL_GL_GREEN_BIAS = 0x0D19, LOCAL_GL_BLUE_SCALE = 0x0D1A, LOCAL_GL_BLUE_BIAS = 0x0D1B, LOCAL_GL_ALPHA_SCALE = 0x0D1C, LOCAL_GL_ALPHA_BIAS = 0x0D1D, LOCAL_GL_DEPTH_SCALE = 0x0D1E, LOCAL_GL_DEPTH_BIAS = 0x0D1F, LOCAL_GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1, LOCAL_GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0, LOCAL_GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2, LOCAL_GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3, LOCAL_GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4, LOCAL_GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5, LOCAL_GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6, LOCAL_GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7, LOCAL_GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8, LOCAL_GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9, LOCAL_GL_PIXEL_MAP_S_TO_S = 0x0C71, LOCAL_GL_PIXEL_MAP_I_TO_I = 0x0C70, LOCAL_GL_PIXEL_MAP_I_TO_R = 0x0C72, LOCAL_GL_PIXEL_MAP_I_TO_G = 0x0C73, LOCAL_GL_PIXEL_MAP_I_TO_B = 0x0C74, LOCAL_GL_PIXEL_MAP_I_TO_A = 0x0C75, LOCAL_GL_PIXEL_MAP_R_TO_R = 0x0C76, LOCAL_GL_PIXEL_MAP_G_TO_G = 0x0C77, LOCAL_GL_PIXEL_MAP_B_TO_B = 0x0C78, LOCAL_GL_PIXEL_MAP_A_TO_A = 0x0C79, LOCAL_GL_PACK_ALIGNMENT = 0x0D05, LOCAL_GL_PACK_LSB_FIRST = 0x0D01, LOCAL_GL_PACK_ROW_LENGTH = 0x0D02, LOCAL_GL_PACK_SKIP_PIXELS = 0x0D04, LOCAL_GL_PACK_SKIP_ROWS = 0x0D03, LOCAL_GL_PACK_SWAP_BYTES = 0x0D00, LOCAL_GL_UNPACK_ALIGNMENT = 0x0CF5, LOCAL_GL_UNPACK_LSB_FIRST = 0x0CF1, LOCAL_GL_UNPACK_ROW_LENGTH = 0x0CF2, LOCAL_GL_UNPACK_SKIP_PIXELS = 0x0CF4, LOCAL_GL_UNPACK_SKIP_ROWS = 0x0CF3, LOCAL_GL_UNPACK_SWAP_BYTES = 0x0CF0, LOCAL_GL_ZOOM_X = 0x0D16, LOCAL_GL_ZOOM_Y = 0x0D17, /* Texture mapping */ LOCAL_GL_TEXTURE_ENV = 0x2300, LOCAL_GL_TEXTURE_ENV_MODE = 0x2200, LOCAL_GL_TEXTURE_1D = 0x0DE0, LOCAL_GL_TEXTURE_2D = 0x0DE1, LOCAL_GL_TEXTURE_WRAP_S = 0x2802, LOCAL_GL_TEXTURE_WRAP_T = 0x2803, LOCAL_GL_TEXTURE_MAG_FILTER = 0x2800, LOCAL_GL_TEXTURE_MIN_FILTER = 0x2801, LOCAL_GL_TEXTURE_ENV_COLOR = 0x2201, LOCAL_GL_TEXTURE_GEN_S = 0x0C60, LOCAL_GL_TEXTURE_GEN_T = 0x0C61, LOCAL_GL_TEXTURE_GEN_MODE = 0x2500, LOCAL_GL_TEXTURE_BORDER_COLOR = 0x1004, LOCAL_GL_TEXTURE_WIDTH = 0x1000, LOCAL_GL_TEXTURE_HEIGHT = 0x1001, LOCAL_GL_TEXTURE_BORDER = 0x1005, LOCAL_GL_TEXTURE_COMPONENTS = 0x1003, LOCAL_GL_TEXTURE_RED_SIZE = 0x805C, LOCAL_GL_TEXTURE_GREEN_SIZE = 0x805D, LOCAL_GL_TEXTURE_BLUE_SIZE = 0x805E, LOCAL_GL_TEXTURE_ALPHA_SIZE = 0x805F, LOCAL_GL_TEXTURE_LUMINANCE_SIZE = 0x8060, LOCAL_GL_TEXTURE_INTENSITY_SIZE = 0x8061, LOCAL_GL_NEAREST_MIPMAP_NEAREST = 0x2700, LOCAL_GL_NEAREST_MIPMAP_LINEAR = 0x2702, LOCAL_GL_LINEAR_MIPMAP_NEAREST = 0x2701, LOCAL_GL_LINEAR_MIPMAP_LINEAR = 0x2703, LOCAL_GL_OBJECT_LINEAR = 0x2401, LOCAL_GL_OBJECT_PLANE = 0x2501, LOCAL_GL_EYE_LINEAR = 0x2400, LOCAL_GL_EYE_PLANE = 0x2502, LOCAL_GL_SPHERE_MAP = 0x2402, LOCAL_GL_DECAL = 0x2101, LOCAL_GL_MODULATE = 0x2100, LOCAL_GL_NEAREST = 0x2600, LOCAL_GL_REPEAT = 0x2901, LOCAL_GL_CLAMP = 0x2900, LOCAL_GL_S = 0x2000, LOCAL_GL_T = 0x2001, LOCAL_GL_R = 0x2002, LOCAL_GL_Q = 0x2003, LOCAL_GL_TEXTURE_GEN_R = 0x0C62, LOCAL_GL_TEXTURE_GEN_Q = 0x0C63, /* GL 1.1 texturing */ LOCAL_GL_PROXY_TEXTURE_1D = 0x8063, LOCAL_GL_PROXY_TEXTURE_2D = 0x8064, LOCAL_GL_TEXTURE_PRIORITY = 0x8066, LOCAL_GL_TEXTURE_RESIDENT = 0x8067, LOCAL_GL_TEXTURE_BINDING_1D = 0x8068, LOCAL_GL_TEXTURE_BINDING_2D = 0x8069, LOCAL_GL_TEXTURE_INTERNAL_FORMAT = 0x1003, /* GL 1.2 texturing */ LOCAL_GL_PACK_SKIP_IMAGES = 0x806B, LOCAL_GL_PACK_IMAGE_HEIGHT = 0x806C, LOCAL_GL_UNPACK_SKIP_IMAGES = 0x806D, LOCAL_GL_UNPACK_IMAGE_HEIGHT = 0x806E, LOCAL_GL_TEXTURE_3D = 0x806F, LOCAL_GL_PROXY_TEXTURE_3D = 0x8070, LOCAL_GL_TEXTURE_DEPTH = 0x8071, LOCAL_GL_TEXTURE_WRAP_R = 0x8072, LOCAL_GL_MAX_3D_TEXTURE_SIZE = 0x8073, LOCAL_GL_TEXTURE_BINDING_3D = 0x806A, /* Internal texture formats (GL 1.1) */ LOCAL_GL_ALPHA4 = 0x803B, LOCAL_GL_ALPHA8 = 0x803C, LOCAL_GL_ALPHA12 = 0x803D, LOCAL_GL_ALPHA16 = 0x803E, LOCAL_GL_LUMINANCE4 = 0x803F, LOCAL_GL_LUMINANCE8 = 0x8040, LOCAL_GL_LUMINANCE12 = 0x8041, LOCAL_GL_LUMINANCE16 = 0x8042, LOCAL_GL_LUMINANCE4_ALPHA4 = 0x8043, LOCAL_GL_LUMINANCE6_ALPHA2 = 0x8044, LOCAL_GL_LUMINANCE8_ALPHA8 = 0x8045, LOCAL_GL_LUMINANCE12_ALPHA4 = 0x8046, LOCAL_GL_LUMINANCE12_ALPHA12 = 0x8047, LOCAL_GL_LUMINANCE16_ALPHA16 = 0x8048, LOCAL_GL_INTENSITY = 0x8049, LOCAL_GL_INTENSITY4 = 0x804A, LOCAL_GL_INTENSITY8 = 0x804B, LOCAL_GL_INTENSITY12 = 0x804C, LOCAL_GL_INTENSITY16 = 0x804D, LOCAL_GL_R3_G3_B2 = 0x2A10, LOCAL_GL_RGB4 = 0x804F, LOCAL_GL_RGB5 = 0x8050, LOCAL_GL_RGB8 = 0x8051, LOCAL_GL_RGB10 = 0x8052, LOCAL_GL_RGB12 = 0x8053, LOCAL_GL_RGB16 = 0x8054, LOCAL_GL_RGBA2 = 0x8055, LOCAL_GL_RGBA4 = 0x8056, LOCAL_GL_RGB5_A1 = 0x8057, LOCAL_GL_RGBA8 = 0x8058, LOCAL_GL_RGB10_A2 = 0x8059, LOCAL_GL_RGBA12 = 0x805A, LOCAL_GL_RGBA16 = 0x805B, /* Utility */ LOCAL_GL_VENDOR = 0x1F00, LOCAL_GL_RENDERER = 0x1F01, LOCAL_GL_VERSION = 0x1F02, LOCAL_GL_EXTENSIONS = 0x1F03, /* Errors */ LOCAL_GL_INVALID_VALUE = 0x0501, LOCAL_GL_INVALID_ENUM = 0x0500, LOCAL_GL_INVALID_OPERATION = 0x0502, LOCAL_GL_STACK_OVERFLOW = 0x0503, LOCAL_GL_STACK_UNDERFLOW = 0x0504, LOCAL_GL_OUT_OF_MEMORY = 0x0505, /* * Extensions */ /* LOCAL_GL_EXT_blend_minmax and LOCAL_GL_EXT_blend_color */ LOCAL_GL_CONSTANT_COLOR_EXT = 0x8001, LOCAL_GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002, LOCAL_GL_CONSTANT_ALPHA_EXT = 0x8003, LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004, LOCAL_GL_BLEND_EQUATION_EXT = 0x8009, LOCAL_GL_MIN_EXT = 0x8007, LOCAL_GL_MAX_EXT = 0x8008, LOCAL_GL_FUNC_ADD_EXT = 0x8006, LOCAL_GL_FUNC_SUBTRACT_EXT = 0x800A, LOCAL_GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B, LOCAL_GL_BLEND_COLOR_EXT = 0x8005, /* LOCAL_GL_EXT_polygon_offset */ LOCAL_GL_POLYGON_OFFSET_EXT = 0x8037, LOCAL_GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038, LOCAL_GL_POLYGON_OFFSET_BIAS_EXT = 0x8039, /* LOCAL_GL_EXT_vertex_array */ LOCAL_GL_VERTEX_ARRAY_EXT = 0x8074, LOCAL_GL_NORMAL_ARRAY_EXT = 0x8075, LOCAL_GL_COLOR_ARRAY_EXT = 0x8076, LOCAL_GL_INDEX_ARRAY_EXT = 0x8077, LOCAL_GL_TEXTURE_COORD_ARRAY_EXT = 0x8078, LOCAL_GL_EDGE_FLAG_ARRAY_EXT = 0x8079, LOCAL_GL_VERTEX_ARRAY_SIZE_EXT = 0x807A, LOCAL_GL_VERTEX_ARRAY_TYPE_EXT = 0x807B, LOCAL_GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C, LOCAL_GL_VERTEX_ARRAY_COUNT_EXT = 0x807D, LOCAL_GL_NORMAL_ARRAY_TYPE_EXT = 0x807E, LOCAL_GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F, LOCAL_GL_NORMAL_ARRAY_COUNT_EXT = 0x8080, LOCAL_GL_COLOR_ARRAY_SIZE_EXT = 0x8081, LOCAL_GL_COLOR_ARRAY_TYPE_EXT = 0x8082, LOCAL_GL_COLOR_ARRAY_STRIDE_EXT = 0x8083, LOCAL_GL_COLOR_ARRAY_COUNT_EXT = 0x8084, LOCAL_GL_INDEX_ARRAY_TYPE_EXT = 0x8085, LOCAL_GL_INDEX_ARRAY_STRIDE_EXT = 0x8086, LOCAL_GL_INDEX_ARRAY_COUNT_EXT = 0x8087, LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088, LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089, LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A, LOCAL_GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B, LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C, LOCAL_GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D, LOCAL_GL_VERTEX_ARRAY_POINTER_EXT = 0x808E, LOCAL_GL_NORMAL_ARRAY_POINTER_EXT = 0x808F, LOCAL_GL_COLOR_ARRAY_POINTER_EXT = 0x8090, LOCAL_GL_INDEX_ARRAY_POINTER_EXT = 0x8091, LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092, LOCAL_GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093, /* LOCAL_GL_EXT_texture_object */ LOCAL_GL_TEXTURE_PRIORITY_EXT = 0x8066, LOCAL_GL_TEXTURE_RESIDENT_EXT = 0x8067, LOCAL_GL_TEXTURE_1D_BINDING_EXT = 0x8068, LOCAL_GL_TEXTURE_2D_BINDING_EXT = 0x8069, /* LOCAL_GL_EXT_texture3D */ LOCAL_GL_PACK_SKIP_IMAGES_EXT = 0x806B, LOCAL_GL_PACK_IMAGE_HEIGHT_EXT = 0x806C, LOCAL_GL_UNPACK_SKIP_IMAGES_EXT = 0x806D, LOCAL_GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E, LOCAL_GL_TEXTURE_3D_EXT = 0x806F, LOCAL_GL_PROXY_TEXTURE_3D_EXT = 0x8070, LOCAL_GL_TEXTURE_DEPTH_EXT = 0x8071, LOCAL_GL_TEXTURE_WRAP_R_EXT = 0x8072, LOCAL_GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073, LOCAL_GL_TEXTURE_3D_BINDING_EXT = 0x806A, /* LOCAL_GL_EXT_paletted_texture */ LOCAL_GL_TABLE_TOO_LARGE_EXT = 0x8031, LOCAL_GL_COLOR_TABLE_FORMAT_EXT = 0x80D8, LOCAL_GL_COLOR_TABLE_WIDTH_EXT = 0x80D9, LOCAL_GL_COLOR_TABLE_RED_SIZE_EXT = 0x80DA, LOCAL_GL_COLOR_TABLE_GREEN_SIZE_EXT = 0x80DB, LOCAL_GL_COLOR_TABLE_BLUE_SIZE_EXT = 0x80DC, LOCAL_GL_COLOR_TABLE_ALPHA_SIZE_EXT = 0x80DD, LOCAL_GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = 0x80DE, LOCAL_GL_COLOR_TABLE_INTENSITY_SIZE_EXT = 0x80DF, LOCAL_GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED, LOCAL_GL_COLOR_INDEX1_EXT = 0x80E2, LOCAL_GL_COLOR_INDEX2_EXT = 0x80E3, LOCAL_GL_COLOR_INDEX4_EXT = 0x80E4, LOCAL_GL_COLOR_INDEX8_EXT = 0x80E5, LOCAL_GL_COLOR_INDEX12_EXT = 0x80E6, LOCAL_GL_COLOR_INDEX16_EXT = 0x80E7, /* LOCAL_GL_EXT_shared_texture_palette */ LOCAL_GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB, /* LOCAL_GL_EXT_point_parameters */ LOCAL_GL_POINT_SIZE_MIN_EXT = 0x8126, LOCAL_GL_POINT_SIZE_MAX_EXT = 0x8127, LOCAL_GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128, LOCAL_GL_DISTANCE_ATTENUATION_EXT = 0x8129, /* LOCAL_GL_EXT_rescale_normal */ LOCAL_GL_RESCALE_NORMAL_EXT = 0x803A, /* LOCAL_GL_EXT_abgr */ LOCAL_GL_ABGR_EXT = 0x8000, /* LOCAL_GL_SGIS_multitexture */ LOCAL_GL_SELECTED_TEXTURE_SGIS = 0x835C, LOCAL_GL_SELECTED_TEXTURE_COORD_SET_SGIS = 0x835D, LOCAL_GL_MAX_TEXTURES_SGIS = 0x835E, LOCAL_GL_TEXTURE0_SGIS = 0x835F, LOCAL_GL_TEXTURE1_SGIS = 0x8360, LOCAL_GL_TEXTURE2_SGIS = 0x8361, LOCAL_GL_TEXTURE3_SGIS = 0x8362, LOCAL_GL_TEXTURE_COORD_SET_SOURCE_SGIS = 0x8363, /* LOCAL_GL_EXT_multitexture */ LOCAL_GL_SELECTED_TEXTURE_EXT = 0x83C0, LOCAL_GL_SELECTED_TEXTURE_COORD_SET_EXT = 0x83C1, LOCAL_GL_SELECTED_TEXTURE_TRANSFORM_EXT = 0x83C2, LOCAL_GL_MAX_TEXTURES_EXT = 0x83C3, LOCAL_GL_MAX_TEXTURE_COORD_SETS_EXT = 0x83C4, LOCAL_GL_TEXTURE_ENV_COORD_SET_EXT = 0x83C5, LOCAL_GL_TEXTURE0_EXT = 0x83C6, LOCAL_GL_TEXTURE1_EXT = 0x83C7, LOCAL_GL_TEXTURE2_EXT = 0x83C8, LOCAL_GL_TEXTURE3_EXT = 0x83C9, /* LOCAL_GL_SGIS_texture_edge_clamp */ LOCAL_GL_CLAMP_TO_EDGE_SGIS = 0x812F, /* OpenGL 1.2 */ LOCAL_GL_RESCALE_NORMAL = 0x803A, LOCAL_GL_CLAMP_TO_EDGE = 0x812F, LOCAL_GL_MAX_ELEMENTS_VERTICES = 0xF0E8, LOCAL_GL_MAX_ELEMENTS_INDICES = 0xF0E9, LOCAL_GL_BGR = 0x80E0, LOCAL_GL_BGRA = 0x80E1, LOCAL_GL_UNSIGNED_BYTE_3_3_2 = 0x8032, LOCAL_GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362, LOCAL_GL_UNSIGNED_SHORT_5_6_5 = 0x8363, LOCAL_GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364, LOCAL_GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033, LOCAL_GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365, LOCAL_GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034, LOCAL_GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366, LOCAL_GL_UNSIGNED_INT_8_8_8_8 = 0x8035, LOCAL_GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367, LOCAL_GL_UNSIGNED_INT_10_10_10_2 = 0x8036, LOCAL_GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, LOCAL_GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8, LOCAL_GL_SINGLE_COLOR = 0x81F9, LOCAL_GL_SEPARATE_SPECULAR_COLOR = 0x81FA, LOCAL_GL_TEXTURE_MIN_LOD = 0x813A, LOCAL_GL_TEXTURE_MAX_LOD = 0x813B, LOCAL_GL_TEXTURE_BASE_LEVEL = 0x813C, LOCAL_GL_TEXTURE_MAX_LEVEL = 0x813D }; typedef struct { GLenum e; const char* name; } ENUM; #define EDEF(VAR) { (GLenum)(LOCAL_GL_##VAR), #VAR } static ENUM enums[] = { EDEF(BYTE), EDEF(UNSIGNED_BYTE), EDEF(SHORT), EDEF(UNSIGNED_SHORT), EDEF(INT), EDEF(UNSIGNED_INT), EDEF(FLOAT), EDEF(DOUBLE), EDEF(2_BYTES), EDEF(3_BYTES), EDEF(4_BYTES), /* EDEF(LINES), EDEF(POINTS), EDEF(LINE_STRIP), EDEF(LINE_LOOP), EDEF(TRIANGLES), EDEF(TRIANGLE_STRIP), EDEF(TRIANGLE_FAN), EDEF(QUADS), EDEF(QUAD_STRIP), EDEF(POLYGON), EDEF(EDGE_FLAG), */ EDEF(VERTEX_ARRAY), EDEF(NORMAL_ARRAY), EDEF(COLOR_ARRAY), EDEF(INDEX_ARRAY), EDEF(TEXTURE_COORD_ARRAY), EDEF(EDGE_FLAG_ARRAY), EDEF(VERTEX_ARRAY_SIZE), EDEF(VERTEX_ARRAY_TYPE), EDEF(VERTEX_ARRAY_STRIDE), EDEF(NORMAL_ARRAY_TYPE), EDEF(NORMAL_ARRAY_STRIDE), EDEF(COLOR_ARRAY_SIZE), EDEF(COLOR_ARRAY_TYPE), EDEF(COLOR_ARRAY_STRIDE), EDEF(INDEX_ARRAY_TYPE), EDEF(INDEX_ARRAY_STRIDE), EDEF(TEXTURE_COORD_ARRAY_SIZE), EDEF(TEXTURE_COORD_ARRAY_TYPE), EDEF(TEXTURE_COORD_ARRAY_STRIDE), EDEF(EDGE_FLAG_ARRAY_STRIDE), EDEF(VERTEX_ARRAY_POINTER), EDEF(NORMAL_ARRAY_POINTER), EDEF(COLOR_ARRAY_POINTER), EDEF(INDEX_ARRAY_POINTER), EDEF(TEXTURE_COORD_ARRAY_POINTER), EDEF(EDGE_FLAG_ARRAY_POINTER), EDEF(V2F), EDEF(V3F), EDEF(C4UB_V2F), EDEF(C4UB_V3F), EDEF(C3F_V3F), EDEF(N3F_V3F), EDEF(C4F_N3F_V3F), EDEF(T2F_V3F), EDEF(T4F_V4F), EDEF(T2F_C4UB_V3F), EDEF(T2F_C3F_V3F), EDEF(T2F_N3F_V3F), EDEF(T2F_C4F_N3F_V3F), EDEF(T4F_C4F_N3F_V4F), EDEF(MATRIX_MODE), EDEF(MODELVIEW), EDEF(PROJECTION), EDEF(TEXTURE), EDEF(POINT_SMOOTH), EDEF(POINT_SIZE), EDEF(POINT_SIZE_GRANULARITY), EDEF(POINT_SIZE_RANGE), EDEF(LINE_SMOOTH), EDEF(LINE_STIPPLE), EDEF(LINE_STIPPLE_PATTERN), EDEF(LINE_STIPPLE_REPEAT), EDEF(LINE_WIDTH), EDEF(LINE_WIDTH_GRANULARITY), EDEF(LINE_WIDTH_RANGE), EDEF(POINT), EDEF(LINE), EDEF(FILL), EDEF(CCW), EDEF(CW), EDEF(FRONT), EDEF(BACK), EDEF(CULL_FACE), EDEF(CULL_FACE_MODE), EDEF(POLYGON_SMOOTH), EDEF(POLYGON_STIPPLE), EDEF(FRONT_FACE), EDEF(POLYGON_MODE), EDEF(POLYGON_OFFSET_FACTOR), EDEF(POLYGON_OFFSET_UNITS), EDEF(POLYGON_OFFSET_POINT), EDEF(POLYGON_OFFSET_LINE), EDEF(POLYGON_OFFSET_FILL), EDEF(COMPILE), EDEF(COMPILE_AND_EXECUTE), EDEF(LIST_BASE), EDEF(LIST_INDEX), EDEF(LIST_MODE), EDEF(NEVER), EDEF(LESS), EDEF(GEQUAL), EDEF(LEQUAL), EDEF(GREATER), EDEF(NOTEQUAL), EDEF(EQUAL), EDEF(ALWAYS), EDEF(DEPTH_TEST), EDEF(DEPTH_BITS), EDEF(DEPTH_CLEAR_VALUE), EDEF(DEPTH_FUNC), EDEF(DEPTH_RANGE), EDEF(DEPTH_WRITEMASK), EDEF(DEPTH_COMPONENT), EDEF(LIGHTING), EDEF(LIGHT0), EDEF(LIGHT1), EDEF(LIGHT2), EDEF(LIGHT3), EDEF(LIGHT4), EDEF(LIGHT5), EDEF(LIGHT6), EDEF(LIGHT7), EDEF(SPOT_EXPONENT), EDEF(SPOT_CUTOFF), EDEF(CONSTANT_ATTENUATION), EDEF(LINEAR_ATTENUATION), EDEF(QUADRATIC_ATTENUATION), EDEF(AMBIENT), EDEF(DIFFUSE), EDEF(SPECULAR), EDEF(SHININESS), EDEF(EMISSION), EDEF(POSITION), EDEF(SPOT_DIRECTION), EDEF(AMBIENT_AND_DIFFUSE), EDEF(COLOR_INDEXES), EDEF(LIGHT_MODEL_TWO_SIDE), EDEF(LIGHT_MODEL_LOCAL_VIEWER), EDEF(LIGHT_MODEL_AMBIENT), EDEF(FRONT_AND_BACK), EDEF(SHADE_MODEL), EDEF(FLAT), EDEF(SMOOTH), EDEF(COLOR_MATERIAL), EDEF(COLOR_MATERIAL_FACE), EDEF(COLOR_MATERIAL_PARAMETER), EDEF(NORMALIZE), EDEF(CLIP_PLANE0), EDEF(CLIP_PLANE1), EDEF(CLIP_PLANE2), EDEF(CLIP_PLANE3), EDEF(CLIP_PLANE4), EDEF(CLIP_PLANE5), EDEF(ACCUM_RED_BITS), EDEF(ACCUM_GREEN_BITS), EDEF(ACCUM_BLUE_BITS), EDEF(ACCUM_ALPHA_BITS), EDEF(ACCUM_CLEAR_VALUE), EDEF(ACCUM), EDEF(ADD), EDEF(LOAD), EDEF(MULT), EDEF(RETURN), EDEF(ALPHA_TEST), EDEF(ALPHA_TEST_REF), EDEF(ALPHA_TEST_FUNC), EDEF(BLEND), EDEF(BLEND_SRC), EDEF(BLEND_DST), EDEF(ZERO), EDEF(ONE), EDEF(SRC_COLOR), EDEF(ONE_MINUS_SRC_COLOR), EDEF(DST_COLOR), EDEF(ONE_MINUS_DST_COLOR), EDEF(SRC_ALPHA), EDEF(ONE_MINUS_SRC_ALPHA), EDEF(DST_ALPHA), EDEF(ONE_MINUS_DST_ALPHA), EDEF(SRC_ALPHA_SATURATE), EDEF(CONSTANT_COLOR), EDEF(ONE_MINUS_CONSTANT_COLOR), EDEF(CONSTANT_ALPHA), EDEF(ONE_MINUS_CONSTANT_ALPHA), EDEF(FEEDBACK), EDEF(RENDER), EDEF(SELECT), EDEF(2D), EDEF(3D), EDEF(3D_COLOR), EDEF(3D_COLOR_TEXTURE), EDEF(4D_COLOR_TEXTURE), EDEF(POINT_TOKEN), EDEF(LINE_TOKEN), EDEF(LINE_RESET_TOKEN), EDEF(POLYGON_TOKEN), EDEF(BITMAP_TOKEN), EDEF(DRAW_PIXEL_TOKEN), EDEF(COPY_PIXEL_TOKEN), EDEF(PASS_THROUGH_TOKEN), EDEF(FEEDBACK_BUFFER_POINTER), EDEF(FEEDBACK_BUFFER_SIZE), EDEF(FEEDBACK_BUFFER_TYPE), EDEF(SELECTION_BUFFER_POINTER), EDEF(SELECTION_BUFFER_SIZE), EDEF(FOG), EDEF(FOG_MODE), EDEF(FOG_DENSITY), EDEF(FOG_COLOR), EDEF(FOG_INDEX), EDEF(FOG_START), EDEF(FOG_END), EDEF(LINEAR), EDEF(EXP), EDEF(EXP2), EDEF(LOGIC_OP), EDEF(INDEX_LOGIC_OP), EDEF(COLOR_LOGIC_OP), EDEF(LOGIC_OP_MODE), EDEF(CLEAR), EDEF(SET), EDEF(COPY), EDEF(COPY_INVERTED), EDEF(NOOP), EDEF(INVERT), EDEF(AND), EDEF(NAND), EDEF(OR), EDEF(NOR), EDEF(XOR), EDEF(EQUIV), EDEF(AND_REVERSE), EDEF(AND_INVERTED), EDEF(OR_REVERSE), EDEF(OR_INVERTED), EDEF(STENCIL_TEST), EDEF(STENCIL_WRITEMASK), EDEF(STENCIL_BITS), EDEF(STENCIL_FUNC), EDEF(STENCIL_VALUE_MASK), EDEF(STENCIL_REF), EDEF(STENCIL_FAIL), EDEF(STENCIL_PASS_DEPTH_PASS), EDEF(STENCIL_PASS_DEPTH_FAIL), EDEF(STENCIL_CLEAR_VALUE), EDEF(STENCIL_INDEX), EDEF(KEEP), EDEF(REPLACE), EDEF(INCR), EDEF(DECR), EDEF(NONE), EDEF(LEFT), EDEF(RIGHT), EDEF(FRONT_LEFT), EDEF(FRONT_RIGHT), EDEF(BACK_LEFT), EDEF(BACK_RIGHT), EDEF(AUX0), EDEF(AUX1), EDEF(AUX2), EDEF(AUX3), EDEF(COLOR_INDEX), EDEF(RED), EDEF(GREEN), EDEF(BLUE), EDEF(ALPHA), EDEF(LUMINANCE), EDEF(LUMINANCE_ALPHA), EDEF(ALPHA_BITS), EDEF(RED_BITS), EDEF(GREEN_BITS), EDEF(BLUE_BITS), EDEF(INDEX_BITS), EDEF(SUBPIXEL_BITS), EDEF(AUX_BUFFERS), EDEF(READ_BUFFER), EDEF(DRAW_BUFFER), EDEF(DOUBLEBUFFER), EDEF(STEREO), EDEF(BITMAP), EDEF(COLOR), EDEF(DEPTH), EDEF(STENCIL), EDEF(DITHER), EDEF(RGB), EDEF(RGBA), EDEF(MAX_LIST_NESTING), EDEF(MAX_ATTRIB_STACK_DEPTH), EDEF(MAX_MODELVIEW_STACK_DEPTH), EDEF(MAX_NAME_STACK_DEPTH), EDEF(MAX_PROJECTION_STACK_DEPTH), EDEF(MAX_TEXTURE_STACK_DEPTH), EDEF(MAX_EVAL_ORDER), EDEF(MAX_LIGHTS), EDEF(MAX_CLIP_PLANES), EDEF(MAX_TEXTURE_SIZE), EDEF(MAX_PIXEL_MAP_TABLE), EDEF(MAX_VIEWPORT_DIMS), EDEF(MAX_CLIENT_ATTRIB_STACK_DEPTH), EDEF(ATTRIB_STACK_DEPTH), EDEF(CLIENT_ATTRIB_STACK_DEPTH), EDEF(COLOR_CLEAR_VALUE), EDEF(COLOR_WRITEMASK), EDEF(CURRENT_INDEX), EDEF(CURRENT_COLOR), EDEF(CURRENT_NORMAL), EDEF(CURRENT_RASTER_COLOR), EDEF(CURRENT_RASTER_DISTANCE), EDEF(CURRENT_RASTER_INDEX), EDEF(CURRENT_RASTER_POSITION), EDEF(CURRENT_RASTER_TEXTURE_COORDS), EDEF(CURRENT_RASTER_POSITION_VALID), EDEF(CURRENT_TEXTURE_COORDS), EDEF(INDEX_CLEAR_VALUE), EDEF(INDEX_MODE), EDEF(INDEX_WRITEMASK), EDEF(MODELVIEW_MATRIX), EDEF(MODELVIEW_STACK_DEPTH), EDEF(NAME_STACK_DEPTH), EDEF(PROJECTION_MATRIX), EDEF(PROJECTION_STACK_DEPTH), EDEF(RENDER_MODE), EDEF(RGBA_MODE), EDEF(TEXTURE_MATRIX), EDEF(TEXTURE_STACK_DEPTH), EDEF(VIEWPORT), EDEF(AUTO_NORMAL), EDEF(MAP1_COLOR_4), EDEF(MAP1_GRID_DOMAIN), EDEF(MAP1_GRID_SEGMENTS), EDEF(MAP1_INDEX), EDEF(MAP1_NORMAL), EDEF(MAP1_TEXTURE_COORD_1), EDEF(MAP1_TEXTURE_COORD_2), EDEF(MAP1_TEXTURE_COORD_3), EDEF(MAP1_TEXTURE_COORD_4), EDEF(MAP1_VERTEX_3), EDEF(MAP1_VERTEX_4), EDEF(MAP2_COLOR_4), EDEF(MAP2_GRID_DOMAIN), EDEF(MAP2_GRID_SEGMENTS), EDEF(MAP2_INDEX), EDEF(MAP2_NORMAL), EDEF(MAP2_TEXTURE_COORD_1), EDEF(MAP2_TEXTURE_COORD_2), EDEF(MAP2_TEXTURE_COORD_3), EDEF(MAP2_TEXTURE_COORD_4), EDEF(MAP2_VERTEX_3), EDEF(MAP2_VERTEX_4), EDEF(COEFF), EDEF(DOMAIN), EDEF(ORDER), EDEF(FOG_HINT), EDEF(LINE_SMOOTH_HINT), EDEF(PERSPECTIVE_CORRECTION_HINT), EDEF(POINT_SMOOTH_HINT), EDEF(POLYGON_SMOOTH_HINT), EDEF(DONT_CARE), EDEF(FASTEST), EDEF(NICEST), EDEF(SCISSOR_TEST), EDEF(SCISSOR_BOX), EDEF(MAP_COLOR), EDEF(MAP_STENCIL), EDEF(INDEX_SHIFT), EDEF(INDEX_OFFSET), EDEF(RED_SCALE), EDEF(RED_BIAS), EDEF(GREEN_SCALE), EDEF(GREEN_BIAS), EDEF(BLUE_SCALE), EDEF(BLUE_BIAS), EDEF(ALPHA_SCALE), EDEF(ALPHA_BIAS), EDEF(DEPTH_SCALE), EDEF(DEPTH_BIAS), EDEF(PIXEL_MAP_S_TO_S_SIZE), EDEF(PIXEL_MAP_I_TO_I_SIZE), EDEF(PIXEL_MAP_I_TO_R_SIZE), EDEF(PIXEL_MAP_I_TO_G_SIZE), EDEF(PIXEL_MAP_I_TO_B_SIZE), EDEF(PIXEL_MAP_I_TO_A_SIZE), EDEF(PIXEL_MAP_R_TO_R_SIZE), EDEF(PIXEL_MAP_G_TO_G_SIZE), EDEF(PIXEL_MAP_B_TO_B_SIZE), EDEF(PIXEL_MAP_A_TO_A_SIZE), EDEF(PIXEL_MAP_S_TO_S), EDEF(PIXEL_MAP_I_TO_I), EDEF(PIXEL_MAP_I_TO_R), EDEF(PIXEL_MAP_I_TO_G), EDEF(PIXEL_MAP_I_TO_B), EDEF(PIXEL_MAP_I_TO_A), EDEF(PIXEL_MAP_R_TO_R), EDEF(PIXEL_MAP_G_TO_G), EDEF(PIXEL_MAP_B_TO_B), EDEF(PIXEL_MAP_A_TO_A), EDEF(PACK_ALIGNMENT), EDEF(PACK_LSB_FIRST), EDEF(PACK_ROW_LENGTH), EDEF(PACK_SKIP_PIXELS), EDEF(PACK_SKIP_ROWS), EDEF(PACK_SWAP_BYTES), EDEF(UNPACK_ALIGNMENT), EDEF(UNPACK_LSB_FIRST), EDEF(UNPACK_ROW_LENGTH), EDEF(UNPACK_SKIP_PIXELS), EDEF(UNPACK_SKIP_ROWS), EDEF(UNPACK_SWAP_BYTES), EDEF(ZOOM_X), EDEF(ZOOM_Y), EDEF(TEXTURE_ENV), EDEF(TEXTURE_ENV_MODE), EDEF(TEXTURE_1D), EDEF(TEXTURE_2D), EDEF(TEXTURE_WRAP_S), EDEF(TEXTURE_WRAP_T), EDEF(TEXTURE_MAG_FILTER), EDEF(TEXTURE_MIN_FILTER), EDEF(TEXTURE_ENV_COLOR), EDEF(TEXTURE_GEN_S), EDEF(TEXTURE_GEN_T), EDEF(TEXTURE_GEN_MODE), EDEF(TEXTURE_BORDER_COLOR), EDEF(TEXTURE_WIDTH), EDEF(TEXTURE_HEIGHT), EDEF(TEXTURE_BORDER), EDEF(TEXTURE_COMPONENTS), EDEF(TEXTURE_RED_SIZE), EDEF(TEXTURE_GREEN_SIZE), EDEF(TEXTURE_BLUE_SIZE), EDEF(TEXTURE_ALPHA_SIZE), EDEF(TEXTURE_LUMINANCE_SIZE), EDEF(TEXTURE_INTENSITY_SIZE), EDEF(NEAREST_MIPMAP_NEAREST), EDEF(NEAREST_MIPMAP_LINEAR), EDEF(LINEAR_MIPMAP_NEAREST), EDEF(LINEAR_MIPMAP_LINEAR), EDEF(OBJECT_LINEAR), EDEF(OBJECT_PLANE), EDEF(EYE_LINEAR), EDEF(EYE_PLANE), EDEF(SPHERE_MAP), EDEF(DECAL), EDEF(MODULATE), EDEF(NEAREST), EDEF(REPEAT), EDEF(CLAMP), EDEF(S), EDEF(T), EDEF(R), EDEF(Q), EDEF(TEXTURE_GEN_R), EDEF(TEXTURE_GEN_Q), EDEF(PROXY_TEXTURE_1D), EDEF(PROXY_TEXTURE_2D), EDEF(TEXTURE_PRIORITY), EDEF(TEXTURE_RESIDENT), EDEF(TEXTURE_BINDING_1D), EDEF(TEXTURE_BINDING_2D), EDEF(TEXTURE_INTERNAL_FORMAT), EDEF(PACK_SKIP_IMAGES), EDEF(PACK_IMAGE_HEIGHT), EDEF(UNPACK_SKIP_IMAGES), EDEF(UNPACK_IMAGE_HEIGHT), EDEF(TEXTURE_3D), EDEF(PROXY_TEXTURE_3D), EDEF(TEXTURE_DEPTH), EDEF(TEXTURE_WRAP_R), EDEF(MAX_3D_TEXTURE_SIZE), EDEF(TEXTURE_BINDING_3D), EDEF(ALPHA4), EDEF(ALPHA8), EDEF(ALPHA12), EDEF(ALPHA16), EDEF(LUMINANCE4), EDEF(LUMINANCE8), EDEF(LUMINANCE12), EDEF(LUMINANCE16), EDEF(LUMINANCE4_ALPHA4), EDEF(LUMINANCE6_ALPHA2), EDEF(LUMINANCE8_ALPHA8), EDEF(LUMINANCE12_ALPHA4), EDEF(LUMINANCE12_ALPHA12), EDEF(LUMINANCE16_ALPHA16), EDEF(INTENSITY), EDEF(INTENSITY4), EDEF(INTENSITY8), EDEF(INTENSITY12), EDEF(INTENSITY16), EDEF(R3_G3_B2), EDEF(RGB4), EDEF(RGB5), EDEF(RGB8), EDEF(RGB10), EDEF(RGB12), EDEF(RGB16), EDEF(RGBA2), EDEF(RGBA4), EDEF(RGB5_A1), EDEF(RGBA8), EDEF(RGB10_A2), EDEF(RGBA12), EDEF(RGBA16), EDEF(VENDOR), EDEF(RENDERER), EDEF(VERSION), EDEF(EXTENSIONS), EDEF(INVALID_VALUE), EDEF(INVALID_ENUM), EDEF(INVALID_OPERATION), EDEF(STACK_OVERFLOW), EDEF(STACK_UNDERFLOW), EDEF(OUT_OF_MEMORY), /* extensions */ EDEF(CONSTANT_COLOR_EXT), EDEF(ONE_MINUS_CONSTANT_COLOR_EXT), EDEF(CONSTANT_ALPHA_EXT), EDEF(ONE_MINUS_CONSTANT_ALPHA_EXT), EDEF(BLEND_EQUATION_EXT), EDEF(MIN_EXT), EDEF(MAX_EXT), EDEF(FUNC_ADD_EXT), EDEF(FUNC_SUBTRACT_EXT), EDEF(FUNC_REVERSE_SUBTRACT_EXT), EDEF(BLEND_COLOR_EXT), EDEF(POLYGON_OFFSET_EXT), EDEF(POLYGON_OFFSET_FACTOR_EXT), EDEF(POLYGON_OFFSET_BIAS_EXT), EDEF(VERTEX_ARRAY_EXT), EDEF(NORMAL_ARRAY_EXT), EDEF(COLOR_ARRAY_EXT), EDEF(INDEX_ARRAY_EXT), EDEF(TEXTURE_COORD_ARRAY_EXT), EDEF(EDGE_FLAG_ARRAY_EXT), EDEF(VERTEX_ARRAY_SIZE_EXT), EDEF(VERTEX_ARRAY_TYPE_EXT), EDEF(VERTEX_ARRAY_STRIDE_EXT), EDEF(VERTEX_ARRAY_COUNT_EXT), EDEF(NORMAL_ARRAY_TYPE_EXT), EDEF(NORMAL_ARRAY_STRIDE_EXT), EDEF(NORMAL_ARRAY_COUNT_EXT), EDEF(COLOR_ARRAY_SIZE_EXT), EDEF(COLOR_ARRAY_TYPE_EXT), EDEF(COLOR_ARRAY_STRIDE_EXT), EDEF(COLOR_ARRAY_COUNT_EXT), EDEF(INDEX_ARRAY_TYPE_EXT), EDEF(INDEX_ARRAY_STRIDE_EXT), EDEF(INDEX_ARRAY_COUNT_EXT), EDEF(TEXTURE_COORD_ARRAY_SIZE_EXT), EDEF(TEXTURE_COORD_ARRAY_TYPE_EXT), EDEF(TEXTURE_COORD_ARRAY_STRIDE_EXT), EDEF(TEXTURE_COORD_ARRAY_COUNT_EXT), EDEF(EDGE_FLAG_ARRAY_STRIDE_EXT), EDEF(EDGE_FLAG_ARRAY_COUNT_EXT), EDEF(VERTEX_ARRAY_POINTER_EXT), EDEF(NORMAL_ARRAY_POINTER_EXT), EDEF(COLOR_ARRAY_POINTER_EXT), EDEF(INDEX_ARRAY_POINTER_EXT), EDEF(TEXTURE_COORD_ARRAY_POINTER_EXT), EDEF(EDGE_FLAG_ARRAY_POINTER_EXT), EDEF(TEXTURE_PRIORITY_EXT), EDEF(TEXTURE_RESIDENT_EXT), EDEF(TEXTURE_1D_BINDING_EXT), EDEF(TEXTURE_2D_BINDING_EXT), EDEF(PACK_SKIP_IMAGES_EXT), EDEF(PACK_IMAGE_HEIGHT_EXT), EDEF(UNPACK_SKIP_IMAGES_EXT), EDEF(UNPACK_IMAGE_HEIGHT_EXT), EDEF(TEXTURE_3D_EXT), EDEF(PROXY_TEXTURE_3D_EXT), EDEF(TEXTURE_DEPTH_EXT), EDEF(TEXTURE_WRAP_R_EXT), EDEF(MAX_3D_TEXTURE_SIZE_EXT), EDEF(TEXTURE_3D_BINDING_EXT), EDEF(TABLE_TOO_LARGE_EXT), EDEF(COLOR_TABLE_FORMAT_EXT), EDEF(COLOR_TABLE_WIDTH_EXT), EDEF(COLOR_TABLE_RED_SIZE_EXT), EDEF(COLOR_TABLE_GREEN_SIZE_EXT), EDEF(COLOR_TABLE_BLUE_SIZE_EXT), EDEF(COLOR_TABLE_ALPHA_SIZE_EXT), EDEF(COLOR_TABLE_LUMINANCE_SIZE_EXT), EDEF(COLOR_TABLE_INTENSITY_SIZE_EXT), EDEF(TEXTURE_INDEX_SIZE_EXT), EDEF(COLOR_INDEX1_EXT), EDEF(COLOR_INDEX2_EXT), EDEF(COLOR_INDEX4_EXT), EDEF(COLOR_INDEX8_EXT), EDEF(COLOR_INDEX12_EXT), EDEF(COLOR_INDEX16_EXT), EDEF(SHARED_TEXTURE_PALETTE_EXT), EDEF(POINT_SIZE_MIN_EXT), EDEF(POINT_SIZE_MAX_EXT), EDEF(POINT_FADE_THRESHOLD_SIZE_EXT), EDEF(DISTANCE_ATTENUATION_EXT), EDEF(RESCALE_NORMAL_EXT), EDEF(ABGR_EXT), EDEF(SELECTED_TEXTURE_SGIS), EDEF(SELECTED_TEXTURE_COORD_SET_SGIS), EDEF(MAX_TEXTURES_SGIS), EDEF(TEXTURE0_SGIS), EDEF(TEXTURE1_SGIS), EDEF(TEXTURE2_SGIS), EDEF(TEXTURE3_SGIS), EDEF(TEXTURE_COORD_SET_SOURCE_SGIS), EDEF(SELECTED_TEXTURE_EXT), EDEF(SELECTED_TEXTURE_COORD_SET_EXT), EDEF(SELECTED_TEXTURE_TRANSFORM_EXT), EDEF(MAX_TEXTURES_EXT), EDEF(MAX_TEXTURE_COORD_SETS_EXT), EDEF(TEXTURE_ENV_COORD_SET_EXT), EDEF(TEXTURE0_EXT), EDEF(TEXTURE1_EXT), EDEF(TEXTURE2_EXT), EDEF(TEXTURE3_EXT), EDEF(CLAMP_TO_EDGE_SGIS), EDEF(RESCALE_NORMAL), EDEF(CLAMP_TO_EDGE), EDEF(MAX_ELEMENTS_VERTICES), EDEF(MAX_ELEMENTS_INDICES), EDEF(BGR), EDEF(BGRA), EDEF(UNSIGNED_BYTE_3_3_2), EDEF(UNSIGNED_BYTE_2_3_3_REV), EDEF(UNSIGNED_SHORT_5_6_5), EDEF(UNSIGNED_SHORT_5_6_5_REV), EDEF(UNSIGNED_SHORT_4_4_4_4), EDEF(UNSIGNED_SHORT_4_4_4_4_REV), EDEF(UNSIGNED_SHORT_5_5_5_1), EDEF(UNSIGNED_SHORT_1_5_5_5_REV), EDEF(UNSIGNED_INT_8_8_8_8), EDEF(UNSIGNED_INT_8_8_8_8_REV), EDEF(UNSIGNED_INT_10_10_10_2), EDEF(UNSIGNED_INT_2_10_10_10_REV), EDEF(LIGHT_MODEL_COLOR_CONTROL), EDEF(SINGLE_COLOR), EDEF(SEPARATE_SPECULAR_COLOR), EDEF(TEXTURE_MIN_LOD), EDEF(TEXTURE_MAX_LOD), EDEF(TEXTURE_BASE_LEVEL), EDEF(TEXTURE_MAX_LEVEL) }; #undef EDEF #define N_ENUMS (sizeof(enums) / sizeof(ENUM)) /***************************************************************************/ static void print_enum_name( FILE* OUT, GLenum e ) { int i, found= 0; for( i= 0; i < N_ENUMS; ++i ) { if( enums[i].e == e ) { if( found ) fprintf( OUT, "/" ); found= 1; fprintf( OUT, "%s", enums[i].name ); } } if( ! found ) fprintf( OUT, "*UNKNOWN* [%04x]", (int)e ); fprintf( OUT, "\n" ); } #define BOOL_STRING(b) (b ? "true" : "false") #define VAR_ENUM(VAR) \ { \ GLint e= 0; \ glGetIntegerv(GL_##VAR,&e); \ fprintf( OUT, "%s: ", #VAR ); \ print_enum_name( OUT, (GLenum) e ); \ } #define VAR_FLOAT4(VAR) \ { \ GLfloat f[4]; \ f[0]= f[1]= f[2]= f[3]= 0.0; \ glGetFloatv(GL_##VAR,f); \ fprintf( OUT, "%s: [%f %f %f %f]\n", \ #VAR, f[0], f[1], f[2], f[3] ); \ } #define VAR_MAT_FLOAT4(VAR) \ { \ GLfloat f[4]; \ f[0]= f[1]= f[2]= f[3]= 0.0; \ glGetMaterialfv(GL_FRONT,GL_##VAR,f); \ fprintf( OUT, "FRONT_%s: [%f %f %f %f]\n", \ #VAR, f[0], f[1], f[2], f[3] ); \ glGetMaterialfv(GL_BACK,GL_##VAR,f); \ fprintf( OUT, " BACK_%s: [%f %f %f %f]\n", \ #VAR, f[0], f[1], f[2], f[3] ); \ } #define VAR_LIGHT_FLOAT4(LIGHT,VAR) \ { \ GLfloat f[4]; \ f[0]= f[1]= f[2]= f[3]= 0.0; \ glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,f); \ fprintf( OUT, "LIGHT%d.%s: [%f %f %f %f]\n", \ LIGHT, #VAR, f[0], f[1], f[2], f[3] ); \ } #define VAR_LIGHT_FLOAT3(LIGHT,VAR) \ { \ GLfloat f[3]; \ f[0]= f[1]= f[2]= 0.0; \ glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,f); \ fprintf( OUT, "LIGHT%d.%s: [%f %f %f]\n", \ LIGHT, #VAR, f[0], f[1], f[2] ); \ } #define VAR_FLOAT3(VAR) \ { \ GLfloat f[3]; \ f[0]= f[1]= f[2]= 0.0; \ glGetFloatv(GL_##VAR,f) ; \ fprintf( OUT, "%s: [%f %f %f]\n", \ #VAR, f[0], f[1], f[2] ); \ } #define VAR_FLOAT2(VAR) \ { \ GLfloat f[2]; \ f[0]= f[1]= 0.0; \ glGetFloatv(GL_##VAR,f); \ fprintf( OUT, "%s: [%f %f]\n", \ #VAR, f[0], f[1] ); \ } #define VAR_COLOR(VAR) VAR_FLOAT4(VAR) #define VAR_TEXCOORD(VAR) VAR_FLOAT4(VAR) #define VAR_NORMAL(VAR) VAR_FLOAT3(VAR) #define VAR_MAT_COLOR(VAR) VAR_MAT_FLOAT4(VAR) #define VAR_LIGHT_COLOR(LIGHT,VAR) VAR_LIGHT_FLOAT4(LIGHT,VAR) #define VAR_FLOAT(VAR) \ { \ GLfloat f= 0.0; \ glGetFloatv(GL_##VAR,&f); \ fprintf( OUT, "%s: %f\n", #VAR, f ); \ } #define VAR_MAT_FLOAT(VAR) \ { \ GLfloat f= 0.0; \ glGetMaterialfv(GL_FRONT,GL_##VAR,&f); \ fprintf( OUT, "FRONT_%s: %f\n", #VAR, f ); \ glGetMaterialfv(GL_BACK,GL_##VAR,&f); \ fprintf( OUT, " BACK_%s: %f\n", #VAR, f ); \ } #define VAR_LIGHT_FLOAT(LIGHT,VAR) \ { \ GLfloat f= 0.0; \ glGetLightfv(GL_LIGHT0+LIGHT,GL_##VAR,&f); \ fprintf( OUT, "LIGHT%d.%s: %f\n", \ LIGHT, #VAR, f ); \ } #define VAR_INT(VAR) \ { \ GLint i= 0; \ glGetIntegerv(GL_##VAR,&i); \ fprintf( OUT, "%s: %d\n", #VAR, (int)i ); \ } #define VAR_INTEGER(VAR) VAR_INT(VAR) #define VAR_INDEX(VAR) VAR_INT(VAR) #define VAR_HEXINT(VAR) \ { \ GLint i= 0; \ glGetIntegerv(GL_##VAR,&i); \ fprintf( OUT, "%s: 0x%04x\n", #VAR, (int)i ); \ } #define VAR_INT4(VAR) \ { \ GLint i[4]; \ i[0]= i[1]= i[2]= i[3]= 0; \ glGetIntegerv(GL_##VAR,i); \ fprintf( OUT, "%s: [%d %d %d %d]\n", \ #VAR, (int)i[0], (int)i[1], (int)i[2], (int)i[3] ); \ } #define VAR_BOOL(VAR) \ { \ GLboolean b= 0; \ glGetBooleanv(GL_##VAR,&b); \ fprintf( OUT, "%s: %s\n", #VAR, BOOL_STRING(b) ); \ } #define VAR_BOOL4(VAR) \ { \ GLboolean b[4]; \ b[0]= b[1]= b[2]= b[3]= 0; \ glGetBooleanv(GL_##VAR,b); \ fprintf( OUT, "%s: [%s %s %s %s]\n", \ #VAR, \ BOOL_STRING(b[0]), \ BOOL_STRING(b[1]), \ BOOL_STRING(b[2]), \ BOOL_STRING(b[3]) ); \ } #define VAR_PTR(VAR) \ { \ GLvoid* p= 0; \ glGetPointerv(GL_##VAR,&p); \ fprintf( OUT, "%s: %p\n", #VAR, p ); \ } #define VAR_MATRIX(VAR) \ { \ GLfloat m[16]; \ int i; \ for( i= 0; i < 16; ++i ) m[i]= 0.0; \ glGetFloatv(GL_##VAR,m); \ fprintf( OUT, \ "%s:\n\t[%+.6f %+.6f %+.6f %+.6f]\n\t[%+.6f %+.6f %+.6f %+.6f]\n\t[%+.6f %+.6f %+.6f %+.6f]\n\t[%+.6f %+.6f %+.6f %+.6f]\n", \ #VAR, \ m[0+0*4], m[0+1*4], m[0+2*4], m[0+3*4], \ m[1+0*4], m[1+1*4], m[1+2*4], m[1+3*4], \ m[2+0*4], m[2+1*4], m[2+2*4], m[2+3*4], \ m[3+0*4], m[3+1*4], m[3+2*4], m[3+3*4] ); \ } /***************************************************************************/ /* #define OUT stderr */ void dump_opengl_state( FILE* OUT ) { int i; GLint n_lights= 0; glGetIntegerv( GL_MAX_LIGHTS, &n_lights ); VAR_COLOR(CURRENT_COLOR) VAR_INDEX(CURRENT_INDEX) VAR_TEXCOORD(CURRENT_TEXTURE_COORDS) VAR_NORMAL(CURRENT_NORMAL) VAR_FLOAT4(CURRENT_RASTER_POSITION) VAR_FLOAT(CURRENT_RASTER_DISTANCE) VAR_COLOR(CURRENT_RASTER_COLOR) VAR_INDEX(CURRENT_RASTER_INDEX) VAR_TEXCOORD(CURRENT_RASTER_TEXTURE_COORDS) VAR_BOOL(CURRENT_RASTER_POSITION_VALID) VAR_BOOL(EDGE_FLAG) VAR_BOOL (VERTEX_ARRAY) VAR_INTEGER(VERTEX_ARRAY_SIZE) VAR_ENUM (VERTEX_ARRAY_TYPE) VAR_INTEGER(VERTEX_ARRAY_STRIDE) VAR_PTR (VERTEX_ARRAY_POINTER) VAR_BOOL (NORMAL_ARRAY) VAR_ENUM (NORMAL_ARRAY_TYPE) VAR_INTEGER(NORMAL_ARRAY_STRIDE) VAR_PTR (NORMAL_ARRAY_POINTER) VAR_BOOL (COLOR_ARRAY) VAR_INTEGER(COLOR_ARRAY_SIZE) VAR_ENUM (COLOR_ARRAY_TYPE) VAR_INTEGER(COLOR_ARRAY_STRIDE) VAR_PTR (COLOR_ARRAY_POINTER) VAR_BOOL (INDEX_ARRAY) VAR_ENUM (INDEX_ARRAY_TYPE) VAR_INTEGER(INDEX_ARRAY_STRIDE) VAR_PTR (INDEX_ARRAY_POINTER) VAR_BOOL (TEXTURE_COORD_ARRAY) VAR_INTEGER(TEXTURE_COORD_ARRAY_SIZE) VAR_ENUM (TEXTURE_COORD_ARRAY_TYPE) VAR_INTEGER(TEXTURE_COORD_ARRAY_STRIDE) VAR_PTR (TEXTURE_COORD_ARRAY_POINTER) VAR_BOOL (EDGE_FLAG_ARRAY) VAR_INTEGER(EDGE_FLAG_ARRAY_STRIDE) VAR_PTR (EDGE_FLAG_ARRAY_POINTER) VAR_MATRIX(MODELVIEW_MATRIX) VAR_MATRIX(PROJECTION_MATRIX) VAR_MATRIX(TEXTURE_MATRIX) VAR_INT4(VIEWPORT) VAR_FLOAT2(DEPTH_RANGE) VAR_INT(MODELVIEW_STACK_DEPTH) VAR_INT(PROJECTION_STACK_DEPTH) VAR_INT(TEXTURE_STACK_DEPTH) VAR_ENUM(MATRIX_MODE) VAR_BOOL(NORMALIZE) VAR_BOOL(RESCALE_NORMAL_EXT) VAR_BOOL(CLIP_PLANE0) VAR_BOOL(CLIP_PLANE1) VAR_BOOL(CLIP_PLANE2) VAR_BOOL(CLIP_PLANE3) VAR_BOOL(CLIP_PLANE4) VAR_BOOL(CLIP_PLANE5) /* + glGetClipPlane() */ VAR_COLOR(FOG_COLOR) VAR_INDEX(FOG_INDEX) VAR_FLOAT(FOG_DENSITY) VAR_FLOAT(FOG_START) VAR_FLOAT(FOG_END) VAR_ENUM(FOG_MODE) VAR_BOOL(FOG) VAR_ENUM(SHADE_MODEL) VAR_BOOL(LIGHTING) VAR_BOOL(COLOR_MATERIAL) VAR_ENUM(COLOR_MATERIAL_PARAMETER) VAR_ENUM(COLOR_MATERIAL_FACE) VAR_MAT_COLOR(AMBIENT) VAR_MAT_COLOR(DIFFUSE) VAR_MAT_COLOR(SPECULAR) VAR_MAT_COLOR(EMISSION) VAR_MAT_FLOAT(SHININESS) VAR_COLOR(LIGHT_MODEL_AMBIENT) VAR_BOOL(LIGHT_MODEL_LOCAL_VIEWER) VAR_BOOL(LIGHT_MODEL_TWO_SIDE) /* VAR_ENUM(LIGHT_MODEL_COLOR_CONTROL)*/ for( i= 0; i < n_lights; ++i ) { GLboolean b= 0; glGetBooleanv( GL_LIGHT0 + i, &b ); fprintf( OUT, "LIGHT%d: %s\n", i, BOOL_STRING(b) ); if( ! b ) continue; VAR_LIGHT_COLOR(i,AMBIENT) VAR_LIGHT_COLOR(i,DIFFUSE) VAR_LIGHT_COLOR(i,SPECULAR) VAR_LIGHT_FLOAT4(i,POSITION) VAR_LIGHT_FLOAT(i,CONSTANT_ATTENUATION) VAR_LIGHT_FLOAT(i,LINEAR_ATTENUATION) VAR_LIGHT_FLOAT(i,QUADRATIC_ATTENUATION) VAR_LIGHT_FLOAT3(i,SPOT_DIRECTION) VAR_LIGHT_FLOAT(i,SPOT_EXPONENT) VAR_LIGHT_FLOAT(i,SPOT_CUTOFF) /* COLOR_INDEXES */ } VAR_FLOAT(POINT_SIZE) VAR_BOOL(POINT_SMOOTH) VAR_FLOAT(LINE_WIDTH) VAR_BOOL(LINE_SMOOTH) VAR_HEXINT(LINE_STIPPLE_PATTERN) VAR_INT(LINE_STIPPLE_REPEAT) VAR_BOOL(LINE_STIPPLE) VAR_BOOL(CULL_FACE) VAR_ENUM(CULL_FACE_MODE) VAR_ENUM(FRONT_FACE) VAR_BOOL(POLYGON_SMOOTH) VAR_ENUM(POLYGON_MODE) VAR_FLOAT(POLYGON_OFFSET_FACTOR) VAR_FLOAT(POLYGON_OFFSET_UNITS) VAR_BOOL(POLYGON_OFFSET_POINT) VAR_BOOL(POLYGON_OFFSET_LINE) VAR_BOOL(POLYGON_OFFSET_FILL) /* GetPolygonStipple */ VAR_BOOL(POLYGON_STIPPLE) VAR_BOOL(TEXTURE_1D) VAR_BOOL(TEXTURE_2D) /* VAR_BOOL(TEXTURE_3D)*/ VAR_INT(TEXTURE_BINDING_1D) VAR_INT(TEXTURE_BINDING_2D) /* VAR_INT(TEXTURE_BINDING_3D)*/ /* GetTexImage() */ /* GetTexLevelParameter() */ /* GetTexEnv() */ VAR_BOOL(TEXTURE_GEN_S) VAR_BOOL(TEXTURE_GEN_T) VAR_BOOL(TEXTURE_GEN_R) VAR_BOOL(TEXTURE_GEN_Q) /* GetTexGen() */ VAR_BOOL(SCISSOR_TEST) VAR_INT4(SCISSOR_BOX) VAR_BOOL(ALPHA_TEST) VAR_ENUM(ALPHA_TEST_FUNC) VAR_FLOAT(ALPHA_TEST_REF) VAR_BOOL(STENCIL_TEST) VAR_ENUM(STENCIL_FUNC) VAR_HEXINT(STENCIL_VALUE_MASK) VAR_INT(STENCIL_REF) VAR_ENUM(STENCIL_FAIL) VAR_ENUM(STENCIL_PASS_DEPTH_FAIL) VAR_ENUM(STENCIL_PASS_DEPTH_PASS) VAR_BOOL(DEPTH_TEST) VAR_ENUM(DEPTH_FUNC) VAR_BOOL(BLEND) VAR_ENUM(BLEND_SRC) VAR_ENUM(BLEND_DST) VAR_BOOL(DITHER) VAR_BOOL(LOGIC_OP) /* INDEX_LOGIC_OP */ VAR_BOOL(COLOR_LOGIC_OP) VAR_ENUM(DRAW_BUFFER) VAR_INT(INDEX_WRITEMASK) VAR_BOOL4(COLOR_WRITEMASK) VAR_BOOL(DEPTH_WRITEMASK) VAR_HEXINT(STENCIL_WRITEMASK) VAR_COLOR(COLOR_CLEAR_VALUE) VAR_INDEX(INDEX_CLEAR_VALUE) VAR_FLOAT(DEPTH_CLEAR_VALUE) VAR_INT(STENCIL_CLEAR_VALUE) VAR_FLOAT(ACCUM_CLEAR_VALUE) VAR_BOOL(UNPACK_SWAP_BYTES) VAR_BOOL(UNPACK_LSB_FIRST) #ifdef UNPACK_IMAGE_HEIGHT VAR_INT(UNPACK_IMAGE_HEIGHT) #endif #ifdef UNPACK_SKIP_IMAGES VAR_INT(UNPACK_SKIP_IMAGES) #endif VAR_INT(UNPACK_ROW_LENGTH) VAR_INT(UNPACK_SKIP_ROWS) VAR_INT(UNPACK_SKIP_PIXELS) VAR_INT(UNPACK_ALIGNMENT) VAR_BOOL(PACK_SWAP_BYTES) VAR_BOOL(PACK_LSB_FIRST) #ifdef PACK_IMAGE_HEIGHT VAR_INT(PACK_IMAGE_HEIGHT) #endif #ifdef PACK_SKIP_IMAGES VAR_INT(PACK_SKIP_IMAGES) #endif VAR_INT(PACK_ROW_LENGTH) VAR_INT(PACK_SKIP_ROWS) VAR_INT(PACK_SKIP_PIXELS) VAR_INT(PACK_ALIGNMENT) VAR_BOOL(MAP_COLOR) VAR_BOOL(MAP_STENCIL) VAR_INT(INDEX_SHIFT) VAR_INT(INDEX_OFFSET) VAR_FLOAT(RED_SCALE) VAR_FLOAT(GREEN_SCALE) VAR_FLOAT(BLUE_SCALE) VAR_FLOAT(ALPHA_SCALE) VAR_FLOAT(DEPTH_SCALE) VAR_FLOAT(RED_BIAS) VAR_FLOAT(GREEN_BIAS) VAR_FLOAT(BLUE_BIAS) VAR_FLOAT(ALPHA_BIAS) VAR_FLOAT(DEPTH_BIAS) VAR_FLOAT(ZOOM_X) VAR_FLOAT(ZOOM_Y) VAR_ENUM(READ_BUFFER) VAR_BOOL(AUTO_NORMAL) VAR_ENUM(PERSPECTIVE_CORRECTION_HINT) VAR_ENUM(POINT_SMOOTH_HINT) VAR_ENUM(LINE_SMOOTH_HINT) VAR_ENUM(POLYGON_SMOOTH_HINT) VAR_ENUM(FOG_HINT) VAR_INT(MAX_LIGHTS) VAR_INT(MAX_CLIP_PLANES) VAR_INT(MAX_MODELVIEW_STACK_DEPTH) VAR_INT(MAX_PROJECTION_STACK_DEPTH) VAR_INT(MAX_TEXTURE_STACK_DEPTH) VAR_INT(SUBPIXEL_BITS) #ifdef GL_MAX_3D_TEXTURE_SIZE VAR_INT(MAX_3D_TEXTURE_SIZE) #endif VAR_INT(MAX_TEXTURE_SIZE) VAR_INT(MAX_PIXEL_MAP_TABLE) VAR_INT(MAX_NAME_STACK_DEPTH) VAR_INT(MAX_LIST_NESTING) VAR_INT(MAX_EVAL_ORDER) VAR_INT(MAX_VIEWPORT_DIMS) VAR_INT(MAX_ATTRIB_STACK_DEPTH) VAR_INT(MAX_CLIENT_ATTRIB_STACK_DEPTH) VAR_INT(AUX_BUFFERS) VAR_BOOL(RGBA_MODE) VAR_BOOL(INDEX_MODE) VAR_BOOL(DOUBLEBUFFER) VAR_BOOL(STEREO) #ifdef GL_ALIASED_POINT_SIZE_RANGE VAR_FLOAT2(ALIASED_POINT_SIZE_RANGE) #endif #ifdef GL_POINT_SIZE_RANGE VAR_FLOAT2(POINT_SIZE_RANGE) /* SMOOTH_POINT_SIZE_RANGE */ #endif VAR_FLOAT(POINT_SIZE_GRANULARITY) /* SMOOTH_POINT_SIZE_GRANULARITY */ #ifdef GL_ALIASED_LINE_WIDTH_RANGE VAR_FLOAT2(ALIASED_LINE_WIDTH_RANGE) #endif VAR_FLOAT2(LINE_WIDTH_RANGE) /* SMOOTH_LINE_WIDTH_RANGE */ VAR_FLOAT(LINE_WIDTH_GRANULARITY) /* SMOOTH_LINE_WIDTH_GRANULARITY */ #ifdef GL_MAX_ELEMENTS_INDICES VAR_INT(MAX_ELEMENTS_INDICES) #endif #ifdef GL_MAX_ELEMENTS_VERTICES VAR_INT(MAX_ELEMENTS_VERTICES) #endif VAR_INT(RED_BITS) VAR_INT(GREEN_BITS) VAR_INT(BLUE_BITS) VAR_INT(ALPHA_BITS) VAR_INT(INDEX_BITS) VAR_INT(DEPTH_BITS) VAR_INT(STENCIL_BITS) VAR_INT(ACCUM_RED_BITS) VAR_INT(ACCUM_GREEN_BITS) VAR_INT(ACCUM_BLUE_BITS) VAR_INT(ACCUM_ALPHA_BITS) VAR_INT(LIST_BASE) VAR_INT(LIST_INDEX) VAR_ENUM(LIST_MODE) VAR_INT(ATTRIB_STACK_DEPTH) VAR_INT(CLIENT_ATTRIB_STACK_DEPTH) VAR_INT(NAME_STACK_DEPTH) VAR_ENUM(RENDER_MODE) VAR_PTR(SELECTION_BUFFER_POINTER) VAR_INT(SELECTION_BUFFER_SIZE) VAR_PTR(FEEDBACK_BUFFER_POINTER) VAR_INT(FEEDBACK_BUFFER_SIZE) VAR_ENUM(FEEDBACK_BUFFER_TYPE) /* glGetError() */ } /***************************************************************************/ /*#define TEST*/ #ifdef TEST #include <GL/glut.h> int main( int argc, char *argv[] ) { glutInit( &argc, argv ); glutInitWindowPosition(0, 0); glutInitWindowSize(400, 300); glutInitDisplayMode(GLUT_RGB); glutCreateWindow(argv[0]); dump_opengl_state(stdout); return 0; } #endif