home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / mesa-1.2.8 / amiga / gl.h < prev    next >
C/C++ Source or Header  |  1996-05-27  |  39KB  |  1,342 lines

  1. /* $Id: gl.h,v 1.16 1996/02/15 16:00:00 brianp Exp $ */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  1.2
  6.  * Copyright (C) 1995-1996  Brian Paul  (brianp@ssec.wisc.edu)
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25. $Log: gl.h,v $
  26.  * Revision 1.16  1996/02/15  16:00:00  brianp
  27.  * added vertex array extension symbols and functions
  28.  *
  29.  * Revision 1.15  1995/11/03  14:29:02  brianp
  30.  * added patches for CenterLine C++ per Steven Spitz
  31.  * cleaned up some comments
  32.  *
  33.  * Revision 1.14  1995/10/27  20:26:53  brianp
  34.  * added glPolygonOffsetEXT() and related GLenums
  35.  *
  36.  * Revision 1.13  1995/10/19  13:47:23  brianp
  37.  * GL_LINEAR_MIPMAP_NEAREST had wrong value
  38.  *
  39.  * Revision 1.12  1995/10/02  13:13:56  brianp
  40.  * removed an extra glColor4B prototype
  41.  *
  42.  * Revision 1.11  1995/09/28  13:17:48  brianp
  43.  * renamed GL_ALL_ATTRIB_BIT to GL_ALL_ATTRIB_BITS
  44.  *
  45.  * Revision 1.10  1995/08/13  17:26:02  brianp
  46.  * assign explicit values to all GLenum symbols to match OpenGL
  47.  *
  48.  * Revision 1.9  1995/05/30  13:17:38  brianp
  49.  * added glGetTexImage(), glGetMap[dfi]v() protos, GL_AUX[123], GL_COEF,
  50.  * GL_DOMAIN, GL_ORDER symbols
  51.  *
  52.  * Revision 1.8  1995/05/29  21:19:54  brianp
  53.  * added GL_TEXTURE_WIDTH, HEIGHT, BORDER, COMPONENTS symbols
  54.  * added glGetMaterial*, glGetPixelMap*, glGetTexGen*, glGetTexParameter* protos
  55.  *
  56.  * Revision 1.7  1995/05/22  17:03:21  brianp
  57.  * Release 1.2
  58.  *
  59.  * Revision 1.6  1995/04/28  20:04:03  brianp
  60.  * added GL_REPLACE_EXT texture symbol
  61.  * fixed glGetString and glGetLighiv prototypes
  62.  *
  63.  * Revision 1.5  1995/04/19  13:47:05  brianp
  64.  * renamed occurances of near and far for SCO x86 Unix
  65.  *
  66.  * Revision 1.4  1995/04/05  18:29:04  brianp
  67.  * added GL_EXT_blend_* compile-time symbols
  68.  *
  69.  * Revision 1.3  1995/03/10  16:28:41  brianp
  70.  * updated for blending extensions
  71.  *
  72.  * Revision 1.2  1995/03/04  19:45:47  brianp
  73.  * 1.1 beta revision
  74.  *
  75.  * Revision 1.1  1995/02/28  21:21:03  brianp
  76.  * Initial revision
  77.  *
  78.  */
  79.  
  80.  
  81. #ifndef GL_H
  82. #define GL_H
  83.  
  84.  
  85. #ifdef __cplusplus
  86. extern "C" {
  87. #endif
  88.  
  89.  
  90.  
  91.  
  92. /*
  93.  * Apps can test for this symbol to do conditional compilation if needed.
  94.  */
  95. #define MESA
  96.  
  97.  
  98.  
  99. /*
  100.  *
  101.  * Enumerations
  102.  *
  103.  */
  104.  
  105. typedef enum {
  106.     /* Boolean values */
  107.     GL_FALSE            = 0,
  108.     GL_TRUE                = 1,
  109.  
  110.     /* Data types */
  111.     GL_BYTE                = 0x1400,
  112.     GL_UNSIGNED_BYTE        = 0x1401,
  113.     GL_SHORT            = 0x1402,
  114.     GL_UNSIGNED_SHORT        = 0x1403,
  115.     GL_INT                = 0x1404,
  116.     GL_UNSIGNED_INT            = 0x1405,
  117.     GL_FLOAT            = 0x1406,
  118.     GL_2_BYTES            = 0x1407,
  119.     GL_3_BYTES            = 0x1408,
  120.     GL_4_BYTES            = 0x1409,
  121.     GL_DOUBLE_EXT            = 0x140A,
  122.  
  123.     /* Primitives */
  124.     GL_LINES            = 0x0001,
  125.     GL_POINTS            = 0x0000,
  126.     GL_LINE_STRIP            = 0x0003,
  127.     GL_LINE_LOOP            = 0x0002,
  128.     GL_TRIANGLES            = 0x0004,
  129.     GL_TRIANGLE_STRIP        = 0x0005,
  130.     GL_TRIANGLE_FAN            = 0x0006,
  131.     GL_QUADS            = 0x0007,
  132.     GL_QUAD_STRIP            = 0x0008,
  133.     GL_POLYGON            = 0x0009,
  134.     GL_EDGE_FLAG            = 0x0B43,
  135.  
  136.     /* Matrix Mode */
  137.     GL_MATRIX_MODE            = 0x0BA0,
  138.     GL_MODELVIEW            = 0x1700,
  139.     GL_PROJECTION            = 0x1701,
  140.     GL_TEXTURE            = 0x1702,
  141.  
  142.     /* Points */
  143.     GL_POINT_SMOOTH            = 0x0B10,
  144.     GL_POINT_SIZE            = 0x0B11,
  145.     GL_POINT_SIZE_GRANULARITY     = 0x0B13,
  146.     GL_POINT_SIZE_RANGE        = 0x0B12,
  147.  
  148.     /* Lines */
  149.     GL_LINE_SMOOTH            = 0x0B20,
  150.     GL_LINE_STIPPLE            = 0x0B24,
  151.     GL_LINE_STIPPLE_PATTERN        = 0x0B25,
  152.     GL_LINE_STIPPLE_REPEAT        = 0x0B26,
  153.     GL_LINE_WIDTH            = 0x0B21,
  154.     GL_LINE_WIDTH_GRANULARITY    = 0x0B23,
  155.     GL_LINE_WIDTH_RANGE        = 0x0B22,
  156.  
  157.     /* Polygons */
  158.     GL_POINT            = 0x1B00,
  159.     GL_LINE                = 0x1B01,
  160.     GL_FILL                = 0x1B02,
  161.     GL_CCW                = 0x0901,
  162.     GL_CW                = 0x0900,
  163.     GL_FRONT            = 0x0404,
  164.     GL_BACK                = 0x0405,
  165.     GL_CULL_FACE            = 0x0B44,
  166.     GL_CULL_FACE_MODE        = 0x0B45,
  167.     GL_POLYGON_SMOOTH        = 0x0B41,
  168.     GL_POLYGON_STIPPLE        = 0x0B42,
  169.     GL_FRONT_FACE            = 0x0B46,
  170.     GL_POLYGON_MODE            = 0x0B40,
  171.  
  172.     /* Display Lists */
  173.     GL_COMPILE            = 0x1300,
  174.     GL_COMPILE_AND_EXECUTE        = 0x1301,
  175.     GL_LIST_BASE            = 0x0B32,
  176.     GL_LIST_INDEX            = 0x0B33,
  177.     GL_LIST_MODE            = 0x0B30,
  178.  
  179.     /* Depth buffer */
  180.     GL_NEVER            = 0x0200,
  181.     GL_LESS                = 0x0201,
  182.     GL_GEQUAL            = 0x0206,
  183.     GL_LEQUAL            = 0x0203,
  184.     GL_GREATER            = 0x0204,
  185.     GL_NOTEQUAL            = 0x0205,
  186.     GL_EQUAL            = 0x0202,
  187.     GL_ALWAYS            = 0x0207,
  188.     GL_DEPTH_TEST            = 0x0B71,
  189.     GL_DEPTH_BITS            = 0x0D56,
  190.     GL_DEPTH_CLEAR_VALUE        = 0x0B73,
  191.     GL_DEPTH_FUNC            = 0x0B74,
  192.     GL_DEPTH_RANGE            = 0x0B70,
  193.     GL_DEPTH_WRITEMASK        = 0x0B72,
  194.     GL_DEPTH_COMPONENT        = 0x1902,
  195.  
  196.     /* Lighting */
  197.     GL_LIGHTING            = 0x0B50,
  198.     GL_LIGHT0            = 0x4000,
  199.     GL_LIGHT1            = 0x4001,
  200.     GL_LIGHT2            = 0x4002,
  201.     GL_LIGHT3            = 0x4003,
  202.     GL_LIGHT4            = 0x4004,
  203.     GL_LIGHT5            = 0x4005,
  204.     GL_LIGHT6            = 0x4006,
  205.     GL_LIGHT7            = 0x4007,
  206.     GL_SPOT_EXPONENT        = 0x1205,
  207.     GL_SPOT_CUTOFF            = 0x1206,
  208.     GL_CONSTANT_ATTENUATION        = 0x1207,
  209.     GL_LINEAR_ATTENUATION        = 0x1208,
  210.     GL_QUADRATIC_ATTENUATION    = 0x1209,
  211.     GL_AMBIENT            = 0x1200,
  212.     GL_DIFFUSE            = 0x1201,
  213.     GL_SPECULAR            = 0x1202,
  214.     GL_SHININESS            = 0x1601,
  215.     GL_EMISSION            = 0x1600,
  216.     GL_POSITION            = 0x1203,
  217.     GL_SPOT_DIRECTION        = 0x1204,
  218.     GL_AMBIENT_AND_DIFFUSE        = 0x1602,
  219.     GL_COLOR_INDEXES        = 0x1603,
  220.     GL_LIGHT_MODEL_TWO_SIDE        = 0x0B52,
  221.     GL_LIGHT_MODEL_LOCAL_VIEWER    = 0x0B51,
  222.     GL_LIGHT_MODEL_AMBIENT        = 0x0B53,
  223.     GL_FRONT_AND_BACK        = 0x0408,
  224.     GL_SHADE_MODEL            = 0x0B54,
  225.     GL_FLAT                = 0x1D00,
  226.     GL_SMOOTH            = 0x1D01,
  227.     GL_COLOR_MATERIAL        = 0x0B57,
  228.     GL_COLOR_MATERIAL_FACE        = 0x0B55,
  229.     GL_COLOR_MATERIAL_PARAMETER    = 0x0B56,
  230.     GL_NORMALIZE            = 0x0BA1,
  231.  
  232.     /* User clipping planes */
  233.     GL_CLIP_PLANE0            = 0x3000,
  234.     GL_CLIP_PLANE1            = 0x3001,
  235.     GL_CLIP_PLANE2            = 0x3002,
  236.     GL_CLIP_PLANE3            = 0x3003,
  237.     GL_CLIP_PLANE4            = 0x3004,
  238.     GL_CLIP_PLANE5            = 0x3005,
  239.  
  240.     /* Accumulation buffer */
  241.     GL_ACCUM_RED_BITS        = 0x0D58,
  242.     GL_ACCUM_GREEN_BITS        = 0x0D59,
  243.     GL_ACCUM_BLUE_BITS        = 0x0D5A,
  244.     GL_ACCUM_ALPHA_BITS        = 0x0D5B,
  245.     GL_ACCUM_CLEAR_VALUE        = 0x0B80,
  246.     GL_ACCUM            = 0x0100,
  247.     GL_ADD                = 0x0104,
  248.     GL_LOAD                = 0x0101,
  249.     GL_MULT                = 0x0103,
  250.     GL_RETURN            = 0x0102,
  251.  
  252.     /* Alpha testing */
  253.     GL_ALPHA_TEST            = 0x0BC0,
  254.     GL_ALPHA_TEST_REF        = 0x0BC2,
  255.     GL_ALPHA_TEST_FUNC        = 0x0BC1,
  256.  
  257.     /* Blending */
  258.     GL_BLEND            = 0x0BE2,
  259.     GL_BLEND_SRC            = 0x0BE1,
  260.     GL_BLEND_DST            = 0x0BE0,
  261.     GL_ZERO                = 0,
  262.     GL_ONE                = 1,
  263.     GL_SRC_COLOR            = 0x0300,
  264.     GL_ONE_MINUS_SRC_COLOR        = 0x0301,
  265.     GL_DST_COLOR            = 0x0306,
  266.     GL_ONE_MINUS_DST_COLOR        = 0x0307,
  267.     GL_SRC_ALPHA            = 0x0302,
  268.     GL_ONE_MINUS_SRC_ALPHA        = 0x0303,
  269.     GL_DST_ALPHA            = 0x0304,
  270.     GL_ONE_MINUS_DST_ALPHA        = 0x0305,
  271.     GL_SRC_ALPHA_SATURATE        = 0x0308,
  272.  
  273.     /* Render Mode */
  274.     GL_FEEDBACK            = 0x1C01,
  275.     GL_RENDER            = 0x1C00,
  276.     GL_SELECT            = 0x1C02,
  277.  
  278.     /* Feedback */
  279.     GL_2D                = 0x0600,
  280.     GL_3D                = 0x0601,
  281.     GL_3D_COLOR            = 0x0602,
  282.     GL_3D_COLOR_TEXTURE        = 0x0603,
  283.     GL_4D_COLOR_TEXTURE        = 0x0604,
  284.     GL_POINT_TOKEN            = 0x0701,
  285.     GL_LINE_TOKEN            = 0x0702,
  286.     GL_LINE_RESET_TOKEN        = 0x0707,
  287.     GL_POLYGON_TOKEN        = 0x0703,
  288.     GL_BITMAP_TOKEN            = 0x0704,
  289.     GL_DRAW_PIXEL_TOKEN        = 0x0705,
  290.     GL_COPY_PIXEL_TOKEN        = 0x0706,
  291.     GL_PASS_THROUGH_TOKEN        = 0x0700,
  292.  
  293.     /* Fog */
  294.     GL_FOG                = 0x0B60,
  295.     GL_FOG_MODE            = 0x0B65,
  296.     GL_FOG_DENSITY            = 0x0B62,
  297.     GL_FOG_COLOR            = 0x0B66,
  298.     GL_FOG_INDEX            = 0x0B61,
  299.     GL_FOG_START            = 0x0B63,
  300.     GL_FOG_END            = 0x0B64,
  301.     GL_LINEAR            = 0x2601,
  302.     GL_EXP                = 0x0800,
  303.     GL_EXP2                = 0x0801,
  304.  
  305.     /* Logic Ops */
  306.     GL_LOGIC_OP            = 0x0BF1,
  307.     GL_LOGIC_OP_MODE        = 0x0BF0,
  308.     GL_CLEAR            = 0x1500,
  309.     GL_SET                = 0x150F,
  310.     GL_COPY                = 0x1503,
  311.     GL_COPY_INVERTED        = 0x150C,
  312.     GL_NOOP                = 0x1505,
  313.     GL_INVERT            = 0x150A,
  314.     GL_AND                = 0x1501,
  315.     GL_NAND                = 0x150E,
  316.     GL_OR                = 0x1507,
  317.     GL_NOR                = 0x1508,
  318.     GL_XOR                = 0x1506,
  319.     GL_EQUIV            = 0x1509,
  320.     GL_AND_REVERSE            = 0x1502,
  321.     GL_AND_INVERTED            = 0x1504,
  322.     GL_OR_REVERSE            = 0x150B,
  323.     GL_OR_INVERTED            = 0x150D,
  324.  
  325.     /* Stencil */
  326.     GL_STENCIL_TEST            = 0x0B90,
  327.     GL_STENCIL_WRITEMASK        = 0x0B98,
  328.     GL_STENCIL_BITS            = 0x0D57,
  329.     GL_STENCIL_FUNC            = 0x0B92,
  330.     GL_STENCIL_VALUE_MASK        = 0x0B93,
  331.     GL_STENCIL_REF            = 0x0B97,
  332.     GL_STENCIL_FAIL            = 0x0B94,
  333.     GL_STENCIL_PASS_DEPTH_PASS    = 0x0B96,
  334.     GL_STENCIL_PASS_DEPTH_FAIL    = 0x0B95,
  335.     GL_STENCIL_CLEAR_VALUE        = 0x0B91,
  336.     GL_STENCIL_INDEX        = 0x1901,
  337.     GL_KEEP                = 0x1E00,
  338.     GL_REPLACE            = 0x1E01,
  339.     GL_INCR                = 0x1E02,
  340.     GL_DECR                = 0x1E03,
  341.  
  342.     /* Buffers, Pixel Drawing/Reading */
  343.     GL_NONE                = 0,
  344.     GL_LEFT                = 0x0406,
  345.     GL_RIGHT            = 0x0407,
  346.     /*GL_FRONT            = 0x0404, */
  347.     /*GL_BACK            = 0x0405, */
  348.     /*GL_FRONT_AND_BACK        = 0x0408, */
  349.     GL_FRONT_LEFT            = 0x0400,
  350.     GL_FRONT_RIGHT            = 0x0401,
  351.     GL_BACK_LEFT            = 0x0402,
  352.     GL_BACK_RIGHT            = 0x0403,
  353.     GL_AUX0                = 0x0409,
  354.     GL_AUX1                = 0x040A,
  355.     GL_AUX2                = 0x040B,
  356.     GL_AUX3                = 0x040C,
  357.     GL_COLOR_INDEX            = 0x1900,
  358.     GL_RED                = 0x1903,
  359.     GL_GREEN            = 0x1904,
  360.     GL_BLUE                = 0x1905,
  361.     GL_ALPHA            = 0x1906,
  362.     GL_LUMINANCE            = 0x1909,
  363.     GL_LUMINANCE_ALPHA        = 0x190A,
  364.     GL_ALPHA_BITS            = 0x0D55,
  365.     GL_RED_BITS            = 0x0D52,
  366.     GL_GREEN_BITS            = 0x0D53,
  367.     GL_BLUE_BITS            = 0x0D54,
  368.     GL_INDEX_BITS            = 0x0D51,
  369.     GL_SUBPIXEL_BITS        = 0x0D50,
  370.     GL_AUX_BUFFERS            = 0x0C00,
  371.     GL_READ_BUFFER            = 0x0C02,
  372.     GL_DRAW_BUFFER            = 0x0C01,
  373.     GL_DOUBLEBUFFER            = 0x0C32,
  374.     GL_STEREO            = 0x0C33,
  375.     GL_BITMAP            = 0x1A00,
  376.     GL_COLOR            = 0x1800,
  377.     GL_DEPTH            = 0x1801,
  378.     GL_STENCIL            = 0x1802,
  379.     GL_DITHER            = 0x0BD0,
  380.     GL_RGB                = 0x1907,
  381.     GL_RGBA                = 0x1908,
  382.  
  383.     /* Implementation limits */
  384.     GL_MAX_MODELVIEW_STACK_DEPTH    = 0x0D36,
  385.     GL_MAX_PROJECTION_STACK_DEPTH    = 0x0D38,
  386.     GL_MAX_TEXTURE_STACK_DEPTH    = 0x0D39,
  387.     GL_MAX_ATTRIB_STACK_DEPTH    = 0x0D35,
  388.     GL_MAX_NAME_STACK_DEPTH        = 0x0D37,
  389.     GL_MAX_LIST_NESTING        = 0x0B31,
  390.     GL_MAX_LIGHTS            = 0x0D31,
  391.     GL_MAX_CLIP_PLANES        = 0x0D32,
  392.     GL_MAX_VIEWPORT_DIMS        = 0x0D3A,
  393.     GL_MAX_PIXEL_MAP_TABLE        = 0x0D34,
  394.     GL_MAX_EVAL_ORDER        = 0x0D30,
  395.     GL_MAX_TEXTURE_SIZE        = 0x0D33,
  396.  
  397.     /* Gets */
  398.     GL_ATTRIB_STACK_DEPTH        = 0x0BB0,
  399.     GL_COLOR_CLEAR_VALUE        = 0x0C22,
  400.     GL_COLOR_WRITEMASK        = 0x0C23,
  401.     GL_CURRENT_INDEX        = 0x0B01,
  402.     GL_CURRENT_COLOR        = 0x0B00,
  403.     GL_CURRENT_NORMAL        = 0x0B02,
  404.     GL_CURRENT_RASTER_COLOR        = 0x0B04,
  405.     GL_CURRENT_RASTER_DISTANCE    = 0x0B09,
  406.     GL_CURRENT_RASTER_INDEX        = 0x0B05,
  407.     GL_CURRENT_RASTER_POSITION    = 0x0B07,
  408.     GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06,
  409.     GL_CURRENT_RASTER_POSITION_VALID = 0x0B08,
  410.     GL_CURRENT_TEXTURE_COORDS    = 0x0B03,
  411.     GL_INDEX_CLEAR_VALUE        = 0x0C20,
  412.     GL_INDEX_MODE            = 0x0C30,
  413.     GL_INDEX_WRITEMASK        = 0x0C21,
  414.     GL_MODELVIEW_MATRIX        = 0x0BA6,
  415.     GL_MODELVIEW_STACK_DEPTH    = 0x0BA3,
  416.     GL_NAME_STACK_DEPTH        = 0x0D70,
  417.     GL_PROJECTION_MATRIX        = 0x0BA7,
  418.     GL_PROJECTION_STACK_DEPTH    = 0x0BA4,
  419.     GL_RENDER_MODE            = 0x0C40,
  420.     GL_RGBA_MODE            = 0x0C31,
  421.     GL_TEXTURE_MATRIX        = 0x0BA8,
  422.     GL_TEXTURE_STACK_DEPTH        = 0x0BA5,
  423.     GL_VIEWPORT            = 0x0BA2,
  424.  
  425.  
  426.     /* Evaluators */
  427.     GL_AUTO_NORMAL            = 0x0D80,
  428.     GL_MAP1_COLOR_4            = 0x0D90,
  429.     GL_MAP1_GRID_DOMAIN        = 0x0DD0,
  430.     GL_MAP1_GRID_SEGMENTS        = 0x0DD1,
  431.     GL_MAP1_INDEX            = 0x0D91,
  432.     GL_MAP1_NORMAL            = 0x0D92,
  433.     GL_MAP1_TEXTURE_COORD_1        = 0x0D93,
  434.     GL_MAP1_TEXTURE_COORD_2        = 0x0D94,
  435.     GL_MAP1_TEXTURE_COORD_3        = 0x0D95,
  436.     GL_MAP1_TEXTURE_COORD_4        = 0x0D96,
  437.     GL_MAP1_VERTEX_3        = 0x0D97,
  438.     GL_MAP1_VERTEX_4        = 0x0D98,
  439.     GL_MAP2_COLOR_4            = 0x0DB0,
  440.     GL_MAP2_GRID_DOMAIN        = 0x0DD2,
  441.     GL_MAP2_GRID_SEGMENTS        = 0x0DD3,
  442.     GL_MAP2_INDEX            = 0x0DB1,
  443.     GL_MAP2_NORMAL            = 0x0DB2,
  444.     GL_MAP2_TEXTURE_COORD_1        = 0x0DB3,
  445.     GL_MAP2_TEXTURE_COORD_2        = 0x0DB4,
  446.     GL_MAP2_TEXTURE_COORD_3        = 0x0DB5,
  447.     GL_MAP2_TEXTURE_COORD_4        = 0x0DB6,
  448.     GL_MAP2_VERTEX_3        = 0x0DB7,
  449.     GL_MAP2_VERTEX_4        = 0x0DB8,
  450.     GL_COEFF            = 0x0A00,
  451.     GL_DOMAIN            = 0x0A02,
  452.     GL_ORDER            = 0x0A01,
  453.  
  454.     /* Hints */
  455.     GL_FOG_HINT            = 0x0C54,
  456.     GL_LINE_SMOOTH_HINT        = 0x0C52,
  457.     GL_PERSPECTIVE_CORRECTION_HINT    = 0x0C50,
  458.     GL_POINT_SMOOTH_HINT        = 0x0C51,
  459.     GL_POLYGON_SMOOTH_HINT        = 0x0C53,
  460.     GL_DONT_CARE            = 0x1100,
  461.     GL_FASTEST            = 0x1101,
  462.     GL_NICEST            = 0x1102,
  463.  
  464.     /* Scissor box */
  465.     GL_SCISSOR_TEST            = 0x0C11,
  466.     GL_SCISSOR_BOX            = 0x0C10,
  467.  
  468.     /* Pixel Mode / Transfer */
  469.     GL_MAP_COLOR            = 0x0D10,
  470.     GL_MAP_STENCIL            = 0x0D11,
  471.     GL_INDEX_SHIFT            = 0x0D12,
  472.     GL_INDEX_OFFSET            = 0x0D13,
  473.     GL_RED_SCALE            = 0x0D14,
  474.     GL_RED_BIAS            = 0x0D15,
  475.     GL_GREEN_SCALE            = 0x0D18,
  476.     GL_GREEN_BIAS            = 0x0D19,
  477.     GL_BLUE_SCALE            = 0x0D1A,
  478.     GL_BLUE_BIAS            = 0x0D1B,
  479.     GL_ALPHA_SCALE            = 0x0D1C,
  480.     GL_ALPHA_BIAS            = 0x0D1D,
  481.     GL_DEPTH_SCALE            = 0x0D1E,
  482.     GL_DEPTH_BIAS            = 0x0D1F,
  483.     GL_PIXEL_MAP_S_TO_S_SIZE    = 0x0CB1,
  484.     GL_PIXEL_MAP_I_TO_I_SIZE    = 0x0CB0,
  485.     GL_PIXEL_MAP_I_TO_R_SIZE    = 0x0CB2,
  486.     GL_PIXEL_MAP_I_TO_G_SIZE    = 0x0CB3,
  487.     GL_PIXEL_MAP_I_TO_B_SIZE    = 0x0CB4,
  488.     GL_PIXEL_MAP_I_TO_A_SIZE    = 0x0CB5,
  489.     GL_PIXEL_MAP_R_TO_R_SIZE    = 0x0CB6,
  490.     GL_PIXEL_MAP_G_TO_G_SIZE    = 0x0CB7,
  491.     GL_PIXEL_MAP_B_TO_B_SIZE    = 0x0CB8,
  492.     GL_PIXEL_MAP_A_TO_A_SIZE    = 0x0CB9,
  493.     GL_PIXEL_MAP_S_TO_S        = 0x0C71,
  494.     GL_PIXEL_MAP_I_TO_I        = 0x0C70,
  495.     GL_PIXEL_MAP_I_TO_R        = 0x0C72,
  496.     GL_PIXEL_MAP_I_TO_G        = 0x0C73,
  497.     GL_PIXEL_MAP_I_TO_B        = 0x0C74,
  498.     GL_PIXEL_MAP_I_TO_A        = 0x0C75,
  499.     GL_PIXEL_MAP_R_TO_R        = 0x0C76,
  500.     GL_PIXEL_MAP_G_TO_G        = 0x0C77,
  501.     GL_PIXEL_MAP_B_TO_B        = 0x0C78,
  502.     GL_PIXEL_MAP_A_TO_A        = 0x0C79,
  503.     GL_PACK_ALIGNMENT        = 0x0D05,
  504.     GL_PACK_LSB_FIRST        = 0x0D01,
  505.     GL_PACK_ROW_LENGTH        = 0x0D02,
  506.     GL_PACK_SKIP_PIXELS        = 0x0D04,
  507.     GL_PACK_SKIP_ROWS        = 0x0D03,
  508.     GL_PACK_SWAP_BYTES        = 0x0D00,
  509.     GL_UNPACK_ALIGNMENT        = 0x0CF5,
  510.     GL_UNPACK_LSB_FIRST        = 0x0CF1,
  511.     GL_UNPACK_ROW_LENGTH        = 0x0CF2,
  512.     GL_UNPACK_SKIP_PIXELS        = 0x0CF4,
  513.     GL_UNPACK_SKIP_ROWS        = 0x0CF3,
  514.     GL_UNPACK_SWAP_BYTES        = 0x0CF0,
  515.     GL_ZOOM_X            = 0x0D16,
  516.     GL_ZOOM_Y            = 0x0D17,
  517.  
  518.     /* Texture mapping */
  519.     GL_TEXTURE_ENV            = 0x2300,
  520.     GL_TEXTURE_ENV_MODE        = 0x2200,
  521.     GL_TEXTURE_1D            = 0x0DE0,
  522.     GL_TEXTURE_2D            = 0x0DE1,
  523.     GL_TEXTURE_WRAP_S        = 0x2802,
  524.     GL_TEXTURE_WRAP_T        = 0x2803,
  525.     GL_TEXTURE_MAG_FILTER        = 0x2800,
  526.     GL_TEXTURE_MIN_FILTER        = 0x2801,
  527.     GL_TEXTURE_ENV_COLOR        = 0x2201,
  528.     GL_TEXTURE_GEN_S        = 0x0C60,
  529.     GL_TEXTURE_GEN_T        = 0x0C61,
  530.     GL_TEXTURE_GEN_MODE        = 0x2500,
  531.     GL_TEXTURE_BORDER_COLOR        = 0x1004,
  532.     GL_TEXTURE_WIDTH        = 0x1000,
  533.     GL_TEXTURE_HEIGHT        = 0x1001,
  534.     GL_TEXTURE_BORDER        = 0x1005,
  535.     GL_TEXTURE_COMPONENTS        = 0x1003,
  536.     GL_NEAREST_MIPMAP_NEAREST    = 0x2700,
  537.     GL_NEAREST_MIPMAP_LINEAR    = 0x2702,
  538.     GL_LINEAR_MIPMAP_NEAREST    = 0x2701,
  539.     GL_LINEAR_MIPMAP_LINEAR        = 0x2703,
  540.     GL_OBJECT_LINEAR        = 0x2401,
  541.     GL_OBJECT_PLANE            = 0x2501,
  542.     GL_EYE_LINEAR            = 0x2400,
  543.     GL_EYE_PLANE            = 0x2502,
  544.     GL_SPHERE_MAP            = 0x2402,
  545.     GL_DECAL            = 0x2101,
  546.     GL_MODULATE            = 0x2100,
  547.     GL_NEAREST            = 0x2600,
  548.     GL_REPEAT            = 0x2901,
  549.     GL_CLAMP            = 0x2900,
  550.     GL_S                = 0x2000,
  551.     GL_T                = 0x2001,
  552.     GL_R                = 0x2002,
  553.     GL_Q                = 0x2003,
  554.     GL_TEXTURE_GEN_R        = 0x0C62,
  555.     GL_TEXTURE_GEN_Q        = 0x0C63,
  556.  
  557.     /* Utility */
  558.     GL_VENDOR            = 0x1F00,
  559.     GL_RENDERER            = 0x1F01,
  560.     GL_VERSION            = 0x1F02,
  561.     GL_EXTENSIONS            = 0x1F03,
  562.  
  563.     /* Errors */
  564.     GL_INVALID_VALUE        = 0x0501,
  565.     GL_INVALID_ENUM            = 0x0500,
  566.     GL_INVALID_OPERATION        = 0x0502,
  567.     GL_STACK_OVERFLOW        = 0x0503,
  568.     GL_STACK_UNDERFLOW        = 0x0504,
  569.     GL_OUT_OF_MEMORY        = 0x0505,
  570.  
  571.     /* Blending Extensions */
  572.     GL_CONSTANT_COLOR_EXT        = 0x8001,
  573.     GL_ONE_MINUS_CONSTANT_COLOR_EXT    = 0x8002,
  574.     GL_CONSTANT_ALPHA_EXT        = 0x8003,
  575.     GL_ONE_MINUS_CONSTANT_ALPHA_EXT    = 0x8004,
  576.     GL_BLEND_EQUATION_EXT        = 0x8009,
  577.     GL_MIN_EXT            = 0x8007,
  578.     GL_MAX_EXT            = 0x8008,
  579.     GL_FUNC_ADD_EXT            = 0x8006,
  580.     GL_FUNC_SUBTRACT_EXT        = 0x800A,
  581.     GL_FUNC_REVERSE_SUBTRACT_EXT    = 0x800B,
  582.     GL_BLEND_COLOR_EXT        = 0x8005,
  583.     GL_REPLACE_EXT            = 0x8062,
  584.  
  585.     /* Polygon Offset Extension */
  586.         GL_POLYGON_OFFSET_EXT           = 0x8037,
  587.         GL_POLYGON_OFFSET_FACTOR_EXT    = 0x8038,
  588.         GL_POLYGON_OFFSET_BIAS_EXT      = 0x8039,
  589.  
  590.     /* Vertex Array Extension */
  591.     GL_VERTEX_ARRAY_EXT        = 0x8074,
  592.     GL_NORMAL_ARRAY_EXT        = 0x8075,
  593.     GL_COLOR_ARRAY_EXT        = 0x8076,
  594.     GL_INDEX_ARRAY_EXT        = 0x8077,
  595.     GL_TEXTURE_COORD_ARRAY_EXT    = 0x8078,
  596.     GL_EDGE_FLAG_ARRAY_EXT        = 0x8079,
  597.     GL_VERTEX_ARRAY_SIZE_EXT    = 0x807A,
  598.     GL_VERTEX_ARRAY_TYPE_EXT    = 0x807B,
  599.     GL_VERTEX_ARRAY_STRIDE_EXT    = 0x807C,
  600.     GL_VERTEX_ARRAY_COUNT_EXT    = 0x807D,
  601.     GL_NORMAL_ARRAY_TYPE_EXT    = 0x807E,
  602.     GL_NORMAL_ARRAY_STRIDE_EXT    = 0x807F,
  603.     GL_NORMAL_ARRAY_COUNT_EXT    = 0x8080,
  604.     GL_COLOR_ARRAY_SIZE_EXT        = 0x8081,
  605.     GL_COLOR_ARRAY_TYPE_EXT        = 0x8082,
  606.     GL_COLOR_ARRAY_STRIDE_EXT    = 0x8083,
  607.     GL_COLOR_ARRAY_COUNT_EXT    = 0x8084,
  608.     GL_INDEX_ARRAY_TYPE_EXT        = 0x8085,
  609.     GL_INDEX_ARRAY_STRIDE_EXT    = 0x8086,
  610.     GL_INDEX_ARRAY_COUNT_EXT    = 0x8087,
  611.     GL_TEXTURE_COORD_ARRAY_SIZE_EXT    = 0x8088,
  612.     GL_TEXTURE_COORD_ARRAY_TYPE_EXT    = 0x8089,
  613.     GL_TEXTURE_COORD_ARRAY_STRIDE_EXT= 0x808A,
  614.     GL_TEXTURE_COORD_ARRAY_COUNT_EXT= 0x808B,
  615.     GL_EDGE_FLAG_ARRAY_STRIDE_EXT    = 0x808C,
  616.     GL_EDGE_FLAG_ARRAY_COUNT_EXT    = 0x808D,
  617.     GL_VERTEX_ARRAY_POINTER_EXT    = 0x808E,
  618.     GL_NORMAL_ARRAY_POINTER_EXT    = 0x808F,
  619.     GL_COLOR_ARRAY_POINTER_EXT    = 0x8090,
  620.     GL_INDEX_ARRAY_POINTER_EXT    = 0x8091,
  621.     GL_TEXTURE_COORD_ARRAY_POINTER_EXT= 0x8092,
  622.     GL_EDGE_FLAG_ARRAY_POINTER_EXT    = 0x8093
  623. }
  624. #ifdef CENTERLINE_CLPP
  625.   /* CenterLine C++ workaround: */
  626.   gl_enum;
  627.   typedef int GLenum;
  628. #else
  629.   /* all other compilers */
  630.   GLenum;
  631. #endif
  632.  
  633.  
  634. /* GL_NO_ERROR must be zero */
  635. #define GL_NO_ERROR GL_FALSE
  636.  
  637.  
  638.  
  639. typedef enum {
  640.     GL_CURRENT_BIT        = 0x00000001,
  641.     GL_POINT_BIT        = 0x00000002,
  642.     GL_LINE_BIT        = 0x00000004,
  643.     GL_POLYGON_BIT        = 0x00000008,
  644.     GL_POLYGON_STIPPLE_BIT    = 0x00000010,
  645.     GL_PIXEL_MODE_BIT    = 0x00000020,
  646.     GL_LIGHTING_BIT        = 0x00000040,
  647.     GL_FOG_BIT        = 0x00000080,
  648.     GL_DEPTH_BUFFER_BIT    = 0x00000100,
  649.     GL_ACCUM_BUFFER_BIT    = 0x00000200,
  650.     GL_STENCIL_BUFFER_BIT    = 0x00000400,
  651.     GL_VIEWPORT_BIT        = 0x00000800,
  652.     GL_TRANSFORM_BIT    = 0x00001000,
  653.     GL_ENABLE_BIT        = 0x00002000,
  654.     GL_COLOR_BUFFER_BIT    = 0x00004000,
  655.     GL_HINT_BIT        = 0x00008000,
  656.     GL_EVAL_BIT        = 0x00010000,
  657.     GL_LIST_BIT        = 0x00020000,
  658.     GL_TEXTURE_BIT        = 0x00040000,
  659.     GL_SCISSOR_BIT        = 0x00080000,
  660.     GL_ALL_ATTRIB_BITS    = 0x000fffff
  661. } GLbitfield;
  662.  
  663.  
  664. #ifdef CENTERLINE_CLPP
  665. #define signed
  666. #endif
  667.  
  668.  
  669. /*
  670.  *
  671.  * Data types (may be architecture dependent in some cases)
  672.  *
  673.  */
  674.  
  675. /*  C type        GL type        storage                            */
  676. /*-------------------------------------------------------------------------*/
  677. typedef void        GLvoid;
  678. typedef unsigned char    GLboolean;
  679. typedef signed char    GLbyte;        /* 1-byte signed */
  680. typedef short        GLshort;    /* 2-byte signed */
  681. typedef int        GLint;        /* 4-byte signed */
  682. typedef unsigned char    GLubyte;    /* 1-byte unsigned */
  683. typedef unsigned short    GLushort;    /* 2-byte unsigned */
  684. typedef unsigned int    GLuint;        /* 4-byte unsigned */
  685. typedef int        GLsizei;    /* 4-byte signed */
  686. typedef float        GLfloat;    /* single precision float */
  687. typedef float        GLclampf;    /* single precision float in [0,1] */
  688. typedef double        GLdouble;    /* double precision float */
  689. typedef double        GLclampd;    /* double precision float in [0,1] */
  690.  
  691.  
  692.  
  693.  
  694. /*
  695.  * Miscellaneous
  696.  */
  697.  
  698. extern void glClearIndex( GLfloat c );
  699.  
  700. extern void glClearColor( GLclampf red,
  701.               GLclampf green,
  702.               GLclampf blue,
  703.               GLclampf alpha );
  704.  
  705. extern void glClear( GLbitfield mask );
  706.  
  707. extern void glIndexMask( GLuint mask );
  708.  
  709. extern void glColorMask( GLboolean red, GLboolean green,
  710.              GLboolean blue, GLboolean alpha );
  711.  
  712. extern void glAlphaFunc( GLenum func, GLclampf ref );
  713.  
  714. extern void glBlendFunc( GLenum sfactor, GLenum dfactor );
  715.  
  716. extern void glLogicOp( GLenum opcode );
  717.  
  718. extern void glCullFace( GLenum mode );
  719.  
  720. extern void glFrontFace( GLenum mode );
  721.  
  722. extern void glPointSize( GLfloat size );
  723.  
  724. extern void glLineWidth( GLfloat width );
  725.  
  726. extern void glLineStipple( GLint factor, GLushort pattern );
  727.  
  728. extern void glPolygonMode( GLenum face, GLenum mode );
  729.  
  730. extern void glPolygonStipple( const GLubyte *mask );
  731.  
  732. extern void glGetPolygonStipple( GLubyte *mask );
  733.  
  734. extern void glEdgeFlag( GLboolean flag );
  735.  
  736. extern void glEdgeFlagv( const GLboolean *flag );
  737.  
  738. extern void glScissor( GLint x, GLint y, GLsizei width, GLsizei height);
  739.  
  740. extern void glClipPlane( GLenum plane, const GLdouble *equation );
  741.  
  742. extern void glGetClipPlane( GLenum plane, GLdouble *equation );
  743.  
  744. extern void glDrawBuffer( GLenum mode );
  745.  
  746. extern void glReadBuffer( GLenum mode );
  747.  
  748. extern void glEnable( GLenum cap );
  749.  
  750. extern void glDisable( GLenum cap );
  751.  
  752. extern GLboolean glIsEnabled( GLenum cap );
  753.  
  754.  
  755. extern void glGetBooleanv( GLenum pname, GLboolean *params );
  756.  
  757. extern void glGetDoublev( GLenum pname, GLdouble *params );
  758.  
  759. extern void glGetFloatv( GLenum pname, GLfloat *params );
  760.  
  761. extern void glGetIntegerv( GLenum pname, GLint *params );
  762.  
  763.  
  764. extern void glPushAttrib( GLbitfield mask );
  765.  
  766. extern void glPopAttrib( void );
  767.  
  768.  
  769. extern GLint glRenderMode( GLenum mode );
  770.  
  771. extern GLenum glGetError( void );
  772.  
  773. extern const GLubyte *glGetString( GLenum name );
  774.  
  775. extern void glFinish( void );
  776.  
  777. extern void glFlush( void );
  778.  
  779. extern void glHint( GLenum target, GLenum mode );
  780.  
  781.  
  782.  
  783. /*
  784.  * Depth Buffer
  785.  */
  786.  
  787. extern void glClearDepth( GLclampd depth );
  788.  
  789. extern void glDepthFunc( GLenum func );
  790.  
  791. extern void glDepthMask( GLboolean flag );
  792.  
  793. extern void glDepthRange( GLclampd near_val, GLclampd far_val );
  794.  
  795.  
  796. /*
  797.  * Accumulation Buffer
  798.  */
  799.  
  800. extern void glClearAccum( GLfloat red, GLfloat green,
  801.               GLfloat blue, GLfloat alpha );
  802.  
  803. extern void glAccum( GLenum op, GLfloat value );
  804.  
  805.  
  806.  
  807. /*
  808.  * Transformation
  809.  */
  810.  
  811. extern void glMatrixMode( GLenum mode );
  812.  
  813. extern void glOrtho( GLdouble left, GLdouble right,
  814.              GLdouble bottom, GLdouble top,
  815.              GLdouble near_val, GLdouble far_val );
  816.  
  817. extern void glFrustum( GLdouble left, GLdouble right,
  818.                GLdouble bottom, GLdouble top,
  819.                GLdouble near_val, GLdouble far_val );
  820.  
  821. extern void glViewport( GLint x, GLint y, GLsizei width, GLsizei height );
  822.  
  823. extern void glPushMatrix( void );
  824.  
  825. extern void glPopMatrix( void );
  826.  
  827. extern void glLoadIdentity( void );
  828.  
  829. extern void glLoadMatrixd( const GLdouble *m );
  830. extern void glLoadMatrixf( const GLfloat *m );
  831.  
  832. extern void glMultMatrixd( const GLdouble *m );
  833. extern void glMultMatrixf( const GLfloat *m );
  834.  
  835. extern void glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
  836. extern void glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );
  837.  
  838. extern void glScaled( GLdouble x, GLdouble y, GLdouble z );
  839. extern void glScalef( GLfloat x, GLfloat y, GLfloat z );
  840.  
  841. extern void glTranslated( GLdouble x, GLdouble y, GLdouble z );
  842. extern void glTranslatef( GLfloat x, GLfloat y, GLfloat z );
  843.  
  844.  
  845.  
  846. /*
  847.  * Display Lists
  848.  */
  849.  
  850. extern GLboolean glIsList( GLuint list );
  851.  
  852. extern void glDeleteLists( GLuint list, GLsizei range );
  853.  
  854. extern GLuint glGenLists( GLsizei range );
  855.  
  856. extern void glNewList( GLuint list, GLenum mode );
  857.  
  858. extern void glEndList( void );
  859.  
  860. extern void glCallList( GLuint list );
  861.  
  862. extern void glCallLists( GLsizei n, GLenum type, const GLvoid *lists );
  863.  
  864. extern void glListBase( GLuint base );
  865.  
  866.  
  867.  
  868. /*
  869.  * Drawing Functions
  870.  */
  871.  
  872. extern void glBegin( GLenum mode );
  873.  
  874. extern void glEnd( void );
  875.  
  876.  
  877. extern void glVertex2d( GLdouble x, GLdouble y );
  878. extern void glVertex2f( GLfloat x, GLfloat y );
  879. extern void glVertex2i( GLint x, GLint y );
  880. extern void glVertex2s( GLshort x, GLshort y );
  881.  
  882. extern void glVertex3d( GLdouble x, GLdouble y, GLdouble z );
  883. extern void glVertex3f( GLfloat x, GLfloat y, GLfloat z );
  884. extern void glVertex3i( GLint x, GLint y, GLint z );
  885. extern void glVertex3s( GLshort x, GLshort y, GLshort z );
  886.  
  887. extern void glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
  888. extern void glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
  889. extern void glVertex4i( GLint x, GLint y, GLint z, GLint w );
  890. extern void glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w );
  891.  
  892. extern void glVertex2dv( const GLdouble *v );
  893. extern void glVertex2fv( const GLfloat *v );
  894. extern void glVertex2iv( const GLint *v );
  895. extern void glVertex2sv( const GLshort *v );
  896.  
  897. extern void glVertex3dv( const GLdouble *v );
  898. extern void glVertex3fv( const GLfloat *v );
  899. extern void glVertex3iv( const GLint *v );
  900. extern void glVertex3sv( const GLshort *v );
  901.  
  902. extern void glVertex4dv( const GLdouble *v );
  903. extern void glVertex4fv( const GLfloat *v );
  904. extern void glVertex4iv( const GLint *v );
  905. extern void glVertex4sv( const GLshort *v );
  906.  
  907.  
  908. extern void glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz );
  909. extern void glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz );
  910. extern void glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz );
  911. extern void glNormal3i( GLint nx, GLint ny, GLint nz );
  912. extern void glNormal3s( GLshort nx, GLshort ny, GLshort nz );
  913.  
  914. extern void glNormal3bv( const GLbyte *v );
  915. extern void glNormal3dv( const GLdouble *v );
  916. extern void glNormal3fv( const GLfloat *v );
  917. extern void glNormal3iv( const GLint *v );
  918. extern void glNormal3sv( const GLshort *v );
  919.  
  920.  
  921. extern void glIndexd( GLdouble c );
  922. extern void glIndexf( GLfloat c );
  923. extern void glIndexi( GLint c );
  924. extern void glIndexs( GLshort c );
  925.  
  926. extern void glIndexdv( const GLdouble *c );
  927. extern void glIndexfv( const GLfloat *c );
  928. extern void glIndexiv( const GLint *c );
  929. extern void glIndexsv( const GLshort *c );
  930.  
  931.  
  932. extern void glColor3b( GLbyte red, GLbyte green, GLbyte blue );
  933. extern void glColor3d( GLdouble red, GLdouble green, GLdouble blue );
  934. extern void glColor3f( GLfloat red, GLfloat green, GLfloat blue );
  935. extern void glColor3i( GLint red, GLint green, GLint blue );
  936. extern void glColor3s( GLshort red, GLshort green, GLshort blue );
  937. extern void glColor3ub( GLubyte red, GLubyte green, GLubyte blue );
  938. extern void glColor3ui( GLuint red, GLuint green, GLuint blue );
  939. extern void glColor3us( GLushort red, GLushort green, GLushort blue );
  940.  
  941. extern void glColor4b( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
  942. extern void glColor4d( GLdouble red, GLdouble green,
  943.                GLdouble blue, GLdouble alpha );
  944. extern void glColor4f( GLfloat red, GLfloat green,
  945.                GLfloat blue, GLfloat alpha );
  946. extern void glColor4i( GLint red, GLint green, GLint blue, GLint alpha );
  947. extern void glColor4s( GLshort red, GLshort green,
  948.                GLshort blue, GLshort alpha );
  949. extern void glColor4ub( GLubyte red, GLubyte green,
  950.             GLubyte blue, GLubyte alpha );
  951. extern void glColor4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha );
  952. extern void glColor4us( GLushort red, GLushort green,
  953.             GLushort blue, GLushort alpha );
  954.  
  955.  
  956. extern void glColor3bv( const GLbyte *v );
  957. extern void glColor3dv( const GLdouble *v );
  958. extern void glColor3fv( const GLfloat *v );
  959. extern void glColor3iv( const GLint *v );
  960. extern void glColor3sv( const GLshort *v );
  961. extern void glColor3ubv( const GLubyte *v );
  962. extern void glColor3uiv( const GLuint *v );
  963. extern void glColor3usv( const GLushort *v );
  964.  
  965. extern void glColor4bv( const GLbyte *v );
  966. extern void glColor4dv( const GLdouble *v );
  967. extern void glColor4fv( const GLfloat *v );
  968. extern void glColor4iv( const GLint *v );
  969. extern void glColor4sv( const GLshort *v );
  970. extern void glColor4ubv( const GLubyte *v );
  971. extern void glColor4uiv( const GLuint *v );
  972. extern void glColor4usv( const GLushort *v );
  973.  
  974.  
  975. extern void glTexCoord1d( GLdouble s );
  976. extern void glTexCoord1f( GLfloat s );
  977. extern void glTexCoord1i( GLint s );
  978. extern void glTexCoord1s( GLshort s );
  979.  
  980. extern void glTexCoord2d( GLdouble s, GLdouble t );
  981. extern void glTexCoord2f( GLfloat s, GLfloat t );
  982. extern void glTexCoord2i( GLint s, GLint t );
  983. extern void glTexCoord2s( GLshort s, GLshort t );
  984.  
  985. extern void glTexCoord3d( GLdouble s, GLdouble t, GLdouble r );
  986. extern void glTexCoord3f( GLfloat s, GLfloat t, GLfloat r );
  987. extern void glTexCoord3i( GLint s, GLint t, GLint r );
  988. extern void glTexCoord3s( GLshort s, GLshort t, GLshort r );
  989.  
  990. extern void glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
  991. extern void glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
  992. extern void glTexCoord4i( GLint s, GLint t, GLint r, GLint q );
  993. extern void glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q );
  994.  
  995. extern void glTexCoord1dv( const GLdouble *v );
  996. extern void glTexCoord1fv( const GLfloat *v );
  997. extern void glTexCoord1iv( const GLint *v );
  998. extern void glTexCoord1sv( const GLshort *v );
  999.  
  1000. extern void glTexCoord2dv( const GLdouble *v );
  1001. extern void glTexCoord2fv( const GLfloat *v );
  1002. extern void glTexCoord2iv( const GLint *v );
  1003. extern void glTexCoord2sv( const GLshort *v );
  1004.  
  1005. extern void glTexCoord3dv( const GLdouble *v );
  1006. extern void glTexCoord3fv( const GLfloat *v );
  1007. extern void glTexCoord3iv( const GLint *v );
  1008. extern void glTexCoord3sv( const GLshort *v );
  1009.  
  1010. extern void glTexCoord4dv( const GLdouble *v );
  1011. extern void glTexCoord4fv( const GLfloat *v );
  1012. extern void glTexCoord4iv( const GLint *v );
  1013. extern void glTexCoord4sv( const GLshort *v );
  1014.  
  1015.  
  1016. extern void glRasterPos2d( GLdouble x, GLdouble y );
  1017. extern void glRasterPos2f( GLfloat x, GLfloat y );
  1018. extern void glRasterPos2i( GLint x, GLint y );
  1019. extern void glRasterPos2s( GLshort x, GLshort y );
  1020.  
  1021. extern void glRasterPos3d( GLdouble x, GLdouble y, GLdouble z );
  1022. extern void glRasterPos3f( GLfloat x, GLfloat y, GLfloat z );
  1023. extern void glRasterPos3i( GLint x, GLint y, GLint z );
  1024. extern void glRasterPos3s( GLshort x, GLshort y, GLshort z );
  1025.  
  1026. extern void glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
  1027. extern void glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
  1028. extern void glRasterPos4i( GLint x, GLint y, GLint z, GLint w );
  1029. extern void glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w );
  1030.  
  1031. extern void glRasterPos2dv( const GLdouble *v );
  1032. extern void glRasterPos2fv( const GLfloat *v );
  1033. extern void glRasterPos2iv( const GLint *v );
  1034. extern void glRasterPos2sv( const GLshort *v );
  1035.  
  1036. extern void glRasterPos3dv( const GLdouble *v );
  1037. extern void glRasterPos3fv( const GLfloat *v );
  1038. extern void glRasterPos3iv( const GLint *v );
  1039. extern void glRasterPos3sv( const GLshort *v );
  1040.  
  1041. extern void glRasterPos4dv( const GLdouble *v );
  1042. extern void glRasterPos4fv( const GLfloat *v );
  1043. extern void glRasterPos4iv( const GLint *v );
  1044. extern void glRasterPos4sv( const GLshort *v );
  1045.  
  1046.  
  1047. extern void glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 );
  1048. extern void glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 );
  1049. extern void glRecti( GLint x1, GLint y1, GLint x2, GLint y2 );
  1050. extern void glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 );
  1051.  
  1052.  
  1053. extern void glRectdv( const GLdouble *v1, const GLdouble *v2 );
  1054. extern void glRectfv( const GLfloat *v1, const GLfloat *v2 );
  1055. extern void glRectiv( const GLint *v1, const GLint *v2 );
  1056. extern void glRectsv( const GLshort *v1, const GLshort *v2 );
  1057.  
  1058.  
  1059.  
  1060. /*
  1061.  * Lighting
  1062.  */
  1063.  
  1064. extern void glShadeModel( GLenum mode );
  1065.  
  1066. extern void glLightf( GLenum light, GLenum pname, GLfloat param );
  1067. extern void glLighti( GLenum light, GLenum pname, GLint param );
  1068. extern void glLightfv( GLenum light, GLenum pname, const GLfloat *params );
  1069. extern void glLightiv( GLenum light, GLenum pname, const GLint *params );
  1070.  
  1071. extern void glGetLightfv( GLenum light, GLenum pname, GLfloat *params );
  1072. extern void glGetLightiv( GLenum light, GLenum pname, GLint *params );
  1073.  
  1074. extern void glLightModelf( GLenum pname, GLfloat param );
  1075. extern void glLightModeli( GLenum pname, GLint param );
  1076. extern void glLightModelfv( GLenum pname, const GLfloat *params );
  1077. extern void glLightModeliv( GLenum pname, const GLint *params );
  1078.  
  1079. extern void glMaterialf( GLenum face, GLenum pname, GLfloat param );
  1080. extern void glMateriali( GLenum face, GLenum pname, GLint param );
  1081. extern void glMaterialfv( GLenum face, GLenum pname, const GLfloat *params );
  1082. extern void glMaterialiv( GLenum face, GLenum pname, const GLint *params );
  1083.  
  1084. extern void glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params );
  1085. extern void glGetMaterialiv( GLenum face, GLenum pname, GLint *params );
  1086.  
  1087. extern void glColorMaterial( GLenum face, GLenum mode );
  1088.  
  1089.  
  1090.  
  1091.  
  1092. /*
  1093.  * Raster functions
  1094.  */
  1095.  
  1096. extern void glPixelZoom( GLfloat xfactor, GLfloat yfactor );
  1097.  
  1098. extern void glPixelStoref( GLenum pname, GLfloat param );
  1099. extern void glPixelStorei( GLenum pname, GLint param );
  1100.  
  1101. extern void glPixelTransferf( GLenum pname, GLfloat param );
  1102. extern void glPixelTransferi( GLenum pname, GLint param );
  1103.  
  1104. extern void glPixelMapfv( GLenum map, GLint mapsize, const GLfloat *values );
  1105. extern void glPixelMapuiv( GLenum map, GLint mapsize, const GLuint *values );
  1106. extern void glPixelMapusv( GLenum map, GLint mapsize, const GLushort *values );
  1107.  
  1108. extern void glGetPixelMapfv( GLenum map, GLfloat *values );
  1109. extern void glGetPixelMapuiv( GLenum map, GLuint *values );
  1110. extern void glGetPixelMapusv( GLenum map, GLushort *values );
  1111.  
  1112. extern void glBitmap( GLsizei width, GLsizei height,
  1113.               GLfloat xorig, GLfloat yorig,
  1114.               GLfloat xmove, GLfloat ymove,
  1115.               const GLubyte *bitmap );
  1116.  
  1117. extern void glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
  1118.               GLenum format, GLenum type, GLvoid *pixels );
  1119.  
  1120. extern void glDrawPixels( GLsizei width, GLsizei height,
  1121.               GLenum format, GLenum type, const GLvoid *pixels );
  1122.  
  1123. extern void glCopyPixels( GLint x, GLint y, GLsizei width, GLsizei height,
  1124.               GLenum type );
  1125.  
  1126.  
  1127.  
  1128. /*
  1129.  * Stenciling
  1130.  */
  1131.  
  1132. extern void glStencilFunc( GLenum func, GLint ref, GLuint mask );
  1133.  
  1134. extern void glStencilMask( GLuint mask );
  1135.  
  1136. extern void glStencilOp( GLenum fail, GLenum zfail, GLenum zpass );
  1137.  
  1138. extern void glClearStencil( GLint s );
  1139.  
  1140.  
  1141.  
  1142. /*
  1143.  * Texture mapping
  1144.  */
  1145.  
  1146. extern void glTexGend( GLenum coord, GLenum pname, GLdouble param );
  1147. extern void glTexGenf( GLenum coord, GLenum pname, GLfloat param );
  1148. extern void glTexGeni( GLenum coord, GLenum pname, GLint param );
  1149.  
  1150. extern void glTexGendv( GLenum coord, GLenum pname, const GLdouble *params );
  1151. extern void glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params );
  1152. extern void glTexGeniv( GLenum coord, GLenum pname, const GLint *params );
  1153.  
  1154. extern void glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params );
  1155. extern void glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params );
  1156. extern void glGetTexGeniv( GLenum coord, GLenum pname, GLint *params );
  1157.  
  1158.  
  1159. extern void glTexEnvf( GLenum target, GLenum pname, GLfloat param );
  1160. extern void glTexEnvi( GLenum target, GLenum pname, GLint param );
  1161.  
  1162. extern void glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params );
  1163. extern void glTexEnviv( GLenum target, GLenum pname, const GLint *params );
  1164.  
  1165. extern void glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params );
  1166. extern void glGetTexEnviv( GLenum target, GLenum pname, GLint *params );
  1167.  
  1168.  
  1169. extern void glTexParameterf( GLenum target, GLenum pname, GLfloat param );
  1170. extern void glTexParameteri( GLenum target, GLenum pname, GLint param );
  1171.  
  1172. extern void glTexParameterfv( GLenum target, GLenum pname,
  1173.                   const GLfloat *params );
  1174. extern void glTexParameteriv( GLenum target, GLenum pname,
  1175.                   const GLint *params );
  1176.  
  1177. extern void glGetTexParameterfv( GLenum target, GLenum pname, GLfloat *params);
  1178. extern void glGetTexParameteriv( GLenum target, GLenum pname, GLint *params );
  1179.  
  1180. extern void glGetTexLevelParameterfv( GLenum target, GLint level,
  1181.                       GLenum pname, GLfloat *params );
  1182. extern void glGetTexLevelParameteriv( GLenum target, GLint level,
  1183.                       GLenum pname, GLint *params );
  1184.  
  1185.  
  1186. extern void glTexImage1D( GLenum target, GLint level, GLint components,
  1187.               GLsizei width, GLint border,
  1188.               GLenum format, GLenum type, const GLvoid *pixels );
  1189.  
  1190. extern void glTexImage2D( GLenum target, GLint level, GLint components,
  1191.               GLsizei width, GLsizei height, GLint border,
  1192.               GLenum format, GLenum type, const GLvoid *pixels );
  1193.  
  1194. extern void glGetTexImage( GLenum target, GLint level, GLenum format,
  1195.                GLenum type, GLvoid *pixels );
  1196.  
  1197.  
  1198.  
  1199. /*
  1200.  * Evaluators
  1201.  */
  1202.  
  1203. extern void glMap1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride,
  1204.              GLint order, const GLdouble *points );
  1205. extern void glMap1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride,
  1206.              GLint order, const GLfloat *points );
  1207.  
  1208. extern void glMap2d( GLenum target,
  1209.              GLdouble u1, GLdouble u2, GLint ustride, GLint uorder,
  1210.              GLdouble v1, GLdouble v2, GLint vstride, GLint vorder,
  1211.              const GLdouble *points );
  1212. extern void glMap2f( GLenum target,
  1213.              GLfloat u1, GLfloat u2, GLint ustride, GLint uorder,
  1214.              GLfloat v1, GLfloat v2, GLint vstride, GLint vorder,
  1215.              const GLfloat *points );
  1216.  
  1217. extern void glGetMapdv( GLenum target, GLenum query, GLdouble *v );
  1218. extern void glGetMapfv( GLenum target, GLenum query, GLfloat *v );
  1219. extern void glGetMapiv( GLenum target, GLenum query, GLint *v );
  1220.  
  1221. extern void glEvalCoord1d( GLdouble u );
  1222. extern void glEvalCoord1f( GLfloat u );
  1223.  
  1224. extern void glEvalCoord1dv( const GLdouble *u );
  1225. extern void glEvalCoord1fv( const GLfloat *u );
  1226.  
  1227. extern void glEvalCoord2d( GLdouble u, GLdouble v );
  1228. extern void glEvalCoord2f( GLfloat u, GLfloat v );
  1229.  
  1230. extern void glEvalCoord2dv( const GLdouble *u );
  1231. extern void glEvalCoord2fv( const GLfloat *u );
  1232.  
  1233. extern void glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 );
  1234. extern void glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 );
  1235.  
  1236. extern void glMapGrid2d( GLint un, GLdouble u1, GLdouble u2,
  1237.              GLint vn, GLdouble v1, GLdouble v2 );
  1238. extern void glMapGrid2f( GLint un, GLfloat u1, GLfloat u2,
  1239.              GLint vn, GLfloat v1, GLfloat v2 );
  1240.  
  1241. extern void glEvalPoint1( GLint i );
  1242.  
  1243. extern void glEvalPoint2( GLint i, GLint j );
  1244.  
  1245. extern void glEvalMesh1( GLenum mode, GLint i1, GLint i2 );
  1246.  
  1247. extern void glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
  1248.  
  1249.  
  1250.  
  1251. /*
  1252.  * Fog
  1253.  */
  1254.  
  1255. extern void glFogf( GLenum pname, GLfloat param );
  1256.  
  1257. extern void glFogi( GLenum pname, GLint param );
  1258.  
  1259. extern void glFogfv( GLenum pname, const GLfloat *params );
  1260.  
  1261. extern void glFogiv( GLenum pname, const GLint *params );
  1262.  
  1263.  
  1264.  
  1265. /*
  1266.  * Selection and Feedback
  1267.  */
  1268.  
  1269. extern void glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer );
  1270.  
  1271. extern void glPassThrough( GLfloat token );
  1272.  
  1273. extern void glSelectBuffer( GLsizei size, GLuint *buffer );
  1274.  
  1275. extern void glInitNames( void );
  1276.  
  1277. extern void glLoadName( GLuint name );
  1278.  
  1279. extern void glPushName( GLuint name );
  1280.  
  1281. extern void glPopName( void );
  1282.  
  1283.  
  1284.  
  1285. /*
  1286.  * Extensions
  1287.  */
  1288.  
  1289. extern void glBlendEquationEXT( GLenum mode );
  1290.  
  1291. extern void glBlendColorEXT( GLclampf red, GLclampf green,
  1292.                  GLclampf blue, GLclampf alpha );
  1293.  
  1294.  
  1295. extern void glPolygonOffsetEXT( GLfloat factor, GLfloat bias );
  1296.  
  1297.  
  1298. extern void glVertexPointerEXT( GLint size, GLenum type, GLsizei stride,
  1299.                                    GLsizei count, const void *ptr );
  1300.  
  1301. extern void glNormalPointerEXT( GLenum type, GLsizei stride,
  1302.                                    GLsizei count, const void *ptr );
  1303.  
  1304. extern void glColorPointerEXT( GLint size, GLenum type, GLsizei stride,
  1305.                                GLsizei count, const void *ptr );
  1306.  
  1307. extern void glIndexPointerEXT( GLenum type, GLsizei stride, GLsizei count,
  1308.                                const void *ptr );
  1309.  
  1310. extern void glTexCoordPointerEXT( GLint size, GLenum type, GLsizei stride,
  1311.                                   GLsizei count, const void *ptr );
  1312.  
  1313. extern void glEdgeFlagPointerEXT( GLsizei stride, GLsizei count,
  1314.                                   const GLboolean *ptr );
  1315.  
  1316. extern void glGetPointervEXT( GLenum pname, void **params );
  1317.  
  1318. extern void glArrayElementEXT( GLint i );
  1319.  
  1320. extern void glDrawArraysEXT( GLenum mode, GLint first, GLsizei count );
  1321.  
  1322.  
  1323.  
  1324.  
  1325. /*
  1326.  * Compile-time tests for extensions:
  1327.  */
  1328. #define GL_EXT_blend_color    1
  1329. #define GL_EXT_blend_logic_op    1
  1330. #define GL_EXT_blend_minmax    1
  1331. #define GL_EXT_blend_subtract    1
  1332. #define GL_EXT_polygon_offset    1
  1333. #define GL_EXT_vertex_array    1
  1334.  
  1335.  
  1336.  
  1337. #ifdef __cplusplus
  1338. }
  1339. #endif
  1340.  
  1341. #endif
  1342.