1. --# - # - # - # ----------------- 
  2.  -- Change log: 
  3.  -- 
  4.  -- GdM : 2011 : using System.Address_To_Access_Conversions instead of Ada.Unchecked_Conversion 
  5.  -- GdM : 2008 : GL 1.5 items moved to GL.Extended ('cause of Windows : - () 
  6.  -- RK  : 2007 : added CLAMP_TO_EDGE and CLAMP_TO_BORDER for texturing. 
  7.  -- RK  : 2007 : added positive_uInt 
  8.  -- RK  : 2007 : renamed 'intPtr' to 'intPointer' and added correct openGL intPtr type (which is a 'ptrdiff_t') 
  9.  -- RK  : 2007 : added support for vertex buffer objects 
  10.  -- GdM : 2007 : added BGR, BGRA to PixelFormatEnm and TexFormatEnm (OpenGL 1.2) 
  11.  -- RK  : 2007 : conversions to GL.Pointer 
  12.  -- GdM : 2006 : added MULTISAMPLE_ARB, GetString returning a String 
  13.  -- GdM : End 2005 : improved 2002's point 3) 
  14.  -- GdM : 27 - Jan - 2004 : Added Material_Float_vector and Material ( .. .) for it 
  15.  -- GdM :  4 - Jan - 2003 : 
  16.  --   for overloading names, preference is given to GL.Double 
  17.  --   (Gl.Float keeps 'f') and GL.Int (GL.Short keeps 's'), in order to avoid 
  18.  --   confusing compilers i.r.o. arithmetics with universal types. 
  19.  -- GdM : 11 - Apr - 2002 : 
  20.  --   1) "gl" and "GL_" useless prefixes removed, 
  21.  --       except when conflicting with Ada keywords 
  22.  --   2) improving the independance from the "pointer" model 
  23.  --   3) possibility of avoiding useless "4f"- style 
  24.  --       suffixes through overloading 
  25.  --# - # - # - # ----------------- 
  26.  
  27.  -- Changed by MB for Windows 95, 980529 
  28.  -- C replaced by Stdcall, 4th parameter starts with _ if present, 
  29.  --                        but it is not needed 
  30.  -- 
  31.  -- OpenGL 1.1 Ada binding, package GL 
  32.  -- 
  33.  -- W. M. Richards, NiEstu, Phoenix AZ, December 1997 
  34.  -- 
  35.  -- Converted from Brian Paul's Mesa package GL.h header file, version 2, 5. 
  36.  -- As noted below in Brian's original comments, this code is distributed 
  37.  -- under the terms of the GNU Library General Public License. 
  38.  -- 
  39.  -- Version 0.1, 21 December 1997 
  40.  -- 
  41.  -- 
  42.  -- Here are the original GL.h comments: 
  43.  -- 
  44.  -- Mesa 3 - D graphics library 
  45.  -- Version :  2.5 
  46.  -- Copyright (C) 1995 - 1997  Brian Paul 
  47.  -- 
  48.  -- This library is free software; you can redistribute it and/or 
  49.  -- modify it under the terms of the GNU Library General Public 
  50.  -- License as published by the Free Software Foundation; either 
  51.  -- version 2 of the License, or (at your option) any later version. 
  52.  -- 
  53.  -- This library is distributed in the hope that it will be useful, 
  54.  -- but WITHOUT ANY WARRANTY; without even the implied warranty of 
  55.  -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
  56.  -- Library General Public License for more details. 
  57.  -- 
  58.  -- You should have received a copy of the GNU Library General Public 
  59.  -- License along with this library; if not, write to the Free 
  60.  -- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
  61.  
  62. with Interfaces.C; 
  63. with Ada.Unchecked_Conversion; 
  64. with System.Address_To_Access_Conversions; 
  65.  
  66. package GL is 
  67.  
  68.    package C renames Interfaces.C; 
  69.  
  70.    ------------------------------------------------------------------------------ 
  71.  
  72.    MESA_MAJOR_VERSION           : constant := 2; 
  73.    MESA_MINOR_VERSION           : constant := 5; 
  74.    VERSION_1_1                  : constant := 1; 
  75.    EXT_BLEND_COLOR              : constant := 1; 
  76.    EXT_BLEND_LOGIC_OP           : constant := 1; 
  77.    EXT_BLEND_MINMAX             : constant := 1; 
  78.    EXT_BLEND_SUBTRACT           : constant := 1; 
  79.    EXT_POLYGON_OFFSET           : constant := 1; 
  80.    EXT_VERTEX_ARRAY             : constant := 1; 
  81.    EXT_TEXTURE_OBJECT           : constant := 1; 
  82.    EXT_TEXTURE3D                : constant := 1; 
  83.    EXT_PALETTED_TEXTURE         : constant := 1; 
  84.    EXT_SHARED_TEXTURE_PALETTE   : constant := 1; 
  85.    EXT_POINT_PARAMETERS         : constant := 1; 
  86.    MESA_WINDOW_POS              : constant := 1; 
  87.    MESA_RESIZE_BUFFERS          : constant := 1; 
  88.  
  89.    CURRENT_BIT                  : constant := 16#00000001#; 
  90.    POINT_BIT                    : constant := 16#00000002#; 
  91.    LINE_BIT                     : constant := 16#00000004#; 
  92.    POLYGON_BIT                  : constant := 16#00000008#; 
  93.    POLYGON_STIPPLE_BIT          : constant := 16#00000010#; 
  94.    PIXEL_MODE_BIT               : constant := 16#00000020#; 
  95.    LIGHTING_BIT                 : constant := 16#00000040#; 
  96.    FOG_BIT                      : constant := 16#00000080#; 
  97.    DEPTH_BUFFER_BIT             : constant := 16#00000100#; 
  98.    ACCUM_BUFFER_BIT             : constant := 16#00000200#; 
  99.    STENCIL_BUFFER_BIT           : constant := 16#00000400#; 
  100.    VIEWPORT_BIT                 : constant := 16#00000800#; 
  101.    TRANSFORM_BIT                : constant := 16#00001000#; 
  102.    ENABLE_BIT                   : constant := 16#00002000#; 
  103.    COLOR_BUFFER_BIT             : constant := 16#00004000#; 
  104.    HINT_BIT                     : constant := 16#00008000#; 
  105.    EVAL_BIT                     : constant := 16#00010000#; 
  106.    LIST_BIT                     : constant := 16#00020000#; 
  107.    TEXTURE_BIT                  : constant := 16#00040000#; 
  108.    SCISSOR_BIT                  : constant := 16#00080000#; 
  109.    ALL_ATTRIB_BITS              : constant := 16#000FFFFF#; 
  110.    CLIENT_PIXEL_STORE_BIT       : constant := 16#00000001#; 
  111.    CLIENT_VERTEX_ARRAY_BIT      : constant := 16#00000002#; 
  112.    CLIENT_ALL_ATTRIB_BITS       : constant := 16#0000FFFF#; 
  113.  
  114.    ------------------------------------------------------------------------------ 
  115.  
  116.    -- Base types 
  117.    type Bitfield      is new C.unsigned;        -- 4 - byte unsigned 
  118.    type GL_Boolean    is new C.unsigned_char;   -- 1 - byte unsigned in [0, 1] 
  119.    type Byte          is new C.char;            -- 1 - byte signed 
  120.    type Short         is new C.short;           -- 2 - byte signed 
  121.    type Int           is new C.int;             -- 4 - byte signed 
  122.    type Ubyte         is new C.unsigned_char;   -- 1 - byte unsigned 
  123.    type Ushort        is new C.unsigned_short;  -- 2 - byte unsigned 
  124.    type Uint          is new C.unsigned;        -- 4 - byte unsigned 
  125.    type Sizei         is new C.int;             -- 4 - byte signed 
  126.    type C_Float       is new C.C_float;         -- single precision float 
  127.    type Clampf        is new C.C_float;         -- single precision float in [0, 1] 
  128.    type Double        is new C.double;          -- double precision float 
  129.    type Clampd        is new C.double;          -- double precision float in [0, 1] 
  130.  
  131.    type positive_uInt is new GL.Uint range 1 .. GL.Uint'Last; 
  132.  
  133.    package A2A_double is new System.Address_To_Access_Conversions (Double); 
  134.  
  135.    -- Pointer types 
  136.    type GL_BooleanPtr is access all GL_Boolean; 
  137.    type bytePtr    is access all Byte; 
  138.    type shortPtr   is access all Short; 
  139.    type intPointer is access all Int; 
  140.    type ubytePtr   is access all Ubyte; 
  141.    type ushortPtr  is access all Ushort; 
  142.    type uintPtr    is access all Uint; 
  143.    type floatPtr   is access all GL.C_Float; 
  144.    type clampfPtr  is access all Clampf; 
  145.    subtype doublePtr is A2A_double.Object_Pointer; 
  146.  
  147.    subtype sizeiPtr is Interfaces.C.ptrdiff_t;   -- used for pointer arithmetic 
  148.    subtype intPtr   is Interfaces.C.ptrdiff_t; 
  149.  
  150.    type pointer   is access all Ubyte;  -- our substitute for "void *" 
  151.  
  152.    -- Vectors 
  153.    type Light_Float_vector    is array (0 .. 3) of aliased GL.C_Float; 
  154.    type Material_Float_vector is array (0 .. 3) of aliased GL.C_Float; 
  155.    type Double_Vector_3D      is array (0 .. 2) of aliased GL.Double; 
  156.  
  157.    type RGB_Color  is record Red, Green, Blue        : GL.Double; end record; 
  158.    type RGBA_Color is record red, green, blue, alpha : GL.Double; end record; 
  159.  
  160.    -- conversions to GL.Pointer 
  161.  
  162.    type color_access is access all GL.RGB_Color; 
  163.    function to_Pointer is new Ada.Unchecked_Conversion (color_access, GL.pointer); 
  164.  
  165.    subtype double_access is doublePtr; 
  166.    function to_Pointer is new Ada.Unchecked_Conversion (double_access, GL.pointer); 
  167.  
  168.    type natural_access is access all Natural; 
  169.    function to_Pointer is new Ada.Unchecked_Conversion (natural_access, GL.pointer); 
  170.  
  171.    function to_Pointer is new Ada.Unchecked_Conversion (uintPtr, GL.pointer); 
  172.    function to_Pointer is new Ada.Unchecked_Conversion (ushortPtr,  GL.pointer); 
  173.  
  174.    ------------------------------------------------------------------------------ 
  175.  
  176.    -- GL.enum is used only for sizing of the real enumeration types 
  177.    type enum is new C.unsigned; 
  178.  
  179.    -- The boolean constants 
  180.    GL_False                        : constant GL_Boolean := GL_Boolean'Val (0); 
  181.    GL_True                         : constant GL_Boolean := GL_Boolean'Val (1); 
  182.  
  183.    -- Get pointer values 
  184.    type GetPointerEnm is 
  185.      ( 
  186.       FEEDBACK_BUFFER_POINTER, 
  187.       VERTEX_ARRAY_POINTER, 
  188.       NORMAL_ARRAY_POINTER, 
  189.       COLOR_ARRAY_POINTER, 
  190.       INDEX_ARRAY_POINTER, 
  191.       TEXTURE_COORD_ARRAY_POINTER, 
  192.       EDGE_FLAG_ARRAY_POINTER, 
  193.       SELECTION_BUFFER_POINTER 
  194.      ); 
  195.    for GetPointerEnm use 
  196.      ( 
  197.       FEEDBACK_BUFFER_POINTER                 => 16#0DF0#, 
  198.       VERTEX_ARRAY_POINTER                    => 16#808E#, 
  199.       NORMAL_ARRAY_POINTER                    => 16#808F#, 
  200.       COLOR_ARRAY_POINTER                     => 16#8090#, 
  201.       INDEX_ARRAY_POINTER                     => 16#8091#, 
  202.       TEXTURE_COORD_ARRAY_POINTER             => 16#8092#, 
  203.       EDGE_FLAG_ARRAY_POINTER                 => 16#8093#, 
  204.       SELECTION_BUFFER_POINTER                => 16#FFFF#   -- fixme : Mesa 2.5 does not support!!  What's the real value? 
  205.      ); 
  206.    for GetPointerEnm'Size use GL.enum'Size; 
  207.  
  208.    procedure GetPointerv (pname  : GetPointerEnm; 
  209.                           params : GL.pointer); 
  210.  
  211.    -- Alpha, stencil, and depth tests 
  212.    type FuncEnm is 
  213.      ( 
  214.       NEVER, 
  215.       LESS, 
  216.       EQUAL, 
  217.       LEQUAL, 
  218.       GREATER, 
  219.       NOTEQUAL, 
  220.       GEQUAL, 
  221.       ALWAYS 
  222.      ); 
  223.    for FuncEnm use 
  224.      ( 
  225.       NEVER                                   => 16#0200#, 
  226.       LESS                                    => 16#0201#, 
  227.       EQUAL                                   => 16#0202#, 
  228.       LEQUAL                                  => 16#0203#, 
  229.       GREATER                                 => 16#0204#, 
  230.       NOTEQUAL                                => 16#0205#, 
  231.       GEQUAL                                  => 16#0206#, 
  232.       ALWAYS                                  => 16#0207# 
  233.      ); 
  234.    for FuncEnm'Size use GL.enum'Size; 
  235.  
  236.    procedure Alpha_Func (func : FuncEnm; 
  237.                         ref  : GL.Clampf); 
  238.  
  239.    procedure DepthFunc (func : FuncEnm); 
  240.  
  241.    procedure StencilFunc (func : FuncEnm; 
  242.                           ref  : GL.Int; 
  243.                           mask : GL.Uint); 
  244.  
  245.    -- Stencil operations 
  246.    type StencilOpEnm is 
  247.      ( 
  248.       ZERO, 
  249.       INVERT, 
  250.       KEEP, 
  251.       REPLACE, 
  252.       INCR, 
  253.       DECR 
  254.      ); 
  255.    for StencilOpEnm use 
  256.      ( 
  257.       ZERO                                    => 16#0000#, 
  258.       INVERT                                  => 16#150A#, 
  259.       KEEP                                    => 16#1E00#, 
  260.       REPLACE                                 => 16#1E01#, 
  261.       INCR                                    => 16#1E02#, 
  262.       DECR                                    => 16#1E03# 
  263.      ); 
  264.    for StencilOpEnm'Size use GL.enum'Size; 
  265.  
  266.    procedure StencilOp (fail  : StencilOpEnm; 
  267.                         zfail : StencilOpEnm; 
  268.                         zpass : StencilOpEnm); 
  269.  
  270.    -- Blending functions 
  271.    type BlendSrcEnm is 
  272.      ( 
  273.       ZERO, 
  274.       ONE, 
  275.       SRC_ALPHA, 
  276.       ONE_MINUS_SRC_ALPHA, 
  277.       DST_ALPHA, 
  278.       ONE_MINUS_DST_ALPHA, 
  279.       DST_COLOR, 
  280.       ONE_MINUS_DST_COLOR, 
  281.       SRC_ALPHA_SATURATE, 
  282.       CONSTANT_COLOR, 
  283.       ONE_MINUS_CONSTANT_COLOR, 
  284.       CONSTANT_ALPHA, 
  285.       ONE_MINUS_CONSTANT_ALPHA 
  286.      ); 
  287.    for BlendSrcEnm use 
  288.      ( 
  289.       ZERO                                    => 16#0000#, 
  290.       ONE                                     => 16#0001#, 
  291.       SRC_ALPHA                               => 16#0302#, 
  292.       ONE_MINUS_SRC_ALPHA                     => 16#0303#, 
  293.       DST_ALPHA                               => 16#0304#, 
  294.       ONE_MINUS_DST_ALPHA                     => 16#0305#, 
  295.       DST_COLOR                               => 16#0306#, 
  296.       ONE_MINUS_DST_COLOR                     => 16#0307#, 
  297.       SRC_ALPHA_SATURATE                      => 16#0308#, 
  298.       CONSTANT_COLOR                          => 16#8001#,  -- are these four Mesa - specific? 
  299.       ONE_MINUS_CONSTANT_COLOR                => 16#8002#, 
  300.       CONSTANT_ALPHA                          => 16#8003#, 
  301.       ONE_MINUS_CONSTANT_ALPHA                => 16#8004# 
  302.      ); 
  303.    for BlendSrcEnm'Size use GL.enum'Size; 
  304.  
  305.    type BlendDstEnm is 
  306.      ( 
  307.       ZERO, 
  308.       ONE, 
  309.       SRC_COLOR, 
  310.       ONE_MINUS_SRC_COLOR, 
  311.       SRC_ALPHA, 
  312.       ONE_MINUS_SRC_ALPHA, 
  313.       DST_ALPHA, 
  314.       ONE_MINUS_DST_ALPHA 
  315.      ); 
  316.    for BlendDstEnm use 
  317.      ( 
  318.       ZERO                                    => 16#0000#, 
  319.       ONE                                     => 16#0001#, 
  320.       SRC_COLOR                               => 16#0300#, 
  321.       ONE_MINUS_SRC_COLOR                     => 16#0301#, 
  322.       SRC_ALPHA                               => 16#0302#, 
  323.       ONE_MINUS_SRC_ALPHA                     => 16#0303#, 
  324.       DST_ALPHA                               => 16#0304#, 
  325.       ONE_MINUS_DST_ALPHA                     => 16#0305# 
  326.      ); 
  327.    for BlendDstEnm'Size use GL.enum'Size; 
  328.  
  329.    type BlendEquationEnm is 
  330.      ( 
  331.       LOGIC_OP, 
  332.       FUNC_ADD_EXT, 
  333.       MIN_EXT, 
  334.       MAX_EXT, 
  335.       FUNC_SUBTRACT_EXT, 
  336.       FUNC_REVERSE_SUBTRACT_EXT 
  337.      ); 
  338.    for BlendEquationEnm use 
  339.      ( 
  340.       LOGIC_OP                                => 16#0BF1#, 
  341.       FUNC_ADD_EXT                            => 16#8006#, 
  342.       MIN_EXT                                 => 16#8007#, 
  343.       MAX_EXT                                 => 16#8008#, 
  344.       FUNC_SUBTRACT_EXT                       => 16#800A#, 
  345.       FUNC_REVERSE_SUBTRACT_EXT               => 16#800B# 
  346.      ); 
  347.    for BlendEquationEnm'Size use GL.enum'Size; 
  348.  
  349.    procedure BlendFunc (sfactor : BlendSrcEnm; 
  350.                         dfactor : BlendDstEnm); 
  351.  
  352.    procedure BlendEquationEXT (mode : BlendEquationEnm); 
  353.  
  354.    procedure BlendColorEXT (red   : GL.Clampf; 
  355.                             green : GL.Clampf; 
  356.                             blue  : GL.Clampf; 
  357.                             alpha : GL.Clampf); 
  358.  
  359.    -- Locic operation function 
  360.    type LogicOpEnm is 
  361.      ( 
  362.       CLEAR, 
  363.       GL_AND, 
  364.       AND_REVERSE, 
  365.       COPY, 
  366.       AND_INVERTED, 
  367.       NOOP, 
  368.       GL_XOR, 
  369.       GL_OR, 
  370.       NOR, 
  371.       EQUIV, 
  372.       INVERT, 
  373.       OR_REVERSE, 
  374.       COPY_INVERTED, 
  375.       OR_INVERTED, 
  376.       NAND, 
  377.       SET 
  378.      ); 
  379.    for LogicOpEnm use 
  380.      ( 
  381.       CLEAR                                   => 16#1500#, 
  382.       GL_AND                                  => 16#1501#, 
  383.       AND_REVERSE                             => 16#1502#, 
  384.       COPY                                    => 16#1503#, 
  385.       AND_INVERTED                            => 16#1504#, 
  386.       NOOP                                    => 16#1505#, 
  387.       GL_XOR                                  => 16#1506#, 
  388.       GL_OR                                   => 16#1507#, 
  389.       NOR                                     => 16#1508#, 
  390.       EQUIV                                   => 16#1509#, 
  391.       INVERT                                  => 16#150A#, 
  392.       OR_REVERSE                              => 16#150B#, 
  393.       COPY_INVERTED                           => 16#150C#, 
  394.       OR_INVERTED                             => 16#150D#, 
  395.       NAND                                    => 16#150E#, 
  396.       SET                                     => 16#150F# 
  397.      ); 
  398.    for LogicOpEnm'Size use GL.enum'Size; 
  399.  
  400.    procedure LogicOp (opcode : LogicOpEnm); 
  401.  
  402.    -- Face culling 
  403.    type FaceEnm is 
  404.      ( 
  405.       FRONT, 
  406.       BACK, 
  407.       FRONT_AND_BACK 
  408.      ); 
  409.  
  410.    for FaceEnm use 
  411.      ( 
  412.       FRONT                                   => 16#0404#, 
  413.       BACK                                    => 16#0405#, 
  414.       FRONT_AND_BACK                          => 16#0408# 
  415.      ); 
  416.    for FaceEnm'Size use GL.enum'Size; 
  417.  
  418.    procedure CullFace (mode : FaceEnm); 
  419.  
  420.    -- Polygon orientation 
  421.    type OrientationEnm is 
  422.      ( 
  423.       CW, 
  424.       CCW 
  425.      ); 
  426.    for OrientationEnm use 
  427.      ( 
  428.       CW                                      => 16#0900#, 
  429.       CCW                                     => 16#0901# 
  430.      ); 
  431.    for OrientationEnm'Size use GL.enum'Size; 
  432.  
  433.    procedure FrontFace (mode : OrientationEnm); 
  434.  
  435.    -- Polygon mode 
  436.    type PolygonModeEnm is 
  437.      ( 
  438.       POINT, 
  439.       LINE, 
  440.       FILL 
  441.      ); 
  442.    for PolygonModeEnm use 
  443.      ( 
  444.       POINT                                   => 16#1B00#, 
  445.       LINE                                    => 16#1B01#, 
  446.       FILL                                    => 16#1B02# 
  447.      ); 
  448.    for PolygonModeEnm'Size use GL.enum'Size; 
  449.  
  450.    procedure PolygonMode (face : FaceEnm; 
  451.                           mode : PolygonModeEnm); 
  452.  
  453.    -- Clipping plane operations 
  454.    type ClipPlaneEnm is 
  455.      ( 
  456.       CLIP_PLANE0, 
  457.       CLIP_PLANE1, 
  458.       CLIP_PLANE2, 
  459.       CLIP_PLANE3, 
  460.       CLIP_PLANE4, 
  461.       CLIP_PLANE5 
  462.      ); 
  463.    for ClipPlaneEnm use 
  464.      ( 
  465.       CLIP_PLANE0                             => 16#3000#, 
  466.       CLIP_PLANE1                             => 16#3001#, 
  467.       CLIP_PLANE2                             => 16#3002#, 
  468.       CLIP_PLANE3                             => 16#3003#, 
  469.       CLIP_PLANE4                             => 16#3004#, 
  470.       CLIP_PLANE5                             => 16#3005# 
  471.      ); 
  472.    for ClipPlaneEnm'Size use GL.enum'Size; 
  473.  
  474.    procedure ClipPlane (plane    : ClipPlaneEnm; 
  475.                         equation : GL.doublePtr); 
  476.  
  477.    procedure GetClipPlane (plane    : ClipPlaneEnm; 
  478.                            equation : GL.doublePtr); 
  479.  
  480.    -- Buffer selection 
  481.    type DrawBufferEnm is 
  482.      ( 
  483.       NONE, 
  484.       FRONT_LEFT, 
  485.       FRONT_RIGHT, 
  486.       BACK_LEFT, 
  487.       BACK_RIGHT, 
  488.       FRONT, 
  489.       BACK, 
  490.       LEFT, 
  491.       RIGHT, 
  492.       FRONT_AND_BACK, 
  493.       AUX0, 
  494.       AUX1, 
  495.       AUX2, 
  496.       AUX3 
  497.      ); 
  498.    for DrawBufferEnm use 
  499.      ( 
  500.       NONE                                    => 16#0000#, 
  501.       FRONT_LEFT                              => 16#0400#, 
  502.       FRONT_RIGHT                             => 16#0401#, 
  503.       BACK_LEFT                               => 16#0402#, 
  504.       BACK_RIGHT                              => 16#0403#, 
  505.       FRONT                                   => 16#0404#, 
  506.       BACK                                    => 16#0405#, 
  507.       LEFT                                    => 16#0406#, 
  508.       RIGHT                                   => 16#0407#, 
  509.       FRONT_AND_BACK                          => 16#0408#, 
  510.       AUX0                                    => 16#0409#, 
  511.       AUX1                                    => 16#040A#, 
  512.       AUX2                                    => 16#040B#, 
  513.       AUX3                                    => 16#040C# 
  514.      ); 
  515.    for DrawBufferEnm'Size use GL.enum'Size; 
  516.  
  517.    procedure DrawBuffer (mode : DrawBufferEnm); 
  518.  
  519.    type ReadBufferEnm is 
  520.      ( 
  521.       FRONT_LEFT, 
  522.       FRONT_RIGHT, 
  523.       BACK_LEFT, 
  524.       BACK_RIGHT, 
  525.       FRONT, 
  526.       BACK, 
  527.       LEFT, 
  528.       RIGHT, 
  529.       AUX0, 
  530.       AUX1, 
  531.       AUX2, 
  532.       AUX3 
  533.      ); 
  534.    for ReadBufferEnm use 
  535.      ( 
  536.       FRONT_LEFT                              => 16#0400#, 
  537.       FRONT_RIGHT                             => 16#0401#, 
  538.       BACK_LEFT                               => 16#0402#, 
  539.       BACK_RIGHT                              => 16#0403#, 
  540.       FRONT                                   => 16#0404#, 
  541.       BACK                                    => 16#0405#, 
  542.       LEFT                                    => 16#0406#, 
  543.       RIGHT                                   => 16#0407#, 
  544.       AUX0                                    => 16#0409#, 
  545.       AUX1                                    => 16#040A#, 
  546.       AUX2                                    => 16#040B#, 
  547.       AUX3                                    => 16#040C# 
  548.      ); 
  549.    for ReadBufferEnm'Size use GL.enum'Size; 
  550.  
  551.    procedure ReadBuffer (mode : ReadBufferEnm); 
  552.  
  553.    -- Server - side capabilities 
  554.    type ServerCapabilityEnm is 
  555.      ( 
  556.       POINT_SMOOTH, 
  557.       LINE_SMOOTH, 
  558.       LINE_STIPPLE, 
  559.       POLYGON_SMOOTH, 
  560.       POLYGON_STIPPLE, 
  561.       CULL_FACE, 
  562.       LIGHTING, 
  563.       COLOR_MATERIAL, 
  564.       FOG, 
  565.       DEPTH_TEST, 
  566.       STENCIL_TEST, 
  567.       NORMALIZE, 
  568.       ALPHA_TEST, 
  569.       DITHER, 
  570.       BLEND, 
  571.       INDEX_LOGIC_OP, 
  572.       COLOR_LOGIC_OP, 
  573.       SCISSOR_TEST, 
  574.       TEXTURE_GEN_S, 
  575.       TEXTURE_GEN_T, 
  576.       TEXTURE_GEN_R, 
  577.       TEXTURE_GEN_Q, 
  578.       AUTO_NORMAL, 
  579.       MAP1_COLOR_4, 
  580.       MAP1_INDEX, 
  581.       MAP1_NORMAL, 
  582.       MAP1_TEXTURE_COORD_1, 
  583.       MAP1_TEXTURE_COORD_2, 
  584.       MAP1_TEXTURE_COORD_3, 
  585.       MAP1_TEXTURE_COORD_4, 
  586.       MAP1_VERTEX_3, 
  587.       MAP1_VERTEX_4, 
  588.       MAP2_COLOR_4, 
  589.       MAP2_INDEX, 
  590.       MAP2_NORMAL, 
  591.       MAP2_TEXTURE_COORD_1, 
  592.       MAP2_TEXTURE_COORD_2, 
  593.       MAP2_TEXTURE_COORD_3, 
  594.       MAP2_TEXTURE_COORD_4, 
  595.       MAP2_VERTEX_3, 
  596.       MAP2_VERTEX_4, 
  597.       TEXTURE_1D, 
  598.       TEXTURE_2D, 
  599.       POLYGON_OFFSET_POINT, 
  600.       POLYGON_OFFSET_LINE, 
  601.       CLIP_PLANE0, 
  602.       CLIP_PLANE1, 
  603.       CLIP_PLANE2, 
  604.       CLIP_PLANE3, 
  605.       CLIP_PLANE4, 
  606.       CLIP_PLANE5, 
  607.       LIGHT0, 
  608.       LIGHT1, 
  609.       LIGHT2, 
  610.       LIGHT3, 
  611.       LIGHT4, 
  612.       LIGHT5, 
  613.       LIGHT6, 
  614.       LIGHT7, 
  615.       POLYGON_OFFSET_FILL, 
  616.       TEXTURE_3D_EXT, 
  617.       -- ARB_multisample: 
  618.       MULTISAMPLE_ARB, 
  619.       SAMPLE_ALPHA_TO_COVERAGE_ARB, 
  620.       SAMPLE_ALPHA_TO_ONE_ARB, 
  621.       SAMPLE_COVERAGE_ARB, 
  622.       SAMPLE_BUFFERS_ARB, 
  623.       SAMPLES_ARB, 
  624.       SAMPLE_COVERAGE_VALUE_ARB, 
  625.       SAMPLE_COVERAGE_INVERT_ARB, 
  626.       MULTISAMPLE_BIT_ARB 
  627.      ); 
  628.    for ServerCapabilityEnm use 
  629.      ( 
  630.       POINT_SMOOTH                            => 16#0B10#, 
  631.       LINE_SMOOTH                             => 16#0B20#, 
  632.       LINE_STIPPLE                            => 16#0B24#, 
  633.       POLYGON_SMOOTH                          => 16#0B41#, 
  634.       POLYGON_STIPPLE                         => 16#0B42#, 
  635.       CULL_FACE                               => 16#0B44#, 
  636.       LIGHTING                                => 16#0B50#, 
  637.       COLOR_MATERIAL                          => 16#0B57#, 
  638.       FOG                                     => 16#0B60#, 
  639.       DEPTH_TEST                              => 16#0B71#, 
  640.       STENCIL_TEST                            => 16#0B90#, 
  641.       NORMALIZE                               => 16#0BA1#, 
  642.       ALPHA_TEST                              => 16#0BC0#, 
  643.       DITHER                                  => 16#0BD0#, 
  644.       BLEND                                   => 16#0BE2#, 
  645.       INDEX_LOGIC_OP                          => 16#0BF1#, 
  646.       COLOR_LOGIC_OP                          => 16#0BF2#, 
  647.       SCISSOR_TEST                            => 16#0C11#, 
  648.       TEXTURE_GEN_S                           => 16#0C60#, 
  649.       TEXTURE_GEN_T                           => 16#0C61#, 
  650.       TEXTURE_GEN_R                           => 16#0C62#, 
  651.       TEXTURE_GEN_Q                           => 16#0C63#, 
  652.       AUTO_NORMAL                             => 16#0D80#, 
  653.       MAP1_COLOR_4                            => 16#0D90#, 
  654.       MAP1_INDEX                              => 16#0D91#, 
  655.       MAP1_NORMAL                             => 16#0D92#, 
  656.       MAP1_TEXTURE_COORD_1                    => 16#0D93#, 
  657.       MAP1_TEXTURE_COORD_2                    => 16#0D94#, 
  658.       MAP1_TEXTURE_COORD_3                    => 16#0D95#, 
  659.       MAP1_TEXTURE_COORD_4                    => 16#0D96#, 
  660.       MAP1_VERTEX_3                           => 16#0D97#, 
  661.       MAP1_VERTEX_4                           => 16#0D98#, 
  662.       MAP2_COLOR_4                            => 16#0DB0#, 
  663.       MAP2_INDEX                              => 16#0DB1#, 
  664.       MAP2_NORMAL                             => 16#0DB2#, 
  665.       MAP2_TEXTURE_COORD_1                    => 16#0DB3#, 
  666.       MAP2_TEXTURE_COORD_2                    => 16#0DB4#, 
  667.       MAP2_TEXTURE_COORD_3                    => 16#0DB5#, 
  668.       MAP2_TEXTURE_COORD_4                    => 16#0DB6#, 
  669.       MAP2_VERTEX_3                           => 16#0DB7#, 
  670.       MAP2_VERTEX_4                           => 16#0DB8#, 
  671.       TEXTURE_1D                              => 16#0DE0#, 
  672.       TEXTURE_2D                              => 16#0DE1#, 
  673.       POLYGON_OFFSET_POINT                    => 16#2A01#, 
  674.       POLYGON_OFFSET_LINE                     => 16#2A02#, 
  675.       CLIP_PLANE0                             => 16#3000#, 
  676.       CLIP_PLANE1                             => 16#3001#, 
  677.       CLIP_PLANE2                             => 16#3002#, 
  678.       CLIP_PLANE3                             => 16#3003#, 
  679.       CLIP_PLANE4                             => 16#3004#, 
  680.       CLIP_PLANE5                             => 16#3005#, 
  681.       LIGHT0                                  => 16#4000#, 
  682.       LIGHT1                                  => 16#4001#, 
  683.       LIGHT2                                  => 16#4002#, 
  684.       LIGHT3                                  => 16#4003#, 
  685.       LIGHT4                                  => 16#4004#, 
  686.       LIGHT5                                  => 16#4005#, 
  687.       LIGHT6                                  => 16#4006#, 
  688.       LIGHT7                                  => 16#4007#, 
  689.       POLYGON_OFFSET_FILL                     => 16#8037#, 
  690.       TEXTURE_3D_EXT                          => 16#806F#, 
  691.  
  692.       MULTISAMPLE_ARB                         => 16#809D#, 
  693.       SAMPLE_ALPHA_TO_COVERAGE_ARB            => 16#809E#, 
  694.       SAMPLE_ALPHA_TO_ONE_ARB                 => 16#809F#, 
  695.       SAMPLE_COVERAGE_ARB                     => 16#80A0#, 
  696.       SAMPLE_BUFFERS_ARB                      => 16#80A8#, 
  697.       SAMPLES_ARB                             => 16#80A9#, 
  698.       SAMPLE_COVERAGE_VALUE_ARB               => 16#80AA#, 
  699.       SAMPLE_COVERAGE_INVERT_ARB              => 16#80AB#, 
  700.       MULTISAMPLE_BIT_ARB                     => 16#20000000# 
  701.      ); 
  702.    for ServerCapabilityEnm'Size use GL.enum'Size; 
  703.  
  704.    procedure Enable (cap : ServerCapabilityEnm); 
  705.  
  706.    procedure Disable (cap : ServerCapabilityEnm); 
  707.  
  708.    function IsEnabled (cap : ServerCapabilityEnm) 
  709.                       return GL_Boolean; 
  710.  
  711.    -- Client state 
  712.    type ClientCapabilityEnm is 
  713.      ( 
  714.       VERTEX_ARRAY, 
  715.       NORMAL_ARRAY, 
  716.       COLOR_ARRAY, 
  717.       INDEX_ARRAY, 
  718.       TEXTURE_COORD_ARRAY, 
  719.       EDGE_FLAG_ARRAY 
  720.      ); 
  721.    for ClientCapabilityEnm use 
  722.      ( 
  723.       VERTEX_ARRAY                            => 16#8074#, 
  724.       NORMAL_ARRAY                            => 16#8075#, 
  725.       COLOR_ARRAY                             => 16#8076#, 
  726.       INDEX_ARRAY                             => 16#8077#, 
  727.       TEXTURE_COORD_ARRAY                     => 16#8078#, 
  728.       EDGE_FLAG_ARRAY                         => 16#8079# 
  729.      ); 
  730.    for ClientCapabilityEnm'Size use GL.enum'Size; 
  731.  
  732.    procedure Enable_Client_State (cap : ClientCapabilityEnm); 
  733.  
  734.    procedure Disable_Client_State (cap : ClientCapabilityEnm); 
  735.  
  736.    -- Parameter fetches 
  737.    type ParameterNameEnm is 
  738.      ( 
  739.       CURRENT_COLOR, 
  740.       CURRENT_INDEX, 
  741.       CURRENT_NORMAL, 
  742.       CURRENT_TEXTURE_COORDS, 
  743.       CURRENT_RASTER_COLOR, 
  744.       CURRENT_RASTER_INDEX, 
  745.       CURRENT_RASTER_TEXTURE_COORDS, 
  746.       CURRENT_RASTER_POSITION, 
  747.       CURRENT_RASTER_POSITION_VALID, 
  748.       CURRENT_RASTER_DISTANCE, 
  749.       POINT_SMOOTH, 
  750.       POINT_SIZE, 
  751.       POINT_SIZE_RANGE, 
  752.       POINT_SIZE_GRANULARITY, 
  753.       LINE_SMOOTH, 
  754.       LINE_WIDTH, 
  755.       LINE_WIDTH_RANGE, 
  756.       LINE_WIDTH_GRANULARITY, 
  757.       LINE_STIPPLE, 
  758.       LINE_STIPPLE_PATTERN, 
  759.       LINE_STIPPLE_REPEAT, 
  760.       LIST_MODE, 
  761.       MAX_LIST_NESTING, 
  762.       LIST_BASE, 
  763.       LIST_INDEX, 
  764.       POLYGON_MODE, 
  765.       POLYGON_SMOOTH, 
  766.       POLYGON_STIPPLE, 
  767.       EDGE_FLAG, 
  768.       CULL_FACE, 
  769.       CULL_FACE_MODE, 
  770.       FRONT_FACE, 
  771.       LIGHTING, 
  772.       LIGHT_MODEL_LOCAL_VIEWER, 
  773.       LIGHT_MODEL_TWO_SIDE, 
  774.       LIGHT_MODEL_AMBIENT, 
  775.       SHADE_MODEL, 
  776.       COLOR_MATERIAL_FACE, 
  777.       COLOR_MATERIAL_PARAMETER, 
  778.       COLOR_MATERIAL, 
  779.       FOG, 
  780.       FOG_INDEX, 
  781.       FOG_DENSITY, 
  782.       FOG_START, 
  783.       FOG_END, 
  784.       FOG_MODE, 
  785.       FOG_COLOR, 
  786.       DEPTH_RANGE, 
  787.       DEPTH_TEST, 
  788.       DEPTH_WRITEMASK, 
  789.       DEPTH_CLEAR_VALUE, 
  790.       DEPTH_FUNC, 
  791.       ACCUM_CLEAR_VALUE, 
  792.       STENCIL_TEST, 
  793.       STENCIL_CLEAR_VALUE, 
  794.       STENCIL_FUNC, 
  795.       STENCIL_VALUE_MASK, 
  796.       STENCIL_FAIL, 
  797.       STENCIL_PASS_DEPTH_FAIL, 
  798.       STENCIL_PASS_DEPTH_PASS, 
  799.       STENCIL_REF, 
  800.       STENCIL_WRITEMASK, 
  801.       MATRIX_MODE, 
  802.       NORMALIZE, 
  803.       VIEWPORT, 
  804.       MODELVIEW_STACK_DEPTH, 
  805.       PROJECTION_STACK_DEPTH, 
  806.       TEXTURE_STACK_DEPTH, 
  807.       MODELVIEW_MATRIX, 
  808.       PROJECTION_MATRIX, 
  809.       TEXTURE_MATRIX, 
  810.       ATTRIB_STACK_DEPTH, 
  811.       CLIENT_ATTRIB_STACK_DEPTH, 
  812.       ALPHA_TEST, 
  813.       ALPHA_TEST_FUNC, 
  814.       ALPHA_TEST_REF, 
  815.       DITHER, 
  816.       BLEND_DST, 
  817.       BLEND_SRC, 
  818.       BLEND, 
  819.       LOGIC_OP_MODE, 
  820.       INDEX_LOGIC_OP, 
  821.       COLOR_LOGIC_OP, 
  822.       AUX_BUFFERS, 
  823.       DRAW_BUFFER, 
  824.       READ_BUFFER, 
  825.       SCISSOR_BOX, 
  826.       SCISSOR_TEST, 
  827.       INDEX_CLEAR_VALUE, 
  828.       INDEX_WRITEMASK, 
  829.       COLOR_CLEAR_VALUE, 
  830.       COLOR_WRITEMASK, 
  831.       INDEX_MODE, 
  832.       RGBA_MODE, 
  833.       DOUBLEBUFFER, 
  834.       STEREO, 
  835.       RENDER_MODE, 
  836.       PERSPECTIVE_CORRECTION_HINT, 
  837.       POINT_SMOOTH_HINT, 
  838.       LINE_SMOOTH_HINT, 
  839.       POLYGON_SMOOTH_HINT, 
  840.       FOG_HINT, 
  841.       TEXTURE_GEN_S, 
  842.       TEXTURE_GEN_T, 
  843.       TEXTURE_GEN_R, 
  844.       TEXTURE_GEN_Q, 
  845.       PIXEL_MAP_I_TO_I_SIZE, 
  846.       PIXEL_MAP_S_TO_S_SIZE, 
  847.       PIXEL_MAP_I_TO_R_SIZE, 
  848.       PIXEL_MAP_I_TO_G_SIZE, 
  849.       PIXEL_MAP_I_TO_B_SIZE, 
  850.       PIXEL_MAP_I_TO_A_SIZE, 
  851.       PIXEL_MAP_R_TO_R_SIZE, 
  852.       PIXEL_MAP_G_TO_G_SIZE, 
  853.       PIXEL_MAP_B_TO_B_SIZE, 
  854.       PIXEL_MAP_A_TO_A_SIZE, 
  855.       UNPACK_SWAP_BYTES, 
  856.       UNPACK_LSB_FIRST, 
  857.       UNPACK_ROW_LENGTH, 
  858.       UNPACK_SKIP_ROWS, 
  859.       UNPACK_SKIP_PIXELS, 
  860.       UNPACK_ALIGNMENT, 
  861.       PACK_SWAP_BYTES, 
  862.       PACK_LSB_FIRST, 
  863.       PACK_ROW_LENGTH, 
  864.       PACK_SKIP_ROWS, 
  865.       PACK_SKIP_PIXELS, 
  866.       PACK_ALIGNMENT, 
  867.       MAP_COLOR, 
  868.       MAP_STENCIL, 
  869.       INDEX_SHIFT, 
  870.       INDEX_OFFSET, 
  871.       RED_SCALE, 
  872.       RED_BIAS, 
  873.       ZOOM_X, 
  874.       ZOOM_Y, 
  875.       GREEN_SCALE, 
  876.       GREEN_BIAS, 
  877.       BLUE_SCALE, 
  878.       BLUE_BIAS, 
  879.       ALPHA_SCALE, 
  880.       ALPHA_BIAS, 
  881.       DEPTH_SCALE, 
  882.       DEPTH_BIAS, 
  883.       MAX_EVAL_ORDER, 
  884.       MAX_LIGHTS, 
  885.       MAX_CLIP_PLANES, 
  886.       MAX_TEXTURE_SIZE, 
  887.       MAX_PIXEL_MAP_TABLE, 
  888.       MAX_ATTRIB_STACK_DEPTH, 
  889.       MAX_MODELVIEW_STACK_DEPTH, 
  890.       MAX_NAME_STACK_DEPTH, 
  891.       MAX_PROJECTION_STACK_DEPTH, 
  892.       MAX_TEXTURE_STACK_DEPTH, 
  893.       MAX_VIEWPORT_DIMS, 
  894.       MAX_CLIENT_ATTRIB_STACK_DEPTH, 
  895.       SUBPIXEL_BITS, 
  896.       INDEX_BITS, 
  897.       RED_BITS, 
  898.       GREEN_BITS, 
  899.       BLUE_BITS, 
  900.       ALPHA_BITS, 
  901.       DEPTH_BITS, 
  902.       STENCIL_BITS, 
  903.       ACCUM_RED_BITS, 
  904.       ACCUM_GREEN_BITS, 
  905.       ACCUM_BLUE_BITS, 
  906.       ACCUM_ALPHA_BITS, 
  907.       NAME_STACK_DEPTH, 
  908.       AUTO_NORMAL, 
  909.       MAP1_COLOR_4, 
  910.       MAP1_INDEX, 
  911.       MAP1_NORMAL, 
  912.       MAP1_TEXTURE_COORD_1, 
  913.       MAP1_TEXTURE_COORD_2, 
  914.       MAP1_TEXTURE_COORD_3, 
  915.       MAP1_TEXTURE_COORD_4, 
  916.       MAP1_VERTEX_3, 
  917.       MAP1_VERTEX_4, 
  918.       MAP2_COLOR_4, 
  919.       MAP2_INDEX, 
  920.       MAP2_NORMAL, 
  921.       MAP2_TEXTURE_COORD_1, 
  922.       MAP2_TEXTURE_COORD_2, 
  923.       MAP2_TEXTURE_COORD_3, 
  924.       MAP2_TEXTURE_COORD_4, 
  925.       MAP2_VERTEX_3, 
  926.       MAP2_VERTEX_4, 
  927.       MAP1_GRID_DOMAIN, 
  928.       MAP1_GRID_SEGMENTS, 
  929.       MAP2_GRID_DOMAIN, 
  930.       MAP2_GRID_SEGMENTS, 
  931.       TEXTURE_1D, 
  932.       TEXTURE_2D, 
  933.       POLYGON_OFFSET_UNITS, 
  934.       POLYGON_OFFSET_POINT, 
  935.       POLYGON_OFFSET_LINE, 
  936.       POLYGON_OFFSET_FILL, 
  937.       POLYGON_OFFSET_FACTOR, 
  938.       TEXTURE_BINDING_1D, 
  939.       TEXTURE_BINDING_2D, 
  940.       VERTEX_ARRAY, 
  941.       NORMAL_ARRAY, 
  942.       COLOR_ARRAY, 
  943.       INDEX_ARRAY, 
  944.       TEXTURE_COORD_ARRAY, 
  945.       EDGE_FLAG_ARRAY, 
  946.       VERTEX_ARRAY_SIZE, 
  947.       VERTEX_ARRAY_TYPE, 
  948.       VERTEX_ARRAY_STRIDE, 
  949.       NORMAL_ARRAY_TYPE, 
  950.       NORMAL_ARRAY_STRIDE, 
  951.       COLOR_ARRAY_SIZE, 
  952.       COLOR_ARRAY_TYPE, 
  953.       COLOR_ARRAY_STRIDE, 
  954.       INDEX_ARRAY_TYPE, 
  955.       INDEX_ARRAY_STRIDE, 
  956.       TEXTURE_COORD_ARRAY_SIZE, 
  957.       TEXTURE_COORD_ARRAY_TYPE, 
  958.       TEXTURE_COORD_ARRAY_STRIDE, 
  959.       EDGE_FLAG_ARRAY_STRIDE, 
  960.       SAMPLES 
  961.      ); 
  962.    for ParameterNameEnm use 
  963.      ( 
  964.       CURRENT_COLOR                           => 16#0B00#, 
  965.       CURRENT_INDEX                           => 16#0B01#, 
  966.       CURRENT_NORMAL                          => 16#0B02#, 
  967.       CURRENT_TEXTURE_COORDS                  => 16#0B03#, 
  968.       CURRENT_RASTER_COLOR                    => 16#0B04#, 
  969.       CURRENT_RASTER_INDEX                    => 16#0B05#, 
  970.       CURRENT_RASTER_TEXTURE_COORDS           => 16#0B06#, 
  971.       CURRENT_RASTER_POSITION                 => 16#0B07#, 
  972.       CURRENT_RASTER_POSITION_VALID           => 16#0B08#, 
  973.       CURRENT_RASTER_DISTANCE                 => 16#0B09#, 
  974.       POINT_SMOOTH                            => 16#0B10#, 
  975.       POINT_SIZE                              => 16#0B11#, 
  976.       POINT_SIZE_RANGE                        => 16#0B12#, 
  977.       POINT_SIZE_GRANULARITY                  => 16#0B13#, 
  978.       LINE_SMOOTH                             => 16#0B20#, 
  979.       LINE_WIDTH                              => 16#0B21#, 
  980.       LINE_WIDTH_RANGE                        => 16#0B22#, 
  981.       LINE_WIDTH_GRANULARITY                  => 16#0B23#, 
  982.       LINE_STIPPLE                            => 16#0B24#, 
  983.       LINE_STIPPLE_PATTERN                    => 16#0B25#, 
  984.       LINE_STIPPLE_REPEAT                     => 16#0B26#, 
  985.       LIST_MODE                               => 16#0B30#, 
  986.       MAX_LIST_NESTING                        => 16#0B31#, 
  987.       LIST_BASE                               => 16#0B32#, 
  988.       LIST_INDEX                              => 16#0B33#, 
  989.       POLYGON_MODE                            => 16#0B40#, 
  990.       POLYGON_SMOOTH                          => 16#0B41#, 
  991.       POLYGON_STIPPLE                         => 16#0B42#, 
  992.       EDGE_FLAG                               => 16#0B43#, 
  993.       CULL_FACE                               => 16#0B44#, 
  994.       CULL_FACE_MODE                          => 16#0B45#, 
  995.       FRONT_FACE                              => 16#0B46#, 
  996.       LIGHTING                                => 16#0B50#, 
  997.       LIGHT_MODEL_LOCAL_VIEWER                => 16#0B51#, 
  998.       LIGHT_MODEL_TWO_SIDE                    => 16#0B52#, 
  999.       LIGHT_MODEL_AMBIENT                     => 16#0B53#, 
  1000.       SHADE_MODEL                             => 16#0B54#, 
  1001.       COLOR_MATERIAL_FACE                     => 16#0B55#, 
  1002.       COLOR_MATERIAL_PARAMETER                => 16#0B56#, 
  1003.       COLOR_MATERIAL                          => 16#0B57#, 
  1004.       FOG                                     => 16#0B60#, 
  1005.       FOG_INDEX                               => 16#0B61#, 
  1006.       FOG_DENSITY                             => 16#0B62#, 
  1007.       FOG_START                               => 16#0B63#, 
  1008.       FOG_END                                 => 16#0B64#, 
  1009.       FOG_MODE                                => 16#0B65#, 
  1010.       FOG_COLOR                               => 16#0B66#, 
  1011.       DEPTH_RANGE                             => 16#0B70#, 
  1012.       DEPTH_TEST                              => 16#0B71#, 
  1013.       DEPTH_WRITEMASK                         => 16#0B72#, 
  1014.       DEPTH_CLEAR_VALUE                       => 16#0B73#, 
  1015.       DEPTH_FUNC                              => 16#0B74#, 
  1016.       ACCUM_CLEAR_VALUE                       => 16#0B80#, 
  1017.       STENCIL_TEST                            => 16#0B90#, 
  1018.       STENCIL_CLEAR_VALUE                     => 16#0B91#, 
  1019.       STENCIL_FUNC                            => 16#0B92#, 
  1020.       STENCIL_VALUE_MASK                      => 16#0B93#, 
  1021.       STENCIL_FAIL                            => 16#0B94#, 
  1022.       STENCIL_PASS_DEPTH_FAIL                 => 16#0B95#, 
  1023.       STENCIL_PASS_DEPTH_PASS                 => 16#0B96#, 
  1024.       STENCIL_REF                             => 16#0B97#, 
  1025.       STENCIL_WRITEMASK                       => 16#0B98#, 
  1026.       MATRIX_MODE                             => 16#0BA0#, 
  1027.       NORMALIZE                               => 16#0BA1#, 
  1028.       VIEWPORT                                => 16#0BA2#, 
  1029.       MODELVIEW_STACK_DEPTH                   => 16#0BA3#, 
  1030.       PROJECTION_STACK_DEPTH                  => 16#0BA4#, 
  1031.       TEXTURE_STACK_DEPTH                     => 16#0BA5#, 
  1032.       MODELVIEW_MATRIX                        => 16#0BA6#, 
  1033.       PROJECTION_MATRIX                       => 16#0BA7#, 
  1034.       TEXTURE_MATRIX                          => 16#0BA8#, 
  1035.       ATTRIB_STACK_DEPTH                      => 16#0BB0#, 
  1036.       CLIENT_ATTRIB_STACK_DEPTH               => 16#0BB1#, 
  1037.       ALPHA_TEST                              => 16#0BC0#, 
  1038.       ALPHA_TEST_FUNC                         => 16#0BC1#, 
  1039.       ALPHA_TEST_REF                          => 16#0BC2#, 
  1040.       DITHER                                  => 16#0BD0#, 
  1041.       BLEND_DST                               => 16#0BE0#, 
  1042.       BLEND_SRC                               => 16#0BE1#, 
  1043.       BLEND                                   => 16#0BE2#, 
  1044.       LOGIC_OP_MODE                           => 16#0BF0#, 
  1045.       INDEX_LOGIC_OP                          => 16#0BF1#, 
  1046.       COLOR_LOGIC_OP                          => 16#0BF2#, 
  1047.       AUX_BUFFERS                             => 16#0C00#, 
  1048.       DRAW_BUFFER                             => 16#0C01#, 
  1049.       READ_BUFFER                             => 16#0C02#, 
  1050.       SCISSOR_BOX                             => 16#0C10#, 
  1051.       SCISSOR_TEST                            => 16#0C11#, 
  1052.       INDEX_CLEAR_VALUE                       => 16#0C20#, 
  1053.       INDEX_WRITEMASK                         => 16#0C21#, 
  1054.       COLOR_CLEAR_VALUE                       => 16#0C22#, 
  1055.       COLOR_WRITEMASK                         => 16#0C23#, 
  1056.       INDEX_MODE                              => 16#0C30#, 
  1057.       RGBA_MODE                               => 16#0C31#, 
  1058.       DOUBLEBUFFER                            => 16#0C32#, 
  1059.       STEREO                                  => 16#0C33#, 
  1060.       RENDER_MODE                             => 16#0C40#, 
  1061.       PERSPECTIVE_CORRECTION_HINT             => 16#0C50#, 
  1062.       POINT_SMOOTH_HINT                       => 16#0C51#, 
  1063.       LINE_SMOOTH_HINT                        => 16#0C52#, 
  1064.       POLYGON_SMOOTH_HINT                     => 16#0C53#, 
  1065.       FOG_HINT                                => 16#0C54#, 
  1066.       TEXTURE_GEN_S                           => 16#0C60#, 
  1067.       TEXTURE_GEN_T                           => 16#0C61#, 
  1068.       TEXTURE_GEN_R                           => 16#0C62#, 
  1069.       TEXTURE_GEN_Q                           => 16#0C63#, 
  1070.       PIXEL_MAP_I_TO_I_SIZE                   => 16#0CB0#, 
  1071.       PIXEL_MAP_S_TO_S_SIZE                   => 16#0CB1#, 
  1072.       PIXEL_MAP_I_TO_R_SIZE                   => 16#0CB2#, 
  1073.       PIXEL_MAP_I_TO_G_SIZE                   => 16#0CB3#, 
  1074.       PIXEL_MAP_I_TO_B_SIZE                   => 16#0CB4#, 
  1075.       PIXEL_MAP_I_TO_A_SIZE                   => 16#0CB5#, 
  1076.       PIXEL_MAP_R_TO_R_SIZE                   => 16#0CB6#, 
  1077.       PIXEL_MAP_G_TO_G_SIZE                   => 16#0CB7#, 
  1078.       PIXEL_MAP_B_TO_B_SIZE                   => 16#0CB8#, 
  1079.       PIXEL_MAP_A_TO_A_SIZE                   => 16#0CB9#, 
  1080.       UNPACK_SWAP_BYTES                       => 16#0CF0#, 
  1081.       UNPACK_LSB_FIRST                        => 16#0CF1#, 
  1082.       UNPACK_ROW_LENGTH                       => 16#0CF2#, 
  1083.       UNPACK_SKIP_ROWS                        => 16#0CF3#, 
  1084.       UNPACK_SKIP_PIXELS                      => 16#0CF4#, 
  1085.       UNPACK_ALIGNMENT                        => 16#0CF5#, 
  1086.       PACK_SWAP_BYTES                         => 16#0D00#, 
  1087.       PACK_LSB_FIRST                          => 16#0D01#, 
  1088.       PACK_ROW_LENGTH                         => 16#0D02#, 
  1089.       PACK_SKIP_ROWS                          => 16#0D03#, 
  1090.       PACK_SKIP_PIXELS                        => 16#0D04#, 
  1091.       PACK_ALIGNMENT                          => 16#0D05#, 
  1092.       MAP_COLOR                               => 16#0D10#, 
  1093.       MAP_STENCIL                             => 16#0D11#, 
  1094.       INDEX_SHIFT                             => 16#0D12#, 
  1095.       INDEX_OFFSET                            => 16#0D13#, 
  1096.       RED_SCALE                               => 16#0D14#, 
  1097.       RED_BIAS                                => 16#0D15#, 
  1098.       ZOOM_X                                  => 16#0D16#, 
  1099.       ZOOM_Y                                  => 16#0D17#, 
  1100.       GREEN_SCALE                             => 16#0D18#, 
  1101.       GREEN_BIAS                              => 16#0D19#, 
  1102.       BLUE_SCALE                              => 16#0D1A#, 
  1103.       BLUE_BIAS                               => 16#0D1B#, 
  1104.       ALPHA_SCALE                             => 16#0D1C#, 
  1105.       ALPHA_BIAS                              => 16#0D1D#, 
  1106.       DEPTH_SCALE                             => 16#0D1E#, 
  1107.       DEPTH_BIAS                              => 16#0D1F#, 
  1108.       MAX_EVAL_ORDER                          => 16#0D30#, 
  1109.       MAX_LIGHTS                              => 16#0D31#, 
  1110.       MAX_CLIP_PLANES                         => 16#0D32#, 
  1111.       MAX_TEXTURE_SIZE                        => 16#0D33#, 
  1112.       MAX_PIXEL_MAP_TABLE                     => 16#0D34#, 
  1113.       MAX_ATTRIB_STACK_DEPTH                  => 16#0D35#, 
  1114.       MAX_MODELVIEW_STACK_DEPTH               => 16#0D36#, 
  1115.       MAX_NAME_STACK_DEPTH                    => 16#0D37#, 
  1116.       MAX_PROJECTION_STACK_DEPTH              => 16#0D38#, 
  1117.       MAX_TEXTURE_STACK_DEPTH                 => 16#0D39#, 
  1118.       MAX_VIEWPORT_DIMS                       => 16#0D3A#, 
  1119.       MAX_CLIENT_ATTRIB_STACK_DEPTH           => 16#0D3B#, 
  1120.       SUBPIXEL_BITS                           => 16#0D50#, 
  1121.       INDEX_BITS                              => 16#0D51#, 
  1122.       RED_BITS                                => 16#0D52#, 
  1123.       GREEN_BITS                              => 16#0D53#, 
  1124.       BLUE_BITS                               => 16#0D54#, 
  1125.       ALPHA_BITS                              => 16#0D55#, 
  1126.       DEPTH_BITS                              => 16#0D56#, 
  1127.       STENCIL_BITS                            => 16#0D57#, 
  1128.       ACCUM_RED_BITS                          => 16#0D58#, 
  1129.       ACCUM_GREEN_BITS                        => 16#0D59#, 
  1130.       ACCUM_BLUE_BITS                         => 16#0D5A#, 
  1131.       ACCUM_ALPHA_BITS                        => 16#0D5B#, 
  1132.       NAME_STACK_DEPTH                        => 16#0D70#, 
  1133.       AUTO_NORMAL                             => 16#0D80#, 
  1134.       MAP1_COLOR_4                            => 16#0D90#, 
  1135.       MAP1_INDEX                              => 16#0D91#, 
  1136.       MAP1_NORMAL                             => 16#0D92#, 
  1137.       MAP1_TEXTURE_COORD_1                    => 16#0D93#, 
  1138.       MAP1_TEXTURE_COORD_2                    => 16#0D94#, 
  1139.       MAP1_TEXTURE_COORD_3                    => 16#0D95#, 
  1140.       MAP1_TEXTURE_COORD_4                    => 16#0D96#, 
  1141.       MAP1_VERTEX_3                           => 16#0D97#, 
  1142.       MAP1_VERTEX_4                           => 16#0D98#, 
  1143.       MAP2_COLOR_4                            => 16#0DB0#, 
  1144.       MAP2_INDEX                              => 16#0DB1#, 
  1145.       MAP2_NORMAL                             => 16#0DB2#, 
  1146.       MAP2_TEXTURE_COORD_1                    => 16#0DB3#, 
  1147.       MAP2_TEXTURE_COORD_2                    => 16#0DB4#, 
  1148.       MAP2_TEXTURE_COORD_3                    => 16#0DB5#, 
  1149.       MAP2_TEXTURE_COORD_4                    => 16#0DB6#, 
  1150.       MAP2_VERTEX_3                           => 16#0DB7#, 
  1151.       MAP2_VERTEX_4                           => 16#0DB8#, 
  1152.       MAP1_GRID_DOMAIN                        => 16#0DD0#, 
  1153.       MAP1_GRID_SEGMENTS                      => 16#0DD1#, 
  1154.       MAP2_GRID_DOMAIN                        => 16#0DD2#, 
  1155.       MAP2_GRID_SEGMENTS                      => 16#0DD3#, 
  1156.       TEXTURE_1D                              => 16#0DE0#, 
  1157.       TEXTURE_2D                              => 16#0DE1#, 
  1158.       POLYGON_OFFSET_UNITS                    => 16#2A00#, 
  1159.       POLYGON_OFFSET_POINT                    => 16#2A01#, 
  1160.       POLYGON_OFFSET_LINE                     => 16#2A02#, 
  1161.       POLYGON_OFFSET_FILL                     => 16#8037#, 
  1162.       POLYGON_OFFSET_FACTOR                   => 16#8038#, 
  1163.       TEXTURE_BINDING_1D                      => 16#8068#, 
  1164.       TEXTURE_BINDING_2D                      => 16#8069#, 
  1165.       VERTEX_ARRAY                            => 16#8074#, 
  1166.       NORMAL_ARRAY                            => 16#8075#, 
  1167.       COLOR_ARRAY                             => 16#8076#, 
  1168.       INDEX_ARRAY                             => 16#8077#, 
  1169.       TEXTURE_COORD_ARRAY                     => 16#8078#, 
  1170.       EDGE_FLAG_ARRAY                         => 16#8079#, 
  1171.       VERTEX_ARRAY_SIZE                       => 16#807A#, 
  1172.       VERTEX_ARRAY_TYPE                       => 16#807B#, 
  1173.       VERTEX_ARRAY_STRIDE                     => 16#807C#, 
  1174.       NORMAL_ARRAY_TYPE                       => 16#807E#, 
  1175.       NORMAL_ARRAY_STRIDE                     => 16#807F#, 
  1176.       COLOR_ARRAY_SIZE                        => 16#8081#, 
  1177.       COLOR_ARRAY_TYPE                        => 16#8082#, 
  1178.       COLOR_ARRAY_STRIDE                      => 16#8083#, 
  1179.       INDEX_ARRAY_TYPE                        => 16#8085#, 
  1180.       INDEX_ARRAY_STRIDE                      => 16#8086#, 
  1181.       TEXTURE_COORD_ARRAY_SIZE                => 16#8088#, 
  1182.       TEXTURE_COORD_ARRAY_TYPE                => 16#8089#, 
  1183.       TEXTURE_COORD_ARRAY_STRIDE              => 16#808A#, 
  1184.       EDGE_FLAG_ARRAY_STRIDE                  => 16#808C#, 
  1185.       SAMPLES                                 => 16#80A9# 
  1186.      ); 
  1187.    for ParameterNameEnm'Size use GL.enum'Size; 
  1188.  
  1189.    procedure GetBooleanv (pname  : ParameterNameEnm; 
  1190.                           params : GL_BooleanPtr); 
  1191.  
  1192.    procedure Get (pname  : ParameterNameEnm; 
  1193.                   params : GL.doublePtr); 
  1194.  
  1195.    procedure GetFloatv (pname  : ParameterNameEnm; 
  1196.                         params : floatPtr); 
  1197.  
  1198.    procedure GetIntegerv (pname  : ParameterNameEnm; 
  1199.                           params : GL.intPointer); 
  1200.  
  1201.    -- Render mode 
  1202.    type RenderModeEnm is 
  1203.      ( 
  1204.       RENDER, 
  1205.       FEEDBACK, 
  1206.       GL_SELECT 
  1207.      ); 
  1208.    for RenderModeEnm use 
  1209.      ( 
  1210.       RENDER                                  => 16#1C00#, 
  1211.       FEEDBACK                                => 16#1C01#, 
  1212.       GL_SELECT                               => 16#1C02# 
  1213.      ); 
  1214.    for RenderModeEnm'Size use GL.enum'Size; 
  1215.  
  1216.    function RenderMode (mode : RenderModeEnm) 
  1217.                        return GL.Int; 
  1218.  
  1219.    -- Error information 
  1220.    type ErrorEnm is 
  1221.      ( 
  1222.       NO_ERROR, 
  1223.       INVALID_ENUM, 
  1224.       INVALID_VALUE, 
  1225.       INVALID_OPERATION, 
  1226.       STACK_OVERFLOW, 
  1227.       STACK_UNDERFLOW, 
  1228.       OUT_OF_MEMORY 
  1229.      ); 
  1230.    for ErrorEnm use 
  1231.      ( 
  1232.       NO_ERROR                                => 16#0000#, 
  1233.       INVALID_ENUM                            => 16#0500#, 
  1234.       INVALID_VALUE                           => 16#0501#, 
  1235.       INVALID_OPERATION                       => 16#0502#, 
  1236.       STACK_OVERFLOW                          => 16#0503#, 
  1237.       STACK_UNDERFLOW                         => 16#0504#, 
  1238.       OUT_OF_MEMORY                           => 16#0505# 
  1239.      ); 
  1240.    for ErrorEnm'Size use GL.enum'Size; 
  1241.  
  1242.    function Get_Error 
  1243.      return ErrorEnm; 
  1244.  
  1245.    -- Connection description 
  1246.    type StringEnm is 
  1247.      ( 
  1248.       VENDOR, 
  1249.       RENDERER, 
  1250.       VERSION, 
  1251.       EXTENSIONS 
  1252.      ); 
  1253.    for StringEnm use 
  1254.      ( 
  1255.       VENDOR                                  => 16#1F00#, 
  1256.       RENDERER                                => 16#1F01#, 
  1257.       VERSION                                 => 16#1F02#, 
  1258.       EXTENSIONS                              => 16#1F03# 
  1259.      ); 
  1260.    for StringEnm'Size use GL.enum'Size; 
  1261.  
  1262.    function GetString (name : StringEnm) return ubytePtr; 
  1263.    function GetString (name : StringEnm) return String; 
  1264.  
  1265.    -- Behavior hints 
  1266.    type HintEnm is 
  1267.      ( 
  1268.       PERSPECTIVE_CORRECTION_HINT, 
  1269.       POINT_SMOOTH_HINT, 
  1270.       LINE_SMOOTH_HINT, 
  1271.       POLYGON_SMOOTH_HINT, 
  1272.       FOG_HINT 
  1273.      ); 
  1274.    for HintEnm use 
  1275.      ( 
  1276.       PERSPECTIVE_CORRECTION_HINT             => 16#0C50#, 
  1277.       POINT_SMOOTH_HINT                       => 16#0C51#, 
  1278.       LINE_SMOOTH_HINT                        => 16#0C52#, 
  1279.       POLYGON_SMOOTH_HINT                     => 16#0C53#, 
  1280.       FOG_HINT                                => 16#0C54# 
  1281.      ); 
  1282.    for HintEnm'Size use GL.enum'Size; 
  1283.  
  1284.    type HintModeEnm is 
  1285.      ( 
  1286.       DONT_CARE, 
  1287.       FASTEST, 
  1288.       NICEST 
  1289.      ); 
  1290.    for HintModeEnm use 
  1291.      ( 
  1292.       DONT_CARE                               => 16#1100#, 
  1293.       FASTEST                                 => 16#1101#, 
  1294.       NICEST                                  => 16#1102# 
  1295.      ); 
  1296.    for HintModeEnm'Size use GL.enum'Size; 
  1297.  
  1298.    procedure Hint (target : HintEnm; 
  1299.                    mode   : HintModeEnm); 
  1300.  
  1301.    -- Accumulation buffer 
  1302.    type AccumEnm is 
  1303.      ( 
  1304.       ACCUM, 
  1305.       LOAD, 
  1306.       GL_RETURN, 
  1307.       MULT, 
  1308.       ADD 
  1309.      ); 
  1310.    for AccumEnm use 
  1311.      ( 
  1312.       ACCUM                                   => 16#0100#, 
  1313.       LOAD                                    => 16#0101#, 
  1314.       GL_RETURN                               => 16#0102#, 
  1315.       MULT                                    => 16#0103#, 
  1316.       ADD                                     => 16#0104# 
  1317.      ); 
  1318.    for AccumEnm'Size use GL.enum'Size; 
  1319.  
  1320.    procedure Accum (op    : AccumEnm; 
  1321.                     value : GL.C_Float); 
  1322.  
  1323.    -- Matrix mode 
  1324.    type MatrixModeEnm is 
  1325.      ( 
  1326.       MODELVIEW, 
  1327.       PROJECTION, 
  1328.       TEXTURE 
  1329.      ); 
  1330.    for MatrixModeEnm use 
  1331.      ( 
  1332.       MODELVIEW                               => 16#1700#, 
  1333.       PROJECTION                              => 16#1701#, 
  1334.       TEXTURE                                 => 16#1702# 
  1335.      ); 
  1336.    for MatrixModeEnm'Size use GL.enum'Size; 
  1337.  
  1338.    procedure MatrixMode (mode : MatrixModeEnm); 
  1339.  
  1340.    -- Display liststype ListModeEnm is 
  1341.    type ListModeEnm is 
  1342.      ( 
  1343.       COMPILE, 
  1344.       COMPILE_AND_EXECUTE 
  1345.      ); 
  1346.    for ListModeEnm use 
  1347.      ( 
  1348.       COMPILE                                 => 16#1300#, 
  1349.       COMPILE_AND_EXECUTE                     => 16#1301# 
  1350.      ); 
  1351.    for ListModeEnm'Size use GL.enum'Size; 
  1352.  
  1353.    type OffsetTypeEnm is 
  1354.      ( 
  1355.       GL_BYTE, 
  1356.       GL_UNSIGNED_BYTE, 
  1357.       GL_SHORT, 
  1358.       GL_UNSIGNED_SHORT, 
  1359.       GL_INT, 
  1360.       GL_UNSIGNED_INT, 
  1361.       GL_FLOAT, 
  1362.       GL_2_BYTES, 
  1363.       GL_3_BYTES, 
  1364.       GL_4_BYTES 
  1365.      ); 
  1366.    for OffsetTypeEnm use 
  1367.      ( 
  1368.       GL_BYTE                                 => 16#1400#, 
  1369.       GL_UNSIGNED_BYTE                        => 16#1401#, 
  1370.       GL_SHORT                                => 16#1402#, 
  1371.       GL_UNSIGNED_SHORT                       => 16#1403#, 
  1372.       GL_INT                                  => 16#1404#, 
  1373.       GL_UNSIGNED_INT                         => 16#1405#, 
  1374.       GL_FLOAT                                => 16#1406#, 
  1375.       GL_2_BYTES                              => 16#1407#, 
  1376.       GL_3_BYTES                              => 16#1408#, 
  1377.       GL_4_BYTES                              => 16#1409# 
  1378.      ); 
  1379.    for OffsetTypeEnm'Size use GL.enum'Size; 
  1380.  
  1381.    function IsList (list : GL.Uint) return GL_Boolean; 
  1382.  
  1383.    procedure DeleteLists (list  : GL.Uint; 
  1384.                           c_range : GL.Sizei); 
  1385.  
  1386.    function GenLists (c_range : GL.Sizei) return GL.Uint; 
  1387.  
  1388.    procedure NewList (list : GL.Uint; 
  1389.                       mode : ListModeEnm); 
  1390.  
  1391.    procedure EndList; 
  1392.  
  1393.    procedure CallList (list : GL.Uint); 
  1394.  
  1395.    procedure CallLists (n      : GL.Sizei; 
  1396.                         c_type : OffsetTypeEnm; 
  1397.                         lists  : GL.pointer); 
  1398.  
  1399.    procedure ListBase (base : GL.Uint); 
  1400.  
  1401.    -- Object definition 
  1402.    type ObjectTypeEnm is 
  1403.      ( 
  1404.       POINTS, 
  1405.       LINES, 
  1406.       LINE_LOOP, 
  1407.       LINE_STRIP, 
  1408.       TRIANGLES, 
  1409.       TRIANGLE_STRIP, 
  1410.       TRIANGLE_FAN, 
  1411.       QUADS, 
  1412.       QUAD_STRIP, 
  1413.       POLYGON 
  1414.      ); 
  1415.    pragma Ordered (ObjectTypeEnm); 
  1416.  
  1417.    for ObjectTypeEnm use 
  1418.      ( 
  1419.       POINTS                                  => 16#0000#, 
  1420.       LINES                                   => 16#0001#, 
  1421.       LINE_LOOP                               => 16#0002#, 
  1422.       LINE_STRIP                              => 16#0003#, 
  1423.       TRIANGLES                               => 16#0004#, 
  1424.       TRIANGLE_STRIP                          => 16#0005#, 
  1425.       TRIANGLE_FAN                            => 16#0006#, 
  1426.       QUADS                                   => 16#0007#, 
  1427.       QUAD_STRIP                              => 16#0008#, 
  1428.       POLYGON                                 => 16#0009# 
  1429.      ); 
  1430.    for ObjectTypeEnm'Size use GL.enum'Size; 
  1431.  
  1432.    procedure GL_Begin (mode : ObjectTypeEnm); 
  1433.  
  1434.    procedure GL_End; 
  1435.  
  1436.    -- Vertex arrays and related 
  1437.    type VertexTypeEnm is 
  1438.      ( 
  1439.       GL_SHORT, 
  1440.       GL_INT, 
  1441.       GL_FLOAT, 
  1442.       GL_DOUBLE 
  1443.      ); 
  1444.    for VertexTypeEnm use 
  1445.      ( 
  1446.       GL_SHORT                                   => 16#1402#, 
  1447.       GL_INT                                     => 16#1404#, 
  1448.       GL_FLOAT                                   => 16#1406#, 
  1449.       GL_DOUBLE                                  => 16#140A# 
  1450.      ); 
  1451.    for VertexTypeEnm'Size use GL.enum'Size; 
  1452.  
  1453.    type NormalTypeEnm is 
  1454.      ( 
  1455.       GL_BYTE, 
  1456.       GL_SHORT, 
  1457.       GL_INT, 
  1458.       GL_FLOAT, 
  1459.       GL_DOUBLE 
  1460.      ); 
  1461.    for NormalTypeEnm use 
  1462.      ( 
  1463.       GL_BYTE                                    => 16#1400#, 
  1464.       GL_SHORT                                   => 16#1402#, 
  1465.       GL_INT                                     => 16#1404#, 
  1466.       GL_FLOAT                                   => 16#1406#, 
  1467.       GL_DOUBLE                                  => 16#140A# 
  1468.      ); 
  1469.    for NormalTypeEnm'Size use GL.enum'Size; 
  1470.  
  1471.    type ColorTypeEnm is 
  1472.      ( 
  1473.       GL_BYTE, 
  1474.       GL_UNSIGNED_BYTE, 
  1475.       GL_SHORT, 
  1476.       GL_UNSIGNED_SHORT, 
  1477.       GL_INT, 
  1478.       GL_UNSIGNED_INT, 
  1479.       GL_FLOAT, 
  1480.       GL_DOUBLE 
  1481.      ); 
  1482.    for ColorTypeEnm use 
  1483.      ( 
  1484.       GL_BYTE                                    => 16#1400#, 
  1485.       GL_UNSIGNED_BYTE                           => 16#1401#, 
  1486.       GL_SHORT                                   => 16#1402#, 
  1487.       GL_UNSIGNED_SHORT                          => 16#1403#, 
  1488.       GL_INT                                     => 16#1404#, 
  1489.       GL_UNSIGNED_INT                            => 16#1405#, 
  1490.       GL_FLOAT                                   => 16#1406#, 
  1491.       GL_DOUBLE                                  => 16#140A# 
  1492.      ); 
  1493.    for ColorTypeEnm'Size use GL.enum'Size; 
  1494.  
  1495.    type IndexTypeEnm is 
  1496.      ( 
  1497.       GL_UNSIGNED_BYTE, 
  1498.       GL_SHORT, 
  1499.       GL_INT, 
  1500.       GL_FLOAT, 
  1501.       GL_DOUBLE 
  1502.      ); 
  1503.    for IndexTypeEnm use 
  1504.      ( 
  1505.       GL_UNSIGNED_BYTE                           => 16#1401#, 
  1506.       GL_SHORT                                   => 16#1402#, 
  1507.       GL_INT                                     => 16#1404#, 
  1508.       GL_FLOAT                                   => 16#1406#, 
  1509.       GL_DOUBLE                                  => 16#140A# 
  1510.      ); 
  1511.    for IndexTypeEnm'Size use GL.enum'Size; 
  1512.  
  1513.    type TexCoordTypeEnm is 
  1514.      ( 
  1515.       GL_SHORT, 
  1516.       GL_INT, 
  1517.       GL_FLOAT, 
  1518.       GL_DOUBLE 
  1519.      ); 
  1520.    for TexCoordTypeEnm use 
  1521.      ( 
  1522.       GL_SHORT                                   => 16#1402#, 
  1523.       GL_INT                                     => 16#1404#, 
  1524.       GL_FLOAT                                   => 16#1406#, 
  1525.       GL_DOUBLE                                  => 16#140A# 
  1526.      ); 
  1527.    for TexCoordTypeEnm'Size use GL.enum'Size; 
  1528.  
  1529.    type ArrayIndexTypeEnm is 
  1530.      ( 
  1531.       UNSIGNED_BYTE, 
  1532.       UNSIGNED_SHORT, 
  1533.       UNSIGNED_INT 
  1534.      ); 
  1535.    for ArrayIndexTypeEnm use 
  1536.      ( 
  1537.       UNSIGNED_BYTE                           => 16#1401#, 
  1538.       UNSIGNED_SHORT                          => 16#1403#, 
  1539.       UNSIGNED_INT                            => 16#1405# 
  1540.      ); 
  1541.    for ArrayIndexTypeEnm'Size use GL.enum'Size; 
  1542.  
  1543.    type InterleaveFormatEnm is 
  1544.      ( 
  1545.       V2F, 
  1546.       V3F, 
  1547.       C4UB_V2F, 
  1548.       C4UB_V3F, 
  1549.       C3F_V3F, 
  1550.       N3F_V3F, 
  1551.       C4F_N3F_V3F, 
  1552.       T2F_V3F, 
  1553.       T4F_V4F, 
  1554.       T2F_C4UB_V3F, 
  1555.       T2F_C3F_V3F, 
  1556.       T2F_N3F_V3F, 
  1557.       T2F_C4F_N3F_V3F, 
  1558.       T4F_C4F_N3F_V4F 
  1559.      ); 
  1560.    for InterleaveFormatEnm use 
  1561.      ( 
  1562.       V2F                                     => 16#2A20#, 
  1563.       V3F                                     => 16#2A21#, 
  1564.       C4UB_V2F                                => 16#2A22#, 
  1565.       C4UB_V3F                                => 16#2A23#, 
  1566.       C3F_V3F                                 => 16#2A24#, 
  1567.       N3F_V3F                                 => 16#2A25#, 
  1568.       C4F_N3F_V3F                             => 16#2A26#, 
  1569.       T2F_V3F                                 => 16#2A27#, 
  1570.       T4F_V4F                                 => 16#2A28#, 
  1571.       T2F_C4UB_V3F                            => 16#2A29#, 
  1572.       T2F_C3F_V3F                             => 16#2A2A#, 
  1573.       T2F_N3F_V3F                             => 16#2A2B#, 
  1574.       T2F_C4F_N3F_V3F                         => 16#2A2C#, 
  1575.       T4F_C4F_N3F_V4F                         => 16#2A2D# 
  1576.      ); 
  1577.    for InterleaveFormatEnm'Size use GL.enum'Size; 
  1578.  
  1579.    procedure VertexPointer (size   : GL.Int; 
  1580.                             c_type : VertexTypeEnm; 
  1581.                             stride : GL.Sizei; 
  1582.                             ptr    : GL.pointer); 
  1583.  
  1584.    procedure Normal_Pointer (c_type : NormalTypeEnm; 
  1585.                             stride : GL.Sizei; 
  1586.                             ptr    : GL.pointer); 
  1587.  
  1588.    procedure ColorPointer (size   : GL.Int; 
  1589.                            c_type : ColorTypeEnm; 
  1590.                            stride : GL.Sizei; 
  1591.                            ptr    : GL.pointer); 
  1592.  
  1593.    procedure IndexPointer (c_type : IndexTypeEnm; 
  1594.                            stride : GL.Sizei; 
  1595.                            ptr    : GL.pointer); 
  1596.  
  1597.    procedure Tex_Coord_Pointer (size   : GL.Int; 
  1598.                               c_type : TexCoordTypeEnm; 
  1599.                               stride : GL.Sizei; 
  1600.                               ptr    : GL.pointer); 
  1601.  
  1602.    procedure EdgeFlagPointer (stride : GL.Sizei; 
  1603.                               ptr    : GL_BooleanPtr); 
  1604.  
  1605.    procedure ArrayElement (i : GL.Int); 
  1606.  
  1607.    procedure DrawArrays (mode  : ObjectTypeEnm; 
  1608.                          first : GL.Int; 
  1609.                          count : GL.Sizei); 
  1610.  
  1611.    procedure DrawElements (mode    : ObjectTypeEnm; 
  1612.                            count   : GL.Sizei; 
  1613.                            c_type  : ArrayIndexTypeEnm; 
  1614.                            indices : GL.pointer); 
  1615.  
  1616.    procedure interleavedArrays (format  : InterleaveFormatEnm; 
  1617.                                 stride  : GL.Sizei; 
  1618.                                 ptr     : GL.pointer); 
  1619.  
  1620.    -- Shading model 
  1621.    type ShadeModeEnm is 
  1622.      ( 
  1623.       FLAT, 
  1624.       SMOOTH 
  1625.      ); 
  1626.    for ShadeModeEnm use 
  1627.      ( 
  1628.       FLAT                                    => 16#1D00#, 
  1629.       SMOOTH                                  => 16#1D01# 
  1630.      ); 
  1631.    for ShadeModeEnm'Size use GL.enum'Size; 
  1632.  
  1633.    procedure ShadeModel (mode : ShadeModeEnm); 
  1634.  
  1635.    -- Lighting 
  1636.    type LightIDEnm is 
  1637.      ( 
  1638.       LIGHT0, 
  1639.       LIGHT1, 
  1640.       LIGHT2, 
  1641.       LIGHT3, 
  1642.       LIGHT4, 
  1643.       LIGHT5, 
  1644.       LIGHT6, 
  1645.       LIGHT7 
  1646.      ); 
  1647.    for LightIDEnm use 
  1648.      ( 
  1649.       LIGHT0                                  => 16#4000#, 
  1650.       LIGHT1                                  => 16#4001#, 
  1651.       LIGHT2                                  => 16#4002#, 
  1652.       LIGHT3                                  => 16#4003#, 
  1653.       LIGHT4                                  => 16#4004#, 
  1654.       LIGHT5                                  => 16#4005#, 
  1655.       LIGHT6                                  => 16#4006#, 
  1656.       LIGHT7                                  => 16#4007# 
  1657.      ); 
  1658.    for LightIDEnm'Size use GL.enum'Size; 
  1659.  
  1660.    type LightParameterEnm is 
  1661.      ( 
  1662.       SPOT_EXPONENT, 
  1663.       SPOT_CUTOFF, 
  1664.       CONSTANT_ATTENUATION, 
  1665.       LINEAR_ATTENUATION, 
  1666.       QUADRATIC_ATTENUATION 
  1667.      ); 
  1668.    for LightParameterEnm use 
  1669.      ( 
  1670.       SPOT_EXPONENT                           => 16#1205#, 
  1671.       SPOT_CUTOFF                             => 16#1206#, 
  1672.       CONSTANT_ATTENUATION                    => 16#1207#, 
  1673.       LINEAR_ATTENUATION                      => 16#1208#, 
  1674.       QUADRATIC_ATTENUATION                   => 16#1209# 
  1675.      ); 
  1676.    for LightParameterEnm'Size use GL.enum'Size; 
  1677.  
  1678.    type LightParameterVEnm is 
  1679.      ( 
  1680.       AMBIENT, 
  1681.       DIFFUSE, 
  1682.       SPECULAR, 
  1683.       POSITION, 
  1684.       SPOT_DIRECTION, 
  1685.       SPOT_EXPONENT, 
  1686.       SPOT_CUTOFF, 
  1687.       CONSTANT_ATTENUATION, 
  1688.       LINEAR_ATTENUATION, 
  1689.       QUADRATIC_ATTENUATION 
  1690.      ); 
  1691.    for LightParameterVEnm use 
  1692.      ( 
  1693.       AMBIENT                                 => 16#1200#, 
  1694.       DIFFUSE                                 => 16#1201#, 
  1695.       SPECULAR                                => 16#1202#, 
  1696.       POSITION                                => 16#1203#, 
  1697.       SPOT_DIRECTION                          => 16#1204#, 
  1698.       SPOT_EXPONENT                           => 16#1205#, 
  1699.       SPOT_CUTOFF                             => 16#1206#, 
  1700.       CONSTANT_ATTENUATION                    => 16#1207#, 
  1701.       LINEAR_ATTENUATION                      => 16#1208#, 
  1702.       QUADRATIC_ATTENUATION                   => 16#1209# 
  1703.      ); 
  1704.    for LightParameterVEnm'Size use GL.enum'Size; 
  1705.  
  1706.    type LightModelEnm is 
  1707.      ( 
  1708.       LIGHT_MODEL_LOCAL_VIEWER, 
  1709.       LIGHT_MODEL_TWO_SIDE 
  1710.      ); 
  1711.    for LightModelEnm use 
  1712.      ( 
  1713.       LIGHT_MODEL_LOCAL_VIEWER                => 16#0B51#, 
  1714.       LIGHT_MODEL_TWO_SIDE                    => 16#0B52# 
  1715.      ); 
  1716.    for LightModelEnm'Size use GL.enum'Size; 
  1717.  
  1718.    type LightModelVEnm is 
  1719.      ( 
  1720.       LIGHT_MODEL_LOCAL_VIEWER, 
  1721.       LIGHT_MODEL_TWO_SIDE, 
  1722.       LIGHT_MODEL_AMBIENT 
  1723.      ); 
  1724.    for LightModelVEnm use 
  1725.      ( 
  1726.       LIGHT_MODEL_LOCAL_VIEWER                => 16#0B51#, 
  1727.       LIGHT_MODEL_TWO_SIDE                    => 16#0B52#, 
  1728.       LIGHT_MODEL_AMBIENT                     => 16#0B53# 
  1729.      ); 
  1730.    for LightModelVEnm'Size use GL.enum'Size; 
  1731.  
  1732.    procedure Light (light_id : LightIDEnm; 
  1733.                     pname    : LightParameterEnm; 
  1734.                     param    : GL.C_Float); 
  1735.  
  1736.    procedure Lighti (light_id : LightIDEnm; 
  1737.                      pname    : LightParameterEnm; 
  1738.                      param    : GL.Int); 
  1739.  
  1740.    procedure Light (Light_id  : LightIDEnm; 
  1741.                     pname     : LightParameterVEnm; 
  1742.                     params    : Light_Float_vector); 
  1743.  
  1744.    procedure Lightiv (light_id  : LightIDEnm; 
  1745.                       pname     : LightParameterVEnm; 
  1746.                       params    : GL.intPointer); 
  1747.  
  1748.    procedure GetLightfv (light_id  : LightIDEnm; 
  1749.                          pname     : LightParameterVEnm; 
  1750.                          params    : floatPtr); 
  1751.  
  1752.    procedure GetLightiv (light_id  : LightIDEnm; 
  1753.                          pname     : LightParameterVEnm; 
  1754.                          params    : GL.intPointer); 
  1755.  
  1756.    procedure LightModelf (pname : LightModelEnm; 
  1757.                           param : GL.C_Float); 
  1758.  
  1759.    procedure LightModeli (pname : LightModelEnm; 
  1760.                           param : GL.Int); 
  1761.  
  1762.    procedure LightModelfv (pname  : LightModelVEnm; 
  1763.                            params : floatPtr); 
  1764.  
  1765.    procedure LightModeliv (pname  : LightModelVEnm; 
  1766.                            params : GL.intPointer); 
  1767.  
  1768.    -- Materials 
  1769.    type MaterialParameterEnm is 
  1770.      ( 
  1771.       SHININESS 
  1772.      ); 
  1773.    for MaterialParameterEnm use 
  1774.      ( 
  1775.       SHININESS                               => 16#1601# 
  1776.      ); 
  1777.    for MaterialParameterEnm'Size use GL.enum'Size; 
  1778.  
  1779.    type MaterialParameterVEnm is 
  1780.      ( 
  1781.       AMBIENT, 
  1782.       DIFFUSE, 
  1783.       SPECULAR, 
  1784.       EMISSION, 
  1785.       SHININESS, 
  1786.       AMBIENT_AND_DIFFUSE, 
  1787.       COLOR_INDEXES 
  1788.      ); 
  1789.    for MaterialParameterVEnm use 
  1790.      ( 
  1791.       AMBIENT                                 => 16#1200#, 
  1792.       DIFFUSE                                 => 16#1201#, 
  1793.       SPECULAR                                => 16#1202#, 
  1794.       EMISSION                                => 16#1600#, 
  1795.       SHININESS                               => 16#1601#, 
  1796.       AMBIENT_AND_DIFFUSE                     => 16#1602#, 
  1797.       COLOR_INDEXES                           => 16#1603# 
  1798.      ); 
  1799.    for MaterialParameterVEnm'Size use GL.enum'Size; 
  1800.  
  1801.    type GetMaterialParameterEnm is 
  1802.      ( 
  1803.       AMBIENT, 
  1804.       DIFFUSE, 
  1805.       SPECULAR, 
  1806.       EMISSION, 
  1807.       SHININESS, 
  1808.       COLOR_INDEXES 
  1809.      ); 
  1810.    for GetMaterialParameterEnm use 
  1811.      ( 
  1812.       AMBIENT                                 => 16#1200#, 
  1813.       DIFFUSE                                 => 16#1201#, 
  1814.       SPECULAR                                => 16#1202#, 
  1815.       EMISSION                                => 16#1600#, 
  1816.       SHININESS                               => 16#1601#, 
  1817.       COLOR_INDEXES                           => 16#1603# 
  1818.      ); 
  1819.    for GetMaterialParameterEnm'Size use GL.enum'Size; 
  1820.  
  1821.    type ColorMaterialEnm is 
  1822.      ( 
  1823.       AMBIENT, 
  1824.       DIFFUSE, 
  1825.       SPECULAR, 
  1826.       EMISSION, 
  1827.       AMBIENT_AND_DIFFUSE 
  1828.      ); 
  1829.    for ColorMaterialEnm use 
  1830.      ( 
  1831.       AMBIENT                                 => 16#1200#, 
  1832.       DIFFUSE                                 => 16#1201#, 
  1833.       SPECULAR                                => 16#1202#, 
  1834.       EMISSION                                => 16#1600#, 
  1835.       AMBIENT_AND_DIFFUSE                     => 16#1602# 
  1836.      ); 
  1837.    for ColorMaterialEnm'Size use GL.enum'Size; 
  1838.  
  1839.    procedure Material (face  : FaceEnm; 
  1840.                        pname : MaterialParameterEnm; 
  1841.                        param : GL.C_Float); 
  1842.  
  1843.    procedure Materiali (face  : FaceEnm; 
  1844.                         pname : MaterialParameterEnm; 
  1845.                         param : GL.Int); 
  1846.  
  1847.    procedure Material (face   : FaceEnm; 
  1848.                        pname  : MaterialParameterVEnm; 
  1849.                        params : Material_Float_vector); 
  1850.  
  1851.    procedure Materialiv (face   : FaceEnm; 
  1852.                          pname  : MaterialParameterVEnm; 
  1853.                          params : GL.intPointer); 
  1854.  
  1855.    procedure GetMaterialfv (face   : FaceEnm; 
  1856.                             pname  : GetMaterialParameterEnm; 
  1857.                             params : floatPtr); 
  1858.  
  1859.    procedure GetMaterialiv (face   : FaceEnm; 
  1860.                             pname  : GetMaterialParameterEnm; 
  1861.                             params : GL.intPointer); 
  1862.  
  1863.    procedure ColorMaterial (face : FaceEnm; 
  1864.                             mode : ColorMaterialEnm); 
  1865.  
  1866.    -- Pixel stuff 
  1867.    type PixelStorageEnm is 
  1868.      ( 
  1869.       UNPACK_SWAP_BYTES, 
  1870.       UNPACK_LSB_FIRST, 
  1871.       UNPACK_ROW_LENGTH, 
  1872.       UNPACK_SKIP_ROWS, 
  1873.       UNPACK_SKIP_PIXELS, 
  1874.       UNPACK_ALIGNMENT, 
  1875.       PACK_SWAP_BYTES, 
  1876.       PACK_LSB_FIRST, 
  1877.       PACK_ROW_LENGTH, 
  1878.       PACK_SKIP_ROWS, 
  1879.       PACK_SKIP_PIXELS, 
  1880.       PACK_ALIGNMENT 
  1881.      ); 
  1882.    for PixelStorageEnm use 
  1883.      ( 
  1884.       UNPACK_SWAP_BYTES                       => 16#0CF0#, 
  1885.       UNPACK_LSB_FIRST                        => 16#0CF1#, 
  1886.       UNPACK_ROW_LENGTH                       => 16#0CF2#, 
  1887.       UNPACK_SKIP_ROWS                        => 16#0CF3#, 
  1888.       UNPACK_SKIP_PIXELS                      => 16#0CF4#, 
  1889.       UNPACK_ALIGNMENT                        => 16#0CF5#, 
  1890.       PACK_SWAP_BYTES                         => 16#0D00#, 
  1891.       PACK_LSB_FIRST                          => 16#0D01#, 
  1892.       PACK_ROW_LENGTH                         => 16#0D02#, 
  1893.       PACK_SKIP_ROWS                          => 16#0D03#, 
  1894.       PACK_SKIP_PIXELS                        => 16#0D04#, 
  1895.       PACK_ALIGNMENT                          => 16#0D05# 
  1896.      ); 
  1897.    for PixelStorageEnm'Size use GL.enum'Size; 
  1898.  
  1899.    type PixelTransferEnm is 
  1900.      ( 
  1901.       MAP_COLOR, 
  1902.       MAP_STENCIL, 
  1903.       INDEX_SHIFT, 
  1904.       INDEX_OFFSET, 
  1905.       RED_SCALE, 
  1906.       RED_BIAS, 
  1907.       GREEN_SCALE, 
  1908.       GREEN_BIAS, 
  1909.       BLUE_SCALE, 
  1910.       BLUE_BIAS, 
  1911.       ALPHA_SCALE, 
  1912.       ALPHA_BIAS, 
  1913.       DEPTH_SCALE, 
  1914.       DEPTH_BIAS 
  1915.      ); 
  1916.    for PixelTransferEnm use 
  1917.      ( 
  1918.       MAP_COLOR                               => 16#0D10#, 
  1919.       MAP_STENCIL                             => 16#0D11#, 
  1920.       INDEX_SHIFT                             => 16#0D12#, 
  1921.       INDEX_OFFSET                            => 16#0D13#, 
  1922.       RED_SCALE                               => 16#0D14#, 
  1923.       RED_BIAS                                => 16#0D15#, 
  1924.       GREEN_SCALE                             => 16#0D18#, 
  1925.       GREEN_BIAS                              => 16#0D19#, 
  1926.       BLUE_SCALE                              => 16#0D1A#, 
  1927.       BLUE_BIAS                               => 16#0D1B#, 
  1928.       ALPHA_SCALE                             => 16#0D1C#, 
  1929.       ALPHA_BIAS                              => 16#0D1D#, 
  1930.       DEPTH_SCALE                             => 16#0D1E#, 
  1931.       DEPTH_BIAS                              => 16#0D1F# 
  1932.      ); 
  1933.    for PixelTransferEnm'Size use GL.enum'Size; 
  1934.  
  1935.    type PixelMapEnm is 
  1936.      ( 
  1937.       PIXEL_MAP_I_TO_I, 
  1938.       PIXEL_MAP_S_TO_S, 
  1939.       PIXEL_MAP_I_TO_R, 
  1940.       PIXEL_MAP_I_TO_G, 
  1941.       PIXEL_MAP_I_TO_B, 
  1942.       PIXEL_MAP_I_TO_A, 
  1943.       PIXEL_MAP_R_TO_R, 
  1944.       PIXEL_MAP_G_TO_G, 
  1945.       PIXEL_MAP_B_TO_B, 
  1946.       PIXEL_MAP_A_TO_A 
  1947.      ); 
  1948.    for PixelMapEnm use 
  1949.      ( 
  1950.       PIXEL_MAP_I_TO_I                        => 16#0C70#, 
  1951.       PIXEL_MAP_S_TO_S                        => 16#0C71#, 
  1952.       PIXEL_MAP_I_TO_R                        => 16#0C72#, 
  1953.       PIXEL_MAP_I_TO_G                        => 16#0C73#, 
  1954.       PIXEL_MAP_I_TO_B                        => 16#0C74#, 
  1955.       PIXEL_MAP_I_TO_A                        => 16#0C75#, 
  1956.       PIXEL_MAP_R_TO_R                        => 16#0C76#, 
  1957.       PIXEL_MAP_G_TO_G                        => 16#0C77#, 
  1958.       PIXEL_MAP_B_TO_B                        => 16#0C78#, 
  1959.       PIXEL_MAP_A_TO_A                        => 16#0C79# 
  1960.      ); 
  1961.    for PixelMapEnm'Size use GL.enum'Size; 
  1962.  
  1963.    type PixelFormatEnm is 
  1964.      ( 
  1965.       COLOR_INDEX, 
  1966.       STENCIL_INDEX, 
  1967.       DEPTH_COMPONENT, 
  1968.       Red_Component, 
  1969.       Green_Component, 
  1970.       Blue_Component, 
  1971.       Alpha_Component, 
  1972.       RGB, 
  1973.       RGBA, 
  1974.       LUMINANCE, 
  1975.       LUMINANCE_ALPHA, 
  1976.       BGR, 
  1977.       BGRA 
  1978.      ); 
  1979.    for PixelFormatEnm use 
  1980.      ( 
  1981.       COLOR_INDEX                             => 16#1900#, 
  1982.       STENCIL_INDEX                           => 16#1901#, 
  1983.       DEPTH_COMPONENT                         => 16#1902#, 
  1984.       Red_Component                           => 16#1903#, 
  1985.       Green_Component                         => 16#1904#, 
  1986.       Blue_Component                          => 16#1905#, 
  1987.       Alpha_Component                         => 16#1906#, 
  1988.       RGB                                     => 16#1907#, 
  1989.       RGBA                                    => 16#1908#, 
  1990.       LUMINANCE                               => 16#1909#, 
  1991.       LUMINANCE_ALPHA                         => 16#190A#, 
  1992.       BGR                                     => 16#80E0#, 
  1993.       BGRA                                    => 16#80E1# 
  1994.      ); 
  1995.    for PixelFormatEnm'Size use GL.enum'Size; 
  1996.  
  1997.    type PixelDataTypeEnm is 
  1998.      ( 
  1999.       GL_BYTE, 
  2000.       GL_UNSIGNED_BYTE, 
  2001.       GL_SHORT, 
  2002.       GL_UNSIGNED_SHORT, 
  2003.       GL_INT, 
  2004.       GL_UNSIGNED_INT, 
  2005.       GL_FLOAT, 
  2006.       GL_BITMAP 
  2007.      ); 
  2008.    for PixelDataTypeEnm use 
  2009.      ( 
  2010.       GL_BYTE                                    => 16#1400#, 
  2011.       GL_UNSIGNED_BYTE                           => 16#1401#, 
  2012.       GL_SHORT                                   => 16#1402#, 
  2013.       GL_UNSIGNED_SHORT                          => 16#1403#, 
  2014.       GL_INT                                     => 16#1404#, 
  2015.       GL_UNSIGNED_INT                            => 16#1405#, 
  2016.       GL_FLOAT                                   => 16#1406#, 
  2017.       GL_BITMAP                                  => 16#1A00# 
  2018.      ); 
  2019.    for PixelDataTypeEnm'Size use GL.enum'Size; 
  2020.  
  2021.    type PixelCopyTypeEnm is 
  2022.      ( 
  2023.       COLOR, 
  2024.       DEPTH, 
  2025.       STENCIL 
  2026.      ); 
  2027.    for PixelCopyTypeEnm use 
  2028.      ( 
  2029.       COLOR                                   => 16#1800#, 
  2030.       DEPTH                                   => 16#1801#, 
  2031.       STENCIL                                 => 16#1802# 
  2032.      ); 
  2033.    for PixelCopyTypeEnm'Size use GL.enum'Size; 
  2034.  
  2035.    procedure PixelZoom (xfactor : GL.C_Float; 
  2036.                         yfactor : GL.C_Float); 
  2037.  
  2038.    procedure PixelStoref (pname : PixelStorageEnm; 
  2039.                           param : GL.C_Float); 
  2040.  
  2041.    procedure PixelStore (pname : PixelStorageEnm; 
  2042.                          param : GL.Int); 
  2043.  
  2044.    procedure PixelTransferf (pname : PixelTransferEnm; 
  2045.                              param : GL.C_Float); 
  2046.  
  2047.    procedure PixelTransferi (pname : PixelTransferEnm; 
  2048.                              param : GL.Int); 
  2049.  
  2050.    procedure PixelMapfv (map     : PixelMapEnm; 
  2051.                          mapsize : GL.Int; 
  2052.                          values  : floatPtr); 
  2053.  
  2054.    procedure PixelMapuiv (map     : PixelMapEnm; 
  2055.                           mapsize : GL.Int; 
  2056.                           values  : GL.uintPtr); 
  2057.  
  2058.    procedure PixelMapusv (map     : PixelMapEnm; 
  2059.                           mapsize : GL.Int; 
  2060.                           values  : ushortPtr); 
  2061.  
  2062.    procedure GetPixelMapfv (map    : PixelMapEnm; 
  2063.                             values : floatPtr); 
  2064.  
  2065.    procedure GetPixelMapuiv (map    : PixelMapEnm; 
  2066.                              values : GL.uintPtr); 
  2067.  
  2068.    procedure GetPixelMapusv (map    : PixelMapEnm; 
  2069.                              values : ushortPtr); 
  2070.  
  2071.    procedure ReadPixels (x      : GL.Int; 
  2072.                          y      : GL.Int; 
  2073.                          width  : GL.Sizei; 
  2074.                          height : GL.Sizei; 
  2075.                          format : PixelFormatEnm; 
  2076.                          c_type : PixelDataTypeEnm; 
  2077.                          pixels : GL.pointer); 
  2078.  
  2079.    procedure DrawPixels (width  : GL.Sizei; 
  2080.                          height : GL.Sizei; 
  2081.                          format : PixelFormatEnm; 
  2082.                          c_type : PixelDataTypeEnm; 
  2083.                          pixels : GL.pointer); 
  2084.  
  2085.    procedure CopyPixels (x      : GL.Int; 
  2086.                          y      : GL.Int; 
  2087.                          width  : GL.Sizei; 
  2088.                          height : GL.Sizei; 
  2089.                          c_type : PixelCopyTypeEnm); 
  2090.  
  2091.    -- Texturing 
  2092.    type TexCoordEnm is 
  2093.      ( 
  2094.       S, 
  2095.       T, 
  2096.       R, 
  2097.       Q 
  2098.      ); 
  2099.    for TexCoordEnm use 
  2100.      ( 
  2101.       S                                       => 16#2000#, 
  2102.       T                                       => 16#2001#, 
  2103.       R                                       => 16#2002#, 
  2104.       Q                                       => 16#2003# 
  2105.      ); 
  2106.    for TexCoordEnm'Size use GL.enum'Size; 
  2107.  
  2108.    type TexParameterEnm is 
  2109.      ( 
  2110.       TEXTURE_GEN_MODE 
  2111.      ); 
  2112.    for TexParameterEnm use 
  2113.      ( 
  2114.       TEXTURE_GEN_MODE                        => 16#2500# 
  2115.      ); 
  2116.    for TexParameterEnm'Size use GL.enum'Size; 
  2117.  
  2118.    type TexParameterVEnm is 
  2119.      ( 
  2120.       TEXTURE_GEN_MODE, 
  2121.       OBJECT_PLANE, 
  2122.       EYE_PLANE 
  2123.      ); 
  2124.    for TexParameterVEnm use 
  2125.      ( 
  2126.       TEXTURE_GEN_MODE                        => 16#2500#, 
  2127.       OBJECT_PLANE                            => 16#2501#, 
  2128.       EYE_PLANE                               => 16#2502# 
  2129.      ); 
  2130.    for TexParameterVEnm'Size use GL.enum'Size; 
  2131.  
  2132.    type TexEnvEnm is 
  2133.      ( 
  2134.       TEXTURE_ENV 
  2135.      ); 
  2136.    for TexEnvEnm use 
  2137.      ( 
  2138.       TEXTURE_ENV                             => 16#2300# 
  2139.      ); 
  2140.    for TexEnvEnm'Size use GL.enum'Size; 
  2141.  
  2142.    type TexEnvParameterEnm is 
  2143.      ( 
  2144.       TEXTURE_ENV_MODE 
  2145.      ); 
  2146.    for TexEnvParameterEnm use 
  2147.      ( 
  2148.       TEXTURE_ENV_MODE                        => 16#2200# 
  2149.      ); 
  2150.    for TexEnvParameterEnm'Size use GL.enum'Size; 
  2151.  
  2152.    type TexEnvParameterVEnm is 
  2153.      ( 
  2154.       TEXTURE_ENV_MODE, 
  2155.       TEXTURE_ENV_COLOR 
  2156.      ); 
  2157.    for TexEnvParameterVEnm use 
  2158.      ( 
  2159.       TEXTURE_ENV_MODE                        => 16#2200#, 
  2160.       TEXTURE_ENV_COLOR                       => 16#2201# 
  2161.      ); 
  2162.    for TexEnvParameterVEnm'Size use GL.enum'Size; 
  2163.  
  2164.    type TargetTexEnm is 
  2165.      ( 
  2166.       TEXTURE_1D, 
  2167.       TEXTURE_2D 
  2168.      ); 
  2169.    for TargetTexEnm use 
  2170.      ( 
  2171.       TEXTURE_1D                              => 16#0DE0#, 
  2172.       TEXTURE_2D                              => 16#0DE1# 
  2173.      ); 
  2174.    for TargetTexEnm'Size use GL.enum'Size; 
  2175.  
  2176.    type TexParamEnm is 
  2177.      ( 
  2178.       TEXTURE_MAG_FILTER, 
  2179.       TEXTURE_MIN_FILTER, 
  2180.       TEXTURE_WRAP_S, 
  2181.       TEXTURE_WRAP_T, 
  2182.       TEXTURE_PRIORITY 
  2183.      ); 
  2184.    for TexParamEnm use 
  2185.      ( 
  2186.       TEXTURE_MAG_FILTER                      => 16#2800#, 
  2187.       TEXTURE_MIN_FILTER                      => 16#2801#, 
  2188.       TEXTURE_WRAP_S                          => 16#2802#, 
  2189.       TEXTURE_WRAP_T                          => 16#2803#, 
  2190.       TEXTURE_PRIORITY                        => 16#8066# 
  2191.      ); 
  2192.    for TexParamEnm'Size use GL.enum'Size; 
  2193.  
  2194.    type TexParamVEnm is 
  2195.      ( 
  2196.       TEXTURE_BORDER_COLOR, 
  2197.       TEXTURE_MAG_FILTER, 
  2198.       TEXTURE_MIN_FILTER, 
  2199.       TEXTURE_WRAP_S, 
  2200.       TEXTURE_WRAP_T, 
  2201.       TEXTURE_PRIORITY 
  2202.      ); 
  2203.    for TexParamVEnm use 
  2204.      ( 
  2205.       TEXTURE_BORDER_COLOR                    => 16#1004#, 
  2206.       TEXTURE_MAG_FILTER                      => 16#2800#, 
  2207.       TEXTURE_MIN_FILTER                      => 16#2801#, 
  2208.       TEXTURE_WRAP_S                          => 16#2802#, 
  2209.       TEXTURE_WRAP_T                          => 16#2803#, 
  2210.       TEXTURE_PRIORITY                        => 16#8066# 
  2211.      ); 
  2212.    for TexParamVEnm'Size use GL.enum'Size; 
  2213.  
  2214.    type GetTexParamEnm is 
  2215.      ( 
  2216.       TEXTURE_BORDER_COLOR, 
  2217.       TEXTURE_MAG_FILTER, 
  2218.       TEXTURE_MIN_FILTER, 
  2219.       TEXTURE_WRAP_S, 
  2220.       TEXTURE_WRAP_T, 
  2221.       TEXTURE_PRIORITY, 
  2222.       TEXTURE_RESIDENT 
  2223.      ); 
  2224.    for GetTexParamEnm use 
  2225.      ( 
  2226.       TEXTURE_BORDER_COLOR                    => 16#1004#, 
  2227.       TEXTURE_MAG_FILTER                      => 16#2800#, 
  2228.       TEXTURE_MIN_FILTER                      => 16#2801#, 
  2229.       TEXTURE_WRAP_S                          => 16#2802#, 
  2230.       TEXTURE_WRAP_T                          => 16#2803#, 
  2231.       TEXTURE_PRIORITY                        => 16#8066#, 
  2232.       TEXTURE_RESIDENT                        => 16#8067# 
  2233.      ); 
  2234.    for GetTexParamEnm'Size use GL.enum'Size; 
  2235.  
  2236.    type TargetTexLevelEnm is 
  2237.      ( 
  2238.       TEXTURE_1D, 
  2239.       TEXTURE_2D, 
  2240.       PROXY_TEXTURE_1D, 
  2241.       PROXY_TEXTURE_2D 
  2242.      ); 
  2243.    for TargetTexLevelEnm use 
  2244.      ( 
  2245.       TEXTURE_1D                              => 16#0DE0#, 
  2246.       TEXTURE_2D                              => 16#0DE1#, 
  2247.       PROXY_TEXTURE_1D                        => 16#8063#, 
  2248.       PROXY_TEXTURE_2D                        => 16#8064# 
  2249.      ); 
  2250.    for TargetTexLevelEnm'Size use GL.enum'Size; 
  2251.  
  2252.    type TexLevelParameterEnm is 
  2253.      ( 
  2254.       TEXTURE_WIDTH, 
  2255.       TEXTURE_HEIGHT, 
  2256.       TEXTURE_COMPONENTS, 
  2257.       TEXTURE_BORDER, 
  2258.       TEXTURE_RED_SIZE, 
  2259.       TEXTURE_GREEN_SIZE, 
  2260.       TEXTURE_BLUE_SIZE, 
  2261.       TEXTURE_ALPHA_SIZE, 
  2262.       TEXTURE_LUMINANCE_SIZE, 
  2263.       TEXTURE_INTENSITY_SIZE, 
  2264.       TEXTURE_INTERNAL_FORMAT 
  2265.      ); 
  2266.    for TexLevelParameterEnm use 
  2267.      ( 
  2268.       TEXTURE_WIDTH                           => 16#1000#, 
  2269.       TEXTURE_HEIGHT                          => 16#1001#, 
  2270.       TEXTURE_COMPONENTS                      => 16#1003#,  -- HP docs say to use this in 1.0 instead of INTERNAL_FORMAT??? 
  2271.       TEXTURE_BORDER                          => 16#1005#, 
  2272.       TEXTURE_RED_SIZE                        => 16#805C#, 
  2273.       TEXTURE_GREEN_SIZE                      => 16#805D#, 
  2274.       TEXTURE_BLUE_SIZE                       => 16#805E#, 
  2275.       TEXTURE_ALPHA_SIZE                      => 16#805F#, 
  2276.       TEXTURE_LUMINANCE_SIZE                  => 16#8060#, 
  2277.       TEXTURE_INTENSITY_SIZE                  => 16#8061#, 
  2278.       TEXTURE_INTERNAL_FORMAT                 => 16#FFFF#   -- fixme : Mesa 2.5 does not support!!  What's the real value? 
  2279.      ); 
  2280.    for TexLevelParameterEnm'Size use GL.enum'Size; 
  2281.  
  2282.    type TargetTex1DEnm is 
  2283.      ( 
  2284.       TEXTURE_1D, 
  2285.       PROXY_TEXTURE_1D 
  2286.      ); 
  2287.    for TargetTex1DEnm use 
  2288.      ( 
  2289.       TEXTURE_1D                              => 16#0DE0#, 
  2290.       PROXY_TEXTURE_1D                        => 16#8063# 
  2291.      ); 
  2292.    for TargetTex1DEnm'Size use GL.enum'Size; 
  2293.  
  2294.    type TexFormatEnm is 
  2295.      ( 
  2296.       Alpha_Value, 
  2297.       RGB, 
  2298.       RGBA, 
  2299.       LUMINANCE, 
  2300.       LUMINANCE_ALPHA, 
  2301.       R3_G3_B2, 
  2302.       ALPHA4, 
  2303.       ALPHA8, 
  2304.       ALPHA12, 
  2305.       ALPHA16, 
  2306.       LUMINANCE4, 
  2307.       LUMINANCE8, 
  2308.       LUMINANCE12, 
  2309.       LUMINANCE16, 
  2310.       LUMINANCE4_ALPHA4, 
  2311.       LUMINANCE6_ALPHA2, 
  2312.       LUMINANCE8_ALPHA8, 
  2313.       LUMINANCE12_ALPHA4, 
  2314.       LUMINANCE12_ALPHA12, 
  2315.       LUMINANCE16_ALPHA16, 
  2316.       INTENSITY, 
  2317.       INTENSITY4, 
  2318.       INTENSITY8, 
  2319.       INTENSITY12, 
  2320.       INTENSITY16, 
  2321.       RGB4, 
  2322.       RGB5, 
  2323.       RGB8, 
  2324.       RGB10, 
  2325.       RGB12, 
  2326.       RGB16, 
  2327.       RGBA2, 
  2328.       RGBA4, 
  2329.       RGB5_A1, 
  2330.       RGBA8, 
  2331.       RGB10_A2, 
  2332.       RGBA12, 
  2333.       RGBA16, 
  2334.       BGR, 
  2335.       BGRA 
  2336.      ); 
  2337.    for TexFormatEnm use 
  2338.      ( 
  2339.       Alpha_Value                                   => 16#1906#, 
  2340.       RGB                                     => 16#1907#, 
  2341.       RGBA                                    => 16#1908#, 
  2342.       LUMINANCE                               => 16#1909#, 
  2343.       LUMINANCE_ALPHA                         => 16#190A#, 
  2344.       R3_G3_B2                                => 16#2A10#, 
  2345.       ALPHA4                                  => 16#803B#, 
  2346.       ALPHA8                                  => 16#803C#, 
  2347.       ALPHA12                                 => 16#803D#, 
  2348.       ALPHA16                                 => 16#803E#, 
  2349.       LUMINANCE4                              => 16#803F#, 
  2350.       LUMINANCE8                              => 16#8040#, 
  2351.       LUMINANCE12                             => 16#8041#, 
  2352.       LUMINANCE16                             => 16#8042#, 
  2353.       LUMINANCE4_ALPHA4                       => 16#8043#, 
  2354.       LUMINANCE6_ALPHA2                       => 16#8044#, 
  2355.       LUMINANCE8_ALPHA8                       => 16#8045#, 
  2356.       LUMINANCE12_ALPHA4                      => 16#8046#, 
  2357.       LUMINANCE12_ALPHA12                     => 16#8047#, 
  2358.       LUMINANCE16_ALPHA16                     => 16#8048#, 
  2359.       INTENSITY                               => 16#8049#, 
  2360.       INTENSITY4                              => 16#804A#, 
  2361.       INTENSITY8                              => 16#804B#, 
  2362.       INTENSITY12                             => 16#804C#, 
  2363.       INTENSITY16                             => 16#804D#, 
  2364.       RGB4                                    => 16#804F#, 
  2365.       RGB5                                    => 16#8050#, 
  2366.       RGB8                                    => 16#8051#, 
  2367.       RGB10                                   => 16#8052#, 
  2368.       RGB12                                   => 16#8053#, 
  2369.       RGB16                                   => 16#8054#, 
  2370.       RGBA2                                   => 16#8055#, 
  2371.       RGBA4                                   => 16#8056#, 
  2372.       RGB5_A1                                 => 16#8057#, 
  2373.       RGBA8                                   => 16#8058#, 
  2374.       RGB10_A2                                => 16#8059#, 
  2375.       RGBA12                                  => 16#805A#, 
  2376.       RGBA16                                  => 16#805B#, 
  2377.       BGR                                     => 16#80E0#, 
  2378.       BGRA                                    => 16#80E1# 
  2379.      ); 
  2380.    for TexFormatEnm'Size use GL.enum'Size; 
  2381.  
  2382.    type TexPixelFormatEnm is 
  2383.      ( 
  2384.       COLOR_INDEX, 
  2385.       Red_Component, 
  2386.       Green_Component, 
  2387.       Blue_Component, 
  2388.       Alpha_Component, 
  2389.       RGB, 
  2390.       RGBA, 
  2391.       LUMINANCE, 
  2392.       LUMINANCE_ALPHA 
  2393.      ); 
  2394.    for TexPixelFormatEnm use 
  2395.      ( 
  2396.       COLOR_INDEX     => 16#1900#, 
  2397.       Red_Component   => 16#1903#, 
  2398.       Green_Component => 16#1904#, 
  2399.       Blue_Component  => 16#1905#, 
  2400.       Alpha_Component => 16#1906#, 
  2401.       RGB             => 16#1907#, 
  2402.       RGBA            => 16#1908#, 
  2403.       LUMINANCE       => 16#1909#, 
  2404.       LUMINANCE_ALPHA => 16#190A# 
  2405.      ); 
  2406.    for TexPixelFormatEnm'Size use GL.enum'Size; 
  2407.  
  2408.    type TargetTex2DEnm is 
  2409.      ( 
  2410.       TEXTURE_2D, 
  2411.       PROXY_TEXTURE_2D 
  2412.      ); 
  2413.    for TargetTex2DEnm use 
  2414.      ( 
  2415.       TEXTURE_2D                              => 16#0DE1#, 
  2416.       PROXY_TEXTURE_2D                        => 16#8064# 
  2417.      ); 
  2418.    for TargetTex2DEnm'Size use GL.enum'Size; 
  2419.  
  2420.    type TexImageFormatEnm is 
  2421.      ( 
  2422.       Red_Component, 
  2423.       Green_Component, 
  2424.       Blue_Component, 
  2425.       Alpha_Component, 
  2426.       RGB, 
  2427.       RGBA, 
  2428.       LUMINANCE, 
  2429.       LUMINANCE_ALPHA 
  2430.      ); 
  2431.    for TexImageFormatEnm use 
  2432.      ( 
  2433.       Red_Component    => 16#1903#, 
  2434.       Green_Component  => 16#1904#, 
  2435.       Blue_Component   => 16#1905#, 
  2436.       Alpha_Component  => 16#1906#, 
  2437.       RGB              => 16#1907#, 
  2438.       RGBA             => 16#1908#, 
  2439.       LUMINANCE        => 16#1909#, 
  2440.       LUMINANCE_ALPHA  => 16#190A# 
  2441.      ); 
  2442.    for TexImageFormatEnm'Size use GL.enum'Size; 
  2443.  
  2444.    type TargetTex1DOnlyEnm is 
  2445.      ( 
  2446.       TEXTURE_1D 
  2447.      ); 
  2448.    for TargetTex1DOnlyEnm use 
  2449.      ( 
  2450.       TEXTURE_1D                              => 16#0DE0# 
  2451.      ); 
  2452.    for TargetTex1DOnlyEnm'Size use GL.enum'Size; 
  2453.  
  2454.    type TargetTex2DOnlyEnm is 
  2455.      ( 
  2456.       TEXTURE_2D 
  2457.      ); 
  2458.    for TargetTex2DOnlyEnm use 
  2459.      ( 
  2460.       TEXTURE_2D                              => 16#0DE1# 
  2461.      ); 
  2462.    for TargetTex2DOnlyEnm'Size use GL.enum'Size; 
  2463.  
  2464.    type TargetTex3DEnm is 
  2465.      ( 
  2466.       TEXTURE_3D_EXT, 
  2467.       PROXY_TEXTURE_3D_EXT 
  2468.      ); 
  2469.    for TargetTex3DEnm use 
  2470.      ( 
  2471.       TEXTURE_3D_EXT                          => 16#806F#, 
  2472.       PROXY_TEXTURE_3D_EXT                    => 16#8070# 
  2473.      ); 
  2474.    for TargetTex3DEnm'Size use GL.enum'Size; 
  2475.  
  2476.    type TargetTex3DOnlyEnm is 
  2477.      ( 
  2478.       TEXTURE_3D_EXT 
  2479.      ); 
  2480.    for TargetTex3DOnlyEnm use 
  2481.      ( 
  2482.       TEXTURE_3D_EXT                          => 16#806F# 
  2483.      ); 
  2484.    for TargetTex3DOnlyEnm'Size use GL.enum'Size; 
  2485.  
  2486.    -- Texture map parameters 
  2487.    OBJECT_LINEAR                : constant := 16#2401#; 
  2488.    EYE_LINEAR                   : constant := 16#2400#; 
  2489.    SPHERE_MAP                   : constant := 16#2402#; 
  2490.  
  2491.    -- Texture filter parameter values 
  2492.    NEAREST_MIPMAP_NEAREST       : constant := 16#2700#; 
  2493.    NEAREST_MIPMAP_LINEAR        : constant := 16#2702#; 
  2494.    LINEAR_MIPMAP_NEAREST        : constant := 16#2701#; 
  2495.    LINEAR_MIPMAP_LINEAR         : constant := 16#2703#; 
  2496.    DECAL                        : constant := 16#2101#; 
  2497.    MODULATE                     : constant := 16#2100#; 
  2498.    NEAREST                      : constant := 16#2600#; 
  2499.    REPEAT                       : constant := 16#2901#; 
  2500.    CLAMP                        : constant := 16#2900#; 
  2501.    CLAMP_TO_EDGE                : constant := 16#812F#; 
  2502.    CLAMP_TO_BORDER              : constant := 16#812D#; 
  2503.  
  2504.    procedure TexGend (coord : TexCoordEnm; 
  2505.                       pname : TexParameterEnm; 
  2506.                       param : GL.Double); 
  2507.  
  2508.    procedure TexGenf (coord : TexCoordEnm; 
  2509.                       pname : TexParameterEnm; 
  2510.                       param : GL.C_Float); 
  2511.  
  2512.    procedure TexGeni (coord : TexCoordEnm; 
  2513.                       pname : TexParameterEnm; 
  2514.                       param : GL.Int); 
  2515.  
  2516.    procedure TexGendv (coord  : TexCoordEnm; 
  2517.                        pname  : TexParameterVEnm; 
  2518.                        params : GL.doublePtr); 
  2519.  
  2520.    procedure TexGenfv (coord  : TexCoordEnm; 
  2521.                        pname  : TexParameterVEnm; 
  2522.                        params : floatPtr); 
  2523.  
  2524.    procedure TexGeniv (coord  : TexCoordEnm; 
  2525.                        pname  : TexParameterVEnm; 
  2526.                        params : GL.intPointer); 
  2527.  
  2528.    procedure GetTexGendv (coord  : TexCoordEnm; 
  2529.                           pname  : TexParameterVEnm; 
  2530.                           params : GL.doublePtr); 
  2531.  
  2532.    procedure GetTexGenfv (coord  : TexCoordEnm; 
  2533.                           pname  : TexParameterVEnm; 
  2534.                           params : floatPtr); 
  2535.  
  2536.    procedure GetTexGeniv (coord  : TexCoordEnm; 
  2537.                           pname  : TexParameterVEnm; 
  2538.                           params : GL.intPointer); 
  2539.  
  2540.    procedure TexEnvf (target : TexEnvEnm; 
  2541.                       pname  : TexEnvParameterEnm; 
  2542.                       param  : GL.C_Float); 
  2543.  
  2544.    procedure TexEnv (target : TexEnvEnm; 
  2545.                      pname  : TexEnvParameterEnm; 
  2546.                      param  : GL.Int); 
  2547.  
  2548.    procedure TexEnvfv (target : TexEnvEnm; 
  2549.                        pname  : TexEnvParameterVEnm; 
  2550.                        params : floatPtr); 
  2551.  
  2552.    procedure TexEnviv (target : TexEnvEnm; 
  2553.                        pname  : TexEnvParameterVEnm; 
  2554.                        params : GL.intPointer); 
  2555.  
  2556.    procedure GetTexEnvfv (target : TexEnvEnm; 
  2557.                           pname  : TexEnvParameterVEnm; 
  2558.                           params : floatPtr); 
  2559.  
  2560.    procedure GetTexEnviv (target : TexEnvEnm; 
  2561.                           pname  : TexEnvParameterVEnm; 
  2562.                           params : GL.intPointer); 
  2563.  
  2564.    procedure TexParameterf (target : TargetTexEnm; 
  2565.                             pname  : TexParamEnm; 
  2566.                             param  : GL.C_Float); 
  2567.  
  2568.    procedure TexParameter (target : TargetTexEnm; 
  2569.                            pname  : TexParamEnm; 
  2570.                            param  : GL.Int); 
  2571.  
  2572.    procedure TexParameterfv (target : TargetTexEnm; 
  2573.                              pname  : TexParamVEnm; 
  2574.                              params : floatPtr); 
  2575.  
  2576.    procedure TexParameteriv (target : TargetTexEnm; 
  2577.                              pname  : TexParamVEnm; 
  2578.                              params : GL.intPointer); 
  2579.  
  2580.    procedure GetTexParameterfv (target : TargetTexEnm; 
  2581.                                 pname  : GetTexParamEnm; 
  2582.                                 params : floatPtr); 
  2583.  
  2584.    procedure GetTexParameteriv (target : TargetTexEnm; 
  2585.                                 pname  : GetTexParamEnm; 
  2586.                                 params : GL.intPointer); 
  2587.  
  2588.    procedure GetTexLevelParameterfv (target : TargetTexLevelEnm; 
  2589.                                      level  : GL.Int; 
  2590.                                      pname  : TexLevelParameterEnm; 
  2591.                                      params : floatPtr); 
  2592.  
  2593.    procedure GetTexLevelParameteriv (target : TargetTexLevelEnm; 
  2594.                                      level  : GL.Int; 
  2595.                                      pname  : TexLevelParameterEnm; 
  2596.                                      params : GL.intPointer); 
  2597.  
  2598.    procedure TexImage1D (target         : TargetTex1DEnm; 
  2599.                          level          : GL.Int; 
  2600.                          internalFormat : TexFormatEnm; 
  2601.                          width          : GL.Sizei; 
  2602.                          border         : GL.Int; 
  2603.                          format         : TexPixelFormatEnm; 
  2604.                          c_type         : PixelDataTypeEnm; 
  2605.                          pixels         : GL.pointer); 
  2606.  
  2607.    procedure TexImage2D (target         : TargetTex2DEnm; 
  2608.                          level          : GL.Int; 
  2609.                          internalFormat : TexFormatEnm; 
  2610.                          width          : GL.Sizei; 
  2611.                          height         : GL.Sizei; 
  2612.                          border         : GL.Int; 
  2613.                          format         : TexPixelFormatEnm; 
  2614.                          c_type         : PixelDataTypeEnm; 
  2615.                          pixels         : GL.pointer); 
  2616.  
  2617.    procedure GetTexImage (target : TargetTexEnm; 
  2618.                           level  : GL.Int; 
  2619.                           format : TexImageFormatEnm; 
  2620.                           c_type : PixelDataTypeEnm; 
  2621.                           pixels : GL.pointer); 
  2622.  
  2623.    procedure Gen_Textures (n        : GL.Sizei; 
  2624.                           textures : GL.uintPtr); 
  2625.  
  2626.    procedure Delete_Textures (n        : GL.Sizei; 
  2627.                              textures : GL.uintPtr); 
  2628.  
  2629.    procedure BindTexture (target      : TargetTexEnm; 
  2630.                           texture_ptr : GL.Uint); 
  2631.  
  2632.    procedure PrioritizeTextures (n          : GL.Sizei; 
  2633.                                  textures   : GL.uintPtr; 
  2634.                                  priorities : GL.clampfPtr); 
  2635.  
  2636.    function AreTexturesResident (n          : GL.Sizei; 
  2637.                                  textures   : GL.uintPtr; 
  2638.                                  residences : GL_BooleanPtr) return GL_Boolean; 
  2639.  
  2640.    function IsTexture (texture_ptr : GL.Uint) return GL_Boolean; 
  2641.  
  2642.    procedure TexSubImage1D (target  : TargetTex1DOnlyEnm; 
  2643.                             level   : GL.Int; 
  2644.                             xoffset : GL.Int; 
  2645.                             width   : GL.Sizei; 
  2646.                             format  : TexPixelFormatEnm; 
  2647.                             c_type  : PixelDataTypeEnm; 
  2648.                             pixels  : GL.pointer); 
  2649.  
  2650.    procedure TexSubImage2D (target  : TargetTex2DOnlyEnm; 
  2651.                             level   : GL.Int; 
  2652.                             xoffset : GL.Int; 
  2653.                             yoffset : GL.Int; 
  2654.                             width   : GL.Sizei; 
  2655.                             height  : GL.Sizei; 
  2656.                             format  : TexPixelFormatEnm; 
  2657.                             c_type  : PixelDataTypeEnm; 
  2658.                             pixels  : GL.pointer); 
  2659.  
  2660.    procedure CopyTexImage1D (target         : TargetTex1DOnlyEnm; 
  2661.                              level          : GL.Int; 
  2662.                              internalformat : TexFormatEnm; 
  2663.                              x              : GL.Int; 
  2664.                              y              : GL.Int; 
  2665.                              width          : GL.Sizei; 
  2666.                              border         : GL.Int); 
  2667.  
  2668.    procedure CopyTexImage2D (target         : TargetTex2DOnlyEnm; 
  2669.                              level          : GL.Int; 
  2670.                              internalformat : TexFormatEnm; 
  2671.                              x              : GL.Int; 
  2672.                              y              : GL.Int; 
  2673.                              width          : GL.Sizei; 
  2674.                              height         : GL.Sizei; 
  2675.                              border         : GL.Int); 
  2676.  
  2677.    procedure CopyTexSubImage1D (target  : TargetTex1DOnlyEnm; 
  2678.                                 level   : GL.Int; 
  2679.                                 xoffset : GL.Int; 
  2680.                                 x       : GL.Int; 
  2681.                                 y       : GL.Int; 
  2682.                                 width   : GL.Sizei); 
  2683.  
  2684.    procedure CopyTexSubImage2D (target  : TargetTex2DOnlyEnm; 
  2685.                                 level   : GL.Int; 
  2686.                                 xoffset : GL.Int; 
  2687.                                 yoffset : GL.Int; 
  2688.                                 x       : GL.Int; 
  2689.                                 y       : GL.Int; 
  2690.                                 width   : GL.Sizei; 
  2691.                                 height  : GL.Sizei); 
  2692.  
  2693.    procedure TexImage3DEXT (target         : TargetTex3DEnm; 
  2694.                             level          : GL.Int; 
  2695.                             internalFormat : TexPixelFormatEnm; 
  2696.                             width_3d       : GL.Sizei; 
  2697.                             height_3d      : GL.Sizei; 
  2698.                             depth_3d       : GL.Sizei; 
  2699.                             border         : GL.Int; 
  2700.                             format         : TexPixelFormatEnm; 
  2701.                             c_type         : PixelDataTypeEnm; 
  2702.                             pixels         : GL.pointer); 
  2703.  
  2704.    procedure TexSubImage3DEXT (target    : TargetTex3DOnlyEnm; 
  2705.                                level     : GL.Int; 
  2706.                                xoffset   : GL.Int; 
  2707.                                yoffset   : GL.Int; 
  2708.                                zoffset   : GL.Int; 
  2709.                                width_3d  : GL.Sizei; 
  2710.                                height_3d : GL.Sizei; 
  2711.                                depth_3d  : GL.Sizei; 
  2712.                                format    : TexPixelFormatEnm; 
  2713.                                c_type    : PixelDataTypeEnm; 
  2714.                                pixels    : GL.pointer); 
  2715.  
  2716.    procedure CopyTexSubImage3DEXT (target  : TargetTex3DOnlyEnm; 
  2717.                                    level   : GL.Int; 
  2718.                                    xoffset : GL.Int; 
  2719.                                    yoffset : GL.Int; 
  2720.                                    zoffset : GL.Int; 
  2721.                                    x       : GL.Int; 
  2722.                                    y       : GL.Int; 
  2723.                                    width   : GL.Sizei; 
  2724.                                    height  : GL.Sizei); 
  2725.  
  2726.    -- Evaluators 
  2727.    type Map1TargetEnm is 
  2728.      ( 
  2729.       MAP1_COLOR_4, 
  2730.       MAP1_INDEX, 
  2731.       MAP1_NORMAL, 
  2732.       MAP1_TEXTURE_COORD_1, 
  2733.       MAP1_TEXTURE_COORD_2, 
  2734.       MAP1_TEXTURE_COORD_3, 
  2735.       MAP1_TEXTURE_COORD_4, 
  2736.       MAP1_VERTEX_3, 
  2737.       MAP1_VERTEX_4 
  2738.      ); 
  2739.    for Map1TargetEnm use 
  2740.      ( 
  2741.       MAP1_COLOR_4                            => 16#0D90#, 
  2742.       MAP1_INDEX                              => 16#0D91#, 
  2743.       MAP1_NORMAL                             => 16#0D92#, 
  2744.       MAP1_TEXTURE_COORD_1                    => 16#0D93#, 
  2745.       MAP1_TEXTURE_COORD_2                    => 16#0D94#, 
  2746.       MAP1_TEXTURE_COORD_3                    => 16#0D95#, 
  2747.       MAP1_TEXTURE_COORD_4                    => 16#0D96#, 
  2748.       MAP1_VERTEX_3                           => 16#0D97#, 
  2749.       MAP1_VERTEX_4                           => 16#0D98# 
  2750.      ); 
  2751.    for Map1TargetEnm'Size use GL.enum'Size; 
  2752.  
  2753.    type Map2TargetEnm is 
  2754.      ( 
  2755.       MAP2_COLOR_4, 
  2756.       MAP2_INDEX, 
  2757.       MAP2_NORMAL, 
  2758.       MAP2_TEXTURE_COORD_1, 
  2759.       MAP2_TEXTURE_COORD_2, 
  2760.       MAP2_TEXTURE_COORD_3, 
  2761.       MAP2_TEXTURE_COORD_4, 
  2762.       MAP2_VERTEX_3, 
  2763.       MAP2_VERTEX_4 
  2764.      ); 
  2765.    for Map2TargetEnm use 
  2766.      ( 
  2767.       MAP2_COLOR_4                            => 16#0DB0#, 
  2768.       MAP2_INDEX                              => 16#0DB1#, 
  2769.       MAP2_NORMAL                             => 16#0DB2#, 
  2770.       MAP2_TEXTURE_COORD_1                    => 16#0DB3#, 
  2771.       MAP2_TEXTURE_COORD_2                    => 16#0DB4#, 
  2772.       MAP2_TEXTURE_COORD_3                    => 16#0DB5#, 
  2773.       MAP2_TEXTURE_COORD_4                    => 16#0DB6#, 
  2774.       MAP2_VERTEX_3                           => 16#0DB7#, 
  2775.       MAP2_VERTEX_4                           => 16#0DB8# 
  2776.      ); 
  2777.    for Map2TargetEnm'Size use GL.enum'Size; 
  2778.  
  2779.    type MapTargetEnm is 
  2780.      ( 
  2781.       MAP1_COLOR_4, 
  2782.       MAP1_INDEX, 
  2783.       MAP1_NORMAL, 
  2784.       MAP1_TEXTURE_COORD_1, 
  2785.       MAP1_TEXTURE_COORD_2, 
  2786.       MAP1_TEXTURE_COORD_3, 
  2787.       MAP1_TEXTURE_COORD_4, 
  2788.       MAP1_VERTEX_3, 
  2789.       MAP1_VERTEX_4, 
  2790.       MAP2_COLOR_4, 
  2791.       MAP2_INDEX, 
  2792.       MAP2_NORMAL, 
  2793.       MAP2_TEXTURE_COORD_1, 
  2794.       MAP2_TEXTURE_COORD_2, 
  2795.       MAP2_TEXTURE_COORD_3, 
  2796.       MAP2_TEXTURE_COORD_4, 
  2797.       MAP2_VERTEX_3, 
  2798.       MAP2_VERTEX_4 
  2799.      ); 
  2800.    for MapTargetEnm use 
  2801.      ( 
  2802.       MAP1_COLOR_4                            => 16#0D90#, 
  2803.       MAP1_INDEX                              => 16#0D91#, 
  2804.       MAP1_NORMAL                             => 16#0D92#, 
  2805.       MAP1_TEXTURE_COORD_1                    => 16#0D93#, 
  2806.       MAP1_TEXTURE_COORD_2                    => 16#0D94#, 
  2807.       MAP1_TEXTURE_COORD_3                    => 16#0D95#, 
  2808.       MAP1_TEXTURE_COORD_4                    => 16#0D96#, 
  2809.       MAP1_VERTEX_3                           => 16#0D97#, 
  2810.       MAP1_VERTEX_4                           => 16#0D98#, 
  2811.       MAP2_COLOR_4                            => 16#0DB0#, 
  2812.       MAP2_INDEX                              => 16#0DB1#, 
  2813.       MAP2_NORMAL                             => 16#0DB2#, 
  2814.       MAP2_TEXTURE_COORD_1                    => 16#0DB3#, 
  2815.       MAP2_TEXTURE_COORD_2                    => 16#0DB4#, 
  2816.       MAP2_TEXTURE_COORD_3                    => 16#0DB5#, 
  2817.       MAP2_TEXTURE_COORD_4                    => 16#0DB6#, 
  2818.       MAP2_VERTEX_3                           => 16#0DB7#, 
  2819.       MAP2_VERTEX_4                           => 16#0DB8# 
  2820.      ); 
  2821.    for MapTargetEnm'Size use GL.enum'Size; 
  2822.  
  2823.    type MapQueryEnm is 
  2824.      ( 
  2825.       COEFF, 
  2826.       ORDER, 
  2827.       DOMAIN 
  2828.      ); 
  2829.    for MapQueryEnm use 
  2830.      ( 
  2831.       COEFF   => 16#0A00#, 
  2832.       ORDER   => 16#0A01#, 
  2833.       DOMAIN  => 16#0A02# 
  2834.      ); 
  2835.    for MapQueryEnm'Size use GL.enum'Size; 
  2836.  
  2837.    type Mesh1ModeEnm is 
  2838.      ( 
  2839.       POINT, 
  2840.       LINE 
  2841.      ); 
  2842.    for Mesh1ModeEnm use 
  2843.      ( 
  2844.       POINT => 16#1B00#, 
  2845.       LINE  => 16#1B01# 
  2846.      ); 
  2847.    for Mesh1ModeEnm'Size use GL.enum'Size; 
  2848.  
  2849.    type Mesh2ModeEnm is 
  2850.      ( 
  2851.       POINT, 
  2852.       LINE, 
  2853.       FILL 
  2854.      ); 
  2855.    for Mesh2ModeEnm use 
  2856.      ( 
  2857.       POINT => 16#1B00#, 
  2858.       LINE  => 16#1B01#, 
  2859.       FILL  => 16#1B02# 
  2860.      ); 
  2861.    for Mesh2ModeEnm'Size use GL.enum'Size; 
  2862.  
  2863.    procedure Map1d (target     : Map1TargetEnm; 
  2864.                     u1         : GL.Double; 
  2865.                     u2         : GL.Double; 
  2866.                     stride     : GL.Int; 
  2867.                     map_order  : GL.Int; 
  2868.                     map_points : GL.doublePtr); 
  2869.  
  2870.    procedure Map1f (target : Map1TargetEnm; 
  2871.                     u1         : GL.C_Float; 
  2872.                     u2         : GL.C_Float; 
  2873.                     stride     : GL.Int; 
  2874.                     map_order  : GL.Int; 
  2875.                     map_points : floatPtr); 
  2876.  
  2877.    procedure Map2d (target     : Map2TargetEnm; 
  2878.                     u1         : GL.Double; 
  2879.                     u2         : GL.Double; 
  2880.                     ustride    : GL.Int; 
  2881.                     uorder     : GL.Int; 
  2882.                     v1         : GL.Double; 
  2883.                     v2         : GL.Double; 
  2884.                     vstride    : GL.Int; 
  2885.                     vorder     : GL.Int; 
  2886.                     map_points : GL.doublePtr); 
  2887.  
  2888.    procedure Map2f (target     : Map2TargetEnm; 
  2889.                     u1         : GL.C_Float; 
  2890.                     u2         : GL.C_Float; 
  2891.                     ustride    : GL.Int; 
  2892.                     uorder     : GL.Int; 
  2893.                     v1         : GL.C_Float; 
  2894.                     v2         : GL.C_Float; 
  2895.                     vstride    : GL.Int; 
  2896.                     vorder     : GL.Int; 
  2897.                     map_points : floatPtr); 
  2898.  
  2899.    procedure GetMapdv (target : MapTargetEnm; 
  2900.                        query  : MapQueryEnm; 
  2901.                        v      : GL.doublePtr); 
  2902.  
  2903.    procedure GetMapfv (target : MapTargetEnm; 
  2904.                        query  : MapQueryEnm; 
  2905.                        v      : floatPtr); 
  2906.  
  2907.    procedure GetMapiv (target : MapTargetEnm; 
  2908.                        query  : MapQueryEnm; 
  2909.                        v      : GL.intPointer); 
  2910.  
  2911.    procedure EvalPoint1 (i : GL.Int); 
  2912.  
  2913.    procedure EvalPoint2 (i : GL.Int; 
  2914.                          j : GL.Int); 
  2915.  
  2916.    procedure EvalMesh1 (mode : Mesh1ModeEnm; 
  2917.                         i1   : GL.Int; 
  2918.                         i2   : GL.Int); 
  2919.  
  2920.    procedure EvalMesh2 (mode : Mesh2ModeEnm; 
  2921.                         i1   : GL.Int; 
  2922.                         i2   : GL.Int; 
  2923.                         j1   : GL.Int; 
  2924.                         j2   : GL.Int); 
  2925.  
  2926.    procedure EvalCoord1d (u : GL.Double); 
  2927.  
  2928.    procedure EvalCoord1f (u : GL.C_Float); 
  2929.  
  2930.    procedure EvalCoord1dv (u : GL.doublePtr); 
  2931.  
  2932.    procedure EvalCoord1fv (u : floatPtr); 
  2933.  
  2934.    procedure EvalCoord2d (u : GL.Double; 
  2935.                           v : GL.Double); 
  2936.  
  2937.    procedure EvalCoord2f (u : GL.C_Float; 
  2938.                           v : GL.C_Float); 
  2939.  
  2940.    procedure EvalCoord2dv (u : GL.doublePtr); 
  2941.  
  2942.    procedure EvalCoord2fv (u : floatPtr); 
  2943.  
  2944.    procedure MapGrid1d (un : GL.Int; 
  2945.                         u1 : GL.Double; 
  2946.                         u2 : GL.Double); 
  2947.  
  2948.    procedure MapGrid1f (un : GL.Int; 
  2949.                         u1 : GL.C_Float; 
  2950.                         u2 : GL.C_Float); 
  2951.  
  2952.    procedure MapGrid2d (un : GL.Int; 
  2953.                         u1 : GL.Double; 
  2954.                         u2 : GL.Double; 
  2955.                         vn : GL.Int; 
  2956.                         v1 : GL.Double; 
  2957.                         v2 : GL.Double); 
  2958.  
  2959.    procedure MapGrid2f (un : GL.Int; 
  2960.                         u1 : GL.C_Float; 
  2961.                         u2 : GL.C_Float; 
  2962.                         vn : GL.Int; 
  2963.                         v1 : GL.C_Float; 
  2964.                         v2 : GL.C_Float); 
  2965.  
  2966.    -- Fog 
  2967.    type FogParameterEnm is 
  2968.      ( 
  2969.       FOG_INDEX, 
  2970.       FOG_DENSITY, 
  2971.       FOG_START, 
  2972.       FOG_END, 
  2973.       FOG_MODE 
  2974.      ); 
  2975.    for FogParameterEnm use 
  2976.      ( 
  2977.       FOG_INDEX                               => 16#0B61#, 
  2978.       FOG_DENSITY                             => 16#0B62#, 
  2979.       FOG_START                               => 16#0B63#, 
  2980.       FOG_END                                 => 16#0B64#, 
  2981.       FOG_MODE                                => 16#0B65# 
  2982.      ); 
  2983.    for FogParameterEnm'Size use GL.enum'Size; 
  2984.  
  2985.    type FogParameterVEnm is 
  2986.      ( 
  2987.       FOG_INDEX, 
  2988.       FOG_DENSITY, 
  2989.       FOG_START, 
  2990.       FOG_END, 
  2991.       FOG_MODE, 
  2992.       FOG_COLOR 
  2993.      ); 
  2994.    for FogParameterVEnm use 
  2995.      ( 
  2996.       FOG_INDEX                               => 16#0B61#, 
  2997.       FOG_DENSITY                             => 16#0B62#, 
  2998.       FOG_START                               => 16#0B63#, 
  2999.       FOG_END                                 => 16#0B64#, 
  3000.       FOG_MODE                                => 16#0B65#, 
  3001.       FOG_COLOR                               => 16#0B66# 
  3002.      ); 
  3003.    for FogParameterVEnm'Size use GL.enum'Size; 
  3004.  
  3005.    -- Fog attenuation modes 
  3006.    LINEAR  : constant := 16#2601#; 
  3007.    EXP1    : constant := 16#0800#; 
  3008.    EXP2    : constant := 16#0801#; 
  3009.    -- EXP1 : original was EXP, confused with the Exp function (29 - May - 2006) 
  3010.  
  3011.    procedure Fogf (pname : FogParameterEnm; 
  3012.                    param : GL.C_Float); 
  3013.  
  3014.    procedure Fogi (pname : FogParameterEnm; 
  3015.                    param : GL.Int); 
  3016.  
  3017.    procedure Fogfv (pname  : FogParameterVEnm; 
  3018.                     params : floatPtr); 
  3019.  
  3020.    procedure Fogiv (pname  : FogParameterVEnm; 
  3021.                     params : GL.intPointer); 
  3022.  
  3023.    -- Feedback 
  3024.    type FeedbackModeEnm is 
  3025.      ( 
  3026.       GL_2D, 
  3027.       GL_3D, 
  3028.       GL_3D_COLOR, 
  3029.       GL_3D_COLOR_TEXTURE, 
  3030.       GL_4D_COLOR_TEXTURE 
  3031.      ); 
  3032.    for FeedbackModeEnm use 
  3033.      ( 
  3034.       GL_2D                                      => 16#0600#, 
  3035.       GL_3D                                      => 16#0601#, 
  3036.       GL_3D_COLOR                                => 16#0602#, 
  3037.       GL_3D_COLOR_TEXTURE                        => 16#0603#, 
  3038.       GL_4D_COLOR_TEXTURE                        => 16#0604# 
  3039.      ); 
  3040.    for FeedbackModeEnm'Size use GL.enum'Size; 
  3041.  
  3042.    -- Feedback tokens 
  3043.    POINT_TOKEN                  : constant := 16#0701#; 
  3044.    LINE_TOKEN                   : constant := 16#0702#; 
  3045.    LINE_RESET_TOKEN             : constant := 16#0707#; 
  3046.    POLYGON_TOKEN                : constant := 16#0703#; 
  3047.    BITMAP_TOKEN                 : constant := 16#0704#; 
  3048.    DRAW_PIXEL_TOKEN             : constant := 16#0705#; 
  3049.    COPY_PIXEL_TOKEN             : constant := 16#0706#; 
  3050.    PASS_THROUGH_TOKEN           : constant := 16#0700#; 
  3051.    FEEDBACK_BUFFER_SIZE         : constant := 16#0DF1#; 
  3052.    FEEDBACK_BUFFER_TYPE         : constant := 16#0DF2#; 
  3053.  
  3054.    procedure FeedbackBuffer (size   : GL.Sizei; 
  3055.                              c_type : FeedbackModeEnm; 
  3056.                              buffer : floatPtr); 
  3057.  
  3058.    procedure PassThrough (token : GL.C_Float); 
  3059.  
  3060.    -- Color tables (extension) 
  3061.    type ColorTableTargetEnm is 
  3062.      ( 
  3063.       TEXTURE_1D, 
  3064.       TEXTURE_2D, 
  3065.       PROXY_TEXTURE_1D, 
  3066.       PROXY_TEXTURE_2D, 
  3067.       TEXTURE_3D_EXT, 
  3068.       PROXY_TEXTURE_3D_EXT, 
  3069.       SHARED_TEXTURE_PALETTE_EXT 
  3070.  
  3071.      ); 
  3072.    for ColorTableTargetEnm use 
  3073.      ( 
  3074.       TEXTURE_1D                              => 16#0DE0#, 
  3075.       TEXTURE_2D                              => 16#0DE1#, 
  3076.       PROXY_TEXTURE_1D                        => 16#8063#, 
  3077.       PROXY_TEXTURE_2D                        => 16#8064#, 
  3078.       TEXTURE_3D_EXT                          => 16#806F#, 
  3079.       PROXY_TEXTURE_3D_EXT                    => 16#8070#, 
  3080.       SHARED_TEXTURE_PALETTE_EXT              => 16#81FB# 
  3081.      ); 
  3082.    for ColorTableTargetEnm'Size use GL.enum'Size; 
  3083.  
  3084.    type GetColorTableTargetEnm is 
  3085.      ( 
  3086.       TEXTURE_1D, 
  3087.       TEXTURE_2D, 
  3088.       TEXTURE_3D_EXT, 
  3089.       SHARED_TEXTURE_PALETTE_EXT 
  3090.  
  3091.      ); 
  3092.    for GetColorTableTargetEnm use 
  3093.      ( 
  3094.       TEXTURE_1D                              => 16#0DE0#, 
  3095.       TEXTURE_2D                              => 16#0DE1#, 
  3096.       TEXTURE_3D_EXT                          => 16#806F#, 
  3097.       SHARED_TEXTURE_PALETTE_EXT              => 16#81FB# 
  3098.      ); 
  3099.    for GetColorTableTargetEnm'Size use GL.enum'Size; 
  3100.  
  3101.    type ColorTableParameterEnm is 
  3102.      ( 
  3103.       COLOR_TABLE_FORMAT_EXT, 
  3104.       COLOR_TABLE_WIDTH_EXT, 
  3105.       COLOR_TABLE_RED_SIZE_EXT, 
  3106.       COLOR_TABLE_GREEN_SIZE_EXT, 
  3107.       COLOR_TABLE_BLUE_SIZE_EXT, 
  3108.       COLOR_TABLE_ALPHA_SIZE_EXT, 
  3109.       COLOR_TABLE_LUMINANCE_SIZE_EXT, 
  3110.       COLOR_TABLE_INTENSITY_SIZE_EXT 
  3111.      ); 
  3112.    for ColorTableParameterEnm use 
  3113.      ( 
  3114.       COLOR_TABLE_FORMAT_EXT                  => 16#80D8#, 
  3115.       COLOR_TABLE_WIDTH_EXT                   => 16#80D9#, 
  3116.       COLOR_TABLE_RED_SIZE_EXT                => 16#80DA#, 
  3117.       COLOR_TABLE_GREEN_SIZE_EXT              => 16#80DB#, 
  3118.       COLOR_TABLE_BLUE_SIZE_EXT               => 16#80DC#, 
  3119.       COLOR_TABLE_ALPHA_SIZE_EXT              => 16#80DD#, 
  3120.       COLOR_TABLE_LUMINANCE_SIZE_EXT          => 16#80DE#, 
  3121.       COLOR_TABLE_INTENSITY_SIZE_EXT          => 16#80DF# 
  3122.      ); 
  3123.    for ColorTableParameterEnm'Size use GL.enum'Size; 
  3124.  
  3125.    procedure ColorTableEXT (target         : ColorTableTargetEnm; 
  3126.                             internalformat : TexFormatEnm; 
  3127.                             width          : GL.Sizei; 
  3128.                             format         : TexPixelFormatEnm; 
  3129.                             c_type         : PixelDataTypeEnm; 
  3130.                             table          : GL.pointer); 
  3131.  
  3132.    procedure ColorSubTableEXT (target : ColorTableTargetEnm; 
  3133.                                start  : GL.Sizei; 
  3134.                                count  : GL.Sizei; 
  3135.                                format : TexPixelFormatEnm; 
  3136.                                c_type : PixelDataTypeEnm; 
  3137.                                data   : GL.pointer); 
  3138.  
  3139.    procedure GetColorTableEXT (target : GetColorTableTargetEnm; 
  3140.                                format : TexPixelFormatEnm; 
  3141.                                c_type : PixelDataTypeEnm; 
  3142.                                table  : GL.pointer); 
  3143.  
  3144.    procedure GetColorTableParameterfvEXT (target : GetColorTableTargetEnm; 
  3145.                                           pname  : ColorTableParameterEnm; 
  3146.                                           params : floatPtr); 
  3147.  
  3148.    procedure GetColorTableParameterivEXT (target : GetColorTableTargetEnm; 
  3149.                                           pname  : ColorTableParameterEnm; 
  3150.                                           params : GL.intPointer); 
  3151.  
  3152.    -- Point parameters (extension) 
  3153.    type PointParameterEnm is 
  3154.      ( 
  3155.       POINT_SIZE_MIN_EXT, 
  3156.       POINT_SIZE_MAX_EXT, 
  3157.       POINT_FADE_THRESHOLD_SIZE_EXT 
  3158.      ); 
  3159.    for PointParameterEnm use 
  3160.      ( 
  3161.       POINT_SIZE_MIN_EXT                      => 16#8126#, 
  3162.       POINT_SIZE_MAX_EXT                      => 16#8127#, 
  3163.       POINT_FADE_THRESHOLD_SIZE_EXT           => 16#8128# 
  3164.      ); 
  3165.    for PointParameterEnm'Size use GL.enum'Size; 
  3166.  
  3167.    type PointParameterVEnm is 
  3168.      ( 
  3169.       POINT_SIZE_MIN_EXT, 
  3170.       POINT_SIZE_MAX_EXT, 
  3171.       POINT_FADE_THRESHOLD_SIZE_EXT, 
  3172.       DISTANCE_ATTENUATION_EXT 
  3173.      ); 
  3174.    for PointParameterVEnm use 
  3175.      ( 
  3176.       POINT_SIZE_MIN_EXT                      => 16#8126#, 
  3177.       POINT_SIZE_MAX_EXT                      => 16#8127#, 
  3178.       POINT_FADE_THRESHOLD_SIZE_EXT           => 16#8128#, 
  3179.       DISTANCE_ATTENUATION_EXT                => 16#8129# 
  3180.      ); 
  3181.    for PointParameterVEnm'Size use GL.enum'Size; 
  3182.  
  3183.    procedure PointParameterfEXT (pname : PointParameterEnm; 
  3184.                                  param : GL.C_Float); 
  3185.  
  3186.    procedure PointParameterfvEXT (pname  : PointParameterVEnm; 
  3187.                                   params : floatPtr); 
  3188.  
  3189.    -- Clears 
  3190.    procedure ClearIndex (c : GL.C_Float); 
  3191.  
  3192.    procedure ClearColor (red   : GL.Clampf; 
  3193.                          green : GL.Clampf; 
  3194.                          blue  : GL.Clampf; 
  3195.                          alpha : GL.Clampf); 
  3196.  
  3197.    procedure Clear (mask : Bitfield); 
  3198.  
  3199.    procedure ClearDepth (clear_depth : GL.Clampd); 
  3200.  
  3201.    procedure ClearAccum (red   : GL.C_Float; 
  3202.                          green : GL.C_Float; 
  3203.                          blue  : GL.C_Float; 
  3204.                          alpha : GL.C_Float); 
  3205.  
  3206.    -- Masks 
  3207.    procedure IndexMask (mask : GL.Uint); 
  3208.  
  3209.    procedure ColorMask (red   : GL_Boolean; 
  3210.                         green : GL_Boolean; 
  3211.                         blue  : GL_Boolean; 
  3212.                         alpha : GL_Boolean); 
  3213.  
  3214.    -- Drawing parameters 
  3215.    procedure PointSize (size : GL.C_Float); 
  3216.  
  3217.    procedure LineWidth (width : GL.C_Float); 
  3218.  
  3219.    procedure LineStipple (factor  : GL.Int; 
  3220.                           pattern : GL.Ushort); 
  3221.  
  3222.    procedure PolygonOffset (factor : GL.C_Float; 
  3223.                             units  : GL.C_Float); 
  3224.  
  3225.    procedure PolygonStipple (mask : ubytePtr); 
  3226.  
  3227.    procedure GetPolygonStipple (mask : ubytePtr); 
  3228.  
  3229.    procedure EdgeFlag (flag : GL_Boolean); 
  3230.  
  3231.    procedure EdgeFlagv (flag : GL_BooleanPtr); 
  3232.  
  3233.    procedure Scissor (x      : GL.Int; 
  3234.                       y      : GL.Int; 
  3235.                       width  : GL.Sizei; 
  3236.                       height : GL.Sizei); 
  3237.  
  3238.    -- Atribute stacks 
  3239.    procedure PushAttrib (mask : Bitfield); 
  3240.  
  3241.    procedure PopAttrib; 
  3242.  
  3243.    procedure PushClientAttrib (mask : Bitfield); 
  3244.  
  3245.    procedure PopClientAttrib; 
  3246.  
  3247.    -- Pipeline control 
  3248.    procedure Finish; 
  3249.  
  3250.    procedure Flush; 
  3251.  
  3252.    procedure Depth_Mask (flag : GL_Boolean); 
  3253.  
  3254.    procedure DepthRange (near_val : GL.Clampd; 
  3255.                          far_val  : GL.Clampd); 
  3256.  
  3257.    -- Projections 
  3258.    procedure Ortho (ortho_left  : GL.Double; 
  3259.                     ortho_right : GL.Double; 
  3260.                     bottom      : GL.Double; 
  3261.                     top         : GL.Double; 
  3262.                     near_val    : GL.Double; 
  3263.                     far_val     : GL.Double); 
  3264.  
  3265.    procedure Frustum (frustum_left  : GL.Double; 
  3266.                       frustum_right : GL.Double; 
  3267.                       bottom        : GL.Double; 
  3268.                       top           : GL.Double; 
  3269.                       near_val      : GL.Double; 
  3270.                       far_val       : GL.Double); 
  3271.  
  3272.    procedure Viewport (x      : GL.Int; 
  3273.                        y      : GL.Int; 
  3274.                        width  : GL.Sizei; 
  3275.                        height : GL.Sizei); 
  3276.  
  3277.    -- Matrix stacks 
  3278.    procedure PushMatrix; 
  3279.  
  3280.    procedure PopMatrix; 
  3281.  
  3282.    procedure LoadIdentity; 
  3283.  
  3284.    procedure LoadMatrixd (m : GL.doublePtr); 
  3285.  
  3286.    procedure LoadMatrixf (m : floatPtr); 
  3287.  
  3288.    procedure MultMatrixd (m : GL.doublePtr); 
  3289.  
  3290.    procedure MultMatrixf (m : floatPtr); 
  3291.  
  3292.    -- Transformations 
  3293.    procedure Rotate (angle : GL.Double; 
  3294.                      x     : GL.Double; 
  3295.                      y     : GL.Double; 
  3296.                      z     : GL.Double); 
  3297.  
  3298.    procedure Rotate_f (angle : GL.C_Float; 
  3299.                        x     : GL.C_Float; 
  3300.                        y     : GL.C_Float; 
  3301.                        z     : GL.C_Float); 
  3302.  
  3303.    procedure Scale (x, y, z : GL.Double); 
  3304.    procedure Scale_f (x, y, z : GL.C_Float); 
  3305.  
  3306.    procedure Translate (x, y, z : GL.Double); 
  3307.    procedure Translate_f (x, y, z : GL.C_Float); 
  3308.    procedure Translate (v : Double_Vector_3D); 
  3309.    pragma Inline (Translate); 
  3310.  
  3311.    -- Specify vertices 
  3312.    procedure Vertex (x, y : GL.Double); 
  3313.    procedure Vertex_f (x, y : GL.C_Float); 
  3314.  
  3315.    procedure Vertex (x, y : GL.Int); 
  3316.    procedure Vertex_s (x, y : GL.Short); 
  3317.  
  3318.    procedure Vertex (x, y, z : GL.Double); 
  3319.    procedure Vertex_f (x, y, z : GL.C_Float); 
  3320.  
  3321.    procedure Vertex (x, y, z : GL.Int); 
  3322.    procedure Vertex_s (x, y, z : GL.Short); 
  3323.  
  3324.    procedure Vertex (x, y, z, w : GL.Double); 
  3325.    procedure Vertex_f (x, y, z, w : GL.C_Float); 
  3326.  
  3327.    procedure Vertex (x, y, z, w : GL.Int); 
  3328.    procedure Vertex_s (x, y, z, w : GL.Short); 
  3329.  
  3330.    procedure Vertex (v : Double_Vector_3D); 
  3331.    pragma Inline (Vertex); 
  3332.  
  3333.    procedure Vertex2dv (v : GL.doublePtr); 
  3334.  
  3335.    procedure Vertex2fv (v : floatPtr); 
  3336.  
  3337.    procedure Vertex2iv (v : GL.intPointer); 
  3338.  
  3339.    procedure Vertex2sv (v : GL.shortPtr); 
  3340.  
  3341.    procedure Vertex3dv (v : GL.doublePtr); 
  3342.  
  3343.    procedure Vertex3fv (v : floatPtr); 
  3344.  
  3345.    procedure Vertex3iv (v : GL.intPointer); 
  3346.  
  3347.    procedure Vertex3sv (v : GL.shortPtr); 
  3348.  
  3349.    procedure Vertex4dv (v : GL.doublePtr); 
  3350.  
  3351.    procedure Vertex4fv (v : floatPtr); 
  3352.  
  3353.    procedure Vertex4iv (v : GL.intPointer); 
  3354.  
  3355.    procedure Vertex4sv (v : GL.shortPtr); 
  3356.  
  3357.    -- Specify normal vectors 
  3358.  
  3359.    procedure Normal (x, y, z : GL.Double); 
  3360.    procedure Normal_f (x, y, z : GL.C_Float); 
  3361.    procedure Normal (x, y, z : GL.Int); 
  3362.    procedure Normal_b (x, y, z : GL.Byte); 
  3363.    procedure Normal_s (x, y, z : GL.Short); 
  3364.  
  3365.    procedure Normal (v : Double_Vector_3D); 
  3366.    pragma Inline (Normal); 
  3367.  
  3368.    procedure Normal3bv (v : GL.bytePtr); 
  3369.  
  3370.    procedure Normal3dv (v : GL.doublePtr); 
  3371.  
  3372.    procedure Normal3fv (v : floatPtr); 
  3373.  
  3374.    procedure Normal3iv (v : GL.intPointer); 
  3375.  
  3376.    procedure Normal3sv (v : GL.shortPtr); 
  3377.  
  3378.    -- Indexed color 
  3379.    procedure Indexd (c : GL.Double); 
  3380.  
  3381.    procedure Indexf (c : GL.C_Float); 
  3382.  
  3383.    procedure Indexi (c : GL.Int); 
  3384.  
  3385.    procedure Indexs (c : GL.Short); 
  3386.  
  3387.    procedure Indexub (c : GL.Ubyte); 
  3388.  
  3389.    procedure Indexdv (c : GL.doublePtr); 
  3390.  
  3391.    procedure Indexfv (c : floatPtr); 
  3392.  
  3393.    procedure Indexiv (c : GL.intPointer); 
  3394.  
  3395.    procedure Indexsv (c : GL.shortPtr); 
  3396.  
  3397.    procedure Indexubv (c : ubytePtr); 
  3398.  
  3399.    -- Component color 
  3400.    procedure Color3b (red   : GL.Byte; 
  3401.                       green : GL.Byte; 
  3402.                       blue  : GL.Byte); 
  3403.  
  3404.    procedure Color (red, green, blue : GL.Double); 
  3405.    procedure Color_f (red, green, blue  : GL.C_Float); 
  3406.    procedure Color (red, green, blue  : GL.Int); 
  3407.    procedure Color_s (red, green, blue  : GL.Short); 
  3408.  
  3409.    procedure Color3ub (red   : GL.Ubyte; 
  3410.                        green : GL.Ubyte; 
  3411.                        blue  : GL.Ubyte); 
  3412.  
  3413.    procedure Color3ui (red   : GL.Uint; 
  3414.                        green : GL.Uint; 
  3415.                        blue  : GL.Uint); 
  3416.  
  3417.    procedure Color3us (red   : GL.Ushort; 
  3418.                        green : GL.Ushort; 
  3419.                        blue  : GL.Ushort); 
  3420.  
  3421.    procedure Color4b (red   : GL.Byte; 
  3422.                       green : GL.Byte; 
  3423.                       blue  : GL.Byte; 
  3424.                       alpha : GL.Byte); 
  3425.  
  3426.    procedure Color (red, green, blue, alpha : GL.Double); 
  3427.    procedure Color_f (red, green, blue, alpha : GL.C_Float); 
  3428.    procedure Color (red, green, blue, alpha : GL.Int); 
  3429.    procedure Color_s (red, green, blue, alpha : GL.Short); 
  3430.  
  3431.    procedure Color4ub (red   : GL.Ubyte; 
  3432.                        green : GL.Ubyte; 
  3433.                        blue  : GL.Ubyte; 
  3434.                        alpha : GL.Ubyte); 
  3435.  
  3436.    procedure Color4ui (red   : GL.Uint; 
  3437.                        green : GL.Uint; 
  3438.                        blue  : GL.Uint; 
  3439.                        alpha : GL.Uint); 
  3440.  
  3441.    procedure Color4us (red   : GL.Ushort; 
  3442.                        green : GL.Ushort; 
  3443.                        blue  : GL.Ushort; 
  3444.                        alpha : GL.Ushort); 
  3445.  
  3446.    procedure Color3bv (v : GL.bytePtr); 
  3447.  
  3448.    procedure Color3dv (v : GL.doublePtr); 
  3449.    procedure Color (v : RGB_Color); 
  3450.  
  3451.    procedure Color3fv (v : GL.floatPtr); 
  3452.  
  3453.    procedure Color3iv (v : GL.intPointer); 
  3454.  
  3455.    procedure Color3sv (v : GL.shortPtr); 
  3456.  
  3457.    procedure Color3ubv (v : GL.ubytePtr); 
  3458.  
  3459.    procedure Color3uiv (v : GL.uintPtr); 
  3460.  
  3461.    procedure Color3usv (v : GL.ushortPtr); 
  3462.  
  3463.    procedure Color4bv (v : GL.bytePtr); 
  3464.  
  3465.    procedure Color4dv (v : GL.doublePtr); 
  3466.    procedure Color (v : RGBA_Color); 
  3467.  
  3468.    procedure Color4fv (v : GL.floatPtr); 
  3469.  
  3470.    procedure Color4iv (v : GL.intPointer); 
  3471.  
  3472.    procedure Color4sv (v : GL.shortPtr); 
  3473.  
  3474.    procedure Color4ubv (v : GL.ubytePtr); 
  3475.  
  3476.    procedure Color4uiv (v : GL.uintPtr); 
  3477.  
  3478.    procedure Color4usv (v : GL.ushortPtr); 
  3479.  
  3480.    -- Texture coordinates 
  3481.    procedure TexCoord1d (s : GL.Double); 
  3482.  
  3483.    procedure TexCoord1f (s : GL.C_Float); 
  3484.  
  3485.    procedure TexCoord1i (s : GL.Int); 
  3486.  
  3487.    procedure TexCoord1s (s : GL.Short); 
  3488.  
  3489.    procedure TexCoord (s : GL.Double; 
  3490.                        t : GL.Double); 
  3491.  
  3492.    procedure TexCoordf (s : GL.C_Float; 
  3493.                         t : GL.C_Float); 
  3494.  
  3495.    procedure TexCoord2i (s : GL.Int; 
  3496.                          t : GL.Int); 
  3497.  
  3498.    procedure TexCoord2s (s : GL.Short; 
  3499.                          t : GL.Short); 
  3500.  
  3501.    procedure TexCoord3d (s : GL.Double; 
  3502.                          t : GL.Double; 
  3503.                          r : GL.Double); 
  3504.  
  3505.    procedure TexCoord3f (s : GL.C_Float; 
  3506.                          t : GL.C_Float; 
  3507.                          r : GL.C_Float); 
  3508.  
  3509.    procedure TexCoord3i (s : GL.Int; 
  3510.                          t : GL.Int; 
  3511.                          r : GL.Int); 
  3512.  
  3513.    procedure TexCoord3s (s : GL.Short; 
  3514.                          t : GL.Short; 
  3515.                          r : GL.Short); 
  3516.  
  3517.    procedure TexCoord4d (s : GL.Double; 
  3518.                          t : GL.Double; 
  3519.                          r : GL.Double; 
  3520.                          q : GL.Double); 
  3521.  
  3522.    procedure TexCoord4f (s : GL.C_Float; 
  3523.                          t : GL.C_Float; 
  3524.                          r : GL.C_Float; 
  3525.                          q : GL.C_Float); 
  3526.  
  3527.    procedure TexCoord4i (s : GL.Int; 
  3528.                          t : GL.Int; 
  3529.                          r : GL.Int; 
  3530.                          q : GL.Int); 
  3531.  
  3532.    procedure TexCoord4s (s : GL.Short; 
  3533.                          t : GL.Short; 
  3534.                          r : GL.Short; 
  3535.                          q : GL.Short); 
  3536.  
  3537.    procedure TexCoord1dv (v : GL.doublePtr); 
  3538.  
  3539.    procedure TexCoord1fv (v : floatPtr); 
  3540.  
  3541.    procedure TexCoord1iv (v : GL.intPointer); 
  3542.  
  3543.    procedure TexCoord1sv (v : GL.shortPtr); 
  3544.  
  3545.    procedure TexCoord2dv (v : GL.doublePtr); 
  3546.  
  3547.    procedure TexCoord2fv (v : floatPtr); 
  3548.  
  3549.    procedure TexCoord2iv (v : GL.intPointer); 
  3550.  
  3551.    procedure TexCoord2sv (v : GL.shortPtr); 
  3552.  
  3553.    procedure TexCoord3dv (v : GL.doublePtr); 
  3554.  
  3555.    procedure TexCoord3fv (v : floatPtr); 
  3556.  
  3557.    procedure TexCoord3iv (v : GL.intPointer); 
  3558.  
  3559.    procedure TexCoord3sv (v : GL.shortPtr); 
  3560.  
  3561.    procedure TexCoord4dv (v : GL.doublePtr); 
  3562.  
  3563.    procedure TexCoord4fv (v : floatPtr); 
  3564.  
  3565.    procedure TexCoord4iv (v : GL.intPointer); 
  3566.  
  3567.    procedure TexCoord4sv (v : GL.shortPtr); 
  3568.  
  3569.    -- Pixel op raster position 
  3570.    procedure RasterPos2d (x : GL.Double; 
  3571.                           y : GL.Double); 
  3572.  
  3573.    procedure RasterPos2f (x : GL.C_Float; 
  3574.                           y : GL.C_Float); 
  3575.  
  3576.    procedure RasterPos (x, y : GL.Int); 
  3577.  
  3578.    procedure RasterPos2s (x : GL.Short; 
  3579.                           y : GL.Short); 
  3580.  
  3581.    procedure RasterPos3d (x : GL.Double; 
  3582.                           y : GL.Double; 
  3583.                           z : GL.Double); 
  3584.  
  3585.    procedure RasterPos3f (x : GL.C_Float; 
  3586.                           y : GL.C_Float; 
  3587.                           z : GL.C_Float); 
  3588.  
  3589.    procedure RasterPos3i (x : GL.Int; 
  3590.                           y : GL.Int; 
  3591.                           z : GL.Int); 
  3592.  
  3593.    procedure RasterPos3s (x : GL.Short; 
  3594.                           y : GL.Short; 
  3595.                           z : GL.Short); 
  3596.  
  3597.    procedure RasterPos4d (x : GL.Double; 
  3598.                           y : GL.Double; 
  3599.                           z : GL.Double; 
  3600.                           w : GL.Double); 
  3601.  
  3602.    procedure RasterPos4f (x : GL.C_Float; 
  3603.                           y : GL.C_Float; 
  3604.                           z : GL.C_Float; 
  3605.                           w : GL.C_Float); 
  3606.  
  3607.    procedure RasterPos4i (x : GL.Int; 
  3608.                           y : GL.Int; 
  3609.                           z : GL.Int; 
  3610.                           w : GL.Int); 
  3611.  
  3612.    procedure RasterPos4s (x : GL.Short; 
  3613.                           y : GL.Short; 
  3614.                           z : GL.Short; 
  3615.                           w : GL.Short); 
  3616.  
  3617.    procedure RasterPos2dv (v : GL.doublePtr); 
  3618.  
  3619.    procedure RasterPos2fv (v : floatPtr); 
  3620.  
  3621.    procedure RasterPos2iv (v : GL.intPointer); 
  3622.  
  3623.    procedure RasterPos2sv (v : GL.shortPtr); 
  3624.  
  3625.    procedure RasterPos3dv (v : GL.doublePtr); 
  3626.  
  3627.    procedure RasterPos3fv (v : floatPtr); 
  3628.  
  3629.    procedure RasterPos3iv (v : GL.intPointer); 
  3630.  
  3631.    procedure RasterPos3sv (v : GL.shortPtr); 
  3632.  
  3633.    procedure RasterPos4dv (v : GL.doublePtr); 
  3634.  
  3635.    procedure RasterPos4fv (v : floatPtr); 
  3636.  
  3637.    procedure RasterPos4iv (v : GL.intPointer); 
  3638.  
  3639.    procedure RasterPos4sv (v : GL.shortPtr); 
  3640.  
  3641.    -- Rectangles 
  3642.    procedure Rectd (x1 : GL.Double; 
  3643.                     y1 : GL.Double; 
  3644.                     x2 : GL.Double; 
  3645.                     y2 : GL.Double); 
  3646.  
  3647.    procedure Rectf (x1 : GL.C_Float; 
  3648.                     y1 : GL.C_Float; 
  3649.                     x2 : GL.C_Float; 
  3650.                     y2 : GL.C_Float); 
  3651.  
  3652.    procedure Recti (x1 : GL.Int; 
  3653.                     y1 : GL.Int; 
  3654.                     x2 : GL.Int; 
  3655.                     y2 : GL.Int); 
  3656.  
  3657.    procedure Rects (x1 : GL.Short; 
  3658.                     y1 : GL.Short; 
  3659.                     x2 : GL.Short; 
  3660.                     y2 : GL.Short); 
  3661.  
  3662.    procedure Rectdv (v1 : GL.doublePtr; 
  3663.                      v2 : GL.doublePtr); 
  3664.  
  3665.    procedure Rectfv (v1 : floatPtr; 
  3666.                      v2 : floatPtr); 
  3667.  
  3668.    procedure Rectiv (v1 : GL.intPointer; 
  3669.                      v2 : GL.intPointer); 
  3670.  
  3671.    procedure Rectsv (v1 : GL.shortPtr; 
  3672.                      v2 : GL.shortPtr); 
  3673.  
  3674.    -- Bitmap 
  3675.    procedure Bitmap (width  : GL.Sizei; 
  3676.                      height : GL.Sizei; 
  3677.                      xorig  : GL.C_Float; 
  3678.                      yorig  : GL.C_Float; 
  3679.                      xmove  : GL.C_Float; 
  3680.                      ymove  : GL.C_Float; 
  3681.                      bitmap : ubytePtr); 
  3682.  
  3683.    -- Stenciling 
  3684.    procedure StencilMask (mask : GL.Uint); 
  3685.  
  3686.    procedure ClearStencil (s : GL.Int); 
  3687.  
  3688.    -- Selections and name stack 
  3689.    procedure SelectBuffer (size   : GL.Sizei; 
  3690.                            buffer : GL.uintPtr); 
  3691.    procedure InitNames; 
  3692.  
  3693.    procedure LoadName (name : GL.Uint); 
  3694.  
  3695.    procedure PushName (name : GL.Uint); 
  3696.  
  3697.    procedure PopName; 
  3698.  
  3699.    -- Mesa - specific routines 
  3700.    procedure WindowPos2iMESA (x : GL.Int; 
  3701.                               y : GL.Int); 
  3702.  
  3703.    procedure WindowPos2sMESA (x : GL.Short; 
  3704.                               y : GL.Short); 
  3705.  
  3706.    procedure WindowPos2fMESA (x : GL.C_Float; 
  3707.                               y : GL.C_Float); 
  3708.  
  3709.    procedure WindowPos2dMESA (x : GL.Double; 
  3710.                               y : GL.Double); 
  3711.  
  3712.    procedure WindowPos2ivMESA (p : GL.intPointer); 
  3713.  
  3714.    procedure WindowPos2svMESA (p : GL.shortPtr); 
  3715.  
  3716.    procedure WindowPos2fvMESA (p : floatPtr); 
  3717.  
  3718.    procedure WindowPos2dvMESA (p : GL.doublePtr); 
  3719.  
  3720.    procedure WindowPos3iMESA (x : GL.Int; 
  3721.                               y : GL.Int; 
  3722.                               z : GL.Int); 
  3723.  
  3724.    procedure WindowPos3sMESA (x : GL.Short; 
  3725.                               y : GL.Short; 
  3726.                               z : GL.Short); 
  3727.  
  3728.    procedure WindowPos3fMESA (x : GL.C_Float; 
  3729.                               y : GL.C_Float; 
  3730.                               z : GL.C_Float); 
  3731.  
  3732.    procedure WindowPos3dMESA (x : GL.Double; 
  3733.                               y : GL.Double; 
  3734.                               z : GL.Double); 
  3735.  
  3736.    procedure WindowPos3ivMESA (p : GL.intPointer); 
  3737.  
  3738.    procedure WindowPos3svMESA (p : GL.shortPtr); 
  3739.  
  3740.    procedure WindowPos3fvMESA (p : floatPtr); 
  3741.  
  3742.    procedure WindowPos3dvMESA (p : GL.doublePtr); 
  3743.  
  3744.    procedure WindowPos4iMESA (x : GL.Int; 
  3745.                               y : GL.Int; 
  3746.                               z : GL.Int; 
  3747.                               w : GL.Int); 
  3748.  
  3749.    procedure WindowPos4sMESA (x : GL.Short; 
  3750.                               y : GL.Short; 
  3751.                               z : GL.Short; 
  3752.                               w : GL.Short); 
  3753.  
  3754.    procedure WindowPos4fMESA (x : GL.C_Float; 
  3755.                               y : GL.C_Float; 
  3756.                               z : GL.C_Float; 
  3757.                               w : GL.C_Float); 
  3758.  
  3759.    procedure WindowPos4dMESA (x : GL.Double; 
  3760.                               y : GL.Double; 
  3761.                               z : GL.Double; 
  3762.                               w : GL.Double); 
  3763.  
  3764.    procedure WindowPos4ivMESA (p : GL.intPointer); 
  3765.  
  3766.    procedure WindowPos4svMESA (p : GL.shortPtr); 
  3767.  
  3768.    procedure WindowPos4fvMESA (p : floatPtr); 
  3769.  
  3770.    procedure WindowPos4dvMESA (p : GL.doublePtr); 
  3771.  
  3772.    procedure ResizeBuffersMESA; 
  3773.  
  3774.    -- vertex buffer objects (GL 1.5 extension) 
  3775.    -- 
  3776.  
  3777.    procedure Gen_Buffers (n        : GL.Sizei; 
  3778.                          buffers  : GL.uintPtr); 
  3779.  
  3780.    procedure Delete_Buffers (n        : GL.Sizei; 
  3781.                             buffers  : GL.uintPtr); 
  3782.  
  3783.    type VBO_Target is 
  3784.      ( 
  3785.       ARRAY_BUFFER, 
  3786.       ELEMENT_ARRAY_BUFFER, 
  3787.       PIXEL_PACK_BUFFER, 
  3788.       PIXEL_UNPACK_BUFFER 
  3789.      ); 
  3790.    for  VBO_Target use 
  3791.      ( 
  3792.       ARRAY_BUFFER             => 16#8892#, 
  3793.       ELEMENT_ARRAY_BUFFER     => 16#8893#, 
  3794.       PIXEL_PACK_BUFFER        => 16#88EB#, 
  3795.       PIXEL_UNPACK_BUFFER      => 16#88EC# 
  3796.      ); 
  3797.  
  3798.    procedure BindBuffer (target  : VBO_Target; 
  3799.                          buffer  : GL.Uint); 
  3800.  
  3801.    type VBO_Usage is 
  3802.      ( 
  3803.       STREAM_DRAW, 
  3804.       STREAM_READ, 
  3805.       STREAM_COPY, 
  3806.       STATIC_DRAW, 
  3807.       STATIC_READ, 
  3808.       STATIC_COPY, 
  3809.       DYNAMIC_DRAW, 
  3810.       DYNAMIC_READ, 
  3811.       DYNAMIC_COPY 
  3812.      ); 
  3813.    for VBO_Usage use 
  3814.      ( 
  3815.       STREAM_DRAW  => 16#88E0#, 
  3816.       STREAM_READ  => 16#88E1#, 
  3817.       STREAM_COPY  => 16#88E2#, 
  3818.       STATIC_DRAW  => 16#88E4#, 
  3819.       STATIC_READ  => 16#88E5#, 
  3820.       STATIC_COPY  => 16#88E6#, 
  3821.       DYNAMIC_DRAW => 16#88E8#, 
  3822.       DYNAMIC_READ => 16#88E9#, 
  3823.       DYNAMIC_COPY => 16#88EA# 
  3824.      ); 
  3825.  
  3826.    procedure Buffer_Data (target  : GL.VBO_Target; 
  3827.                          size    : GL.sizeiPtr; 
  3828.                          data    : GL.pointer; 
  3829.                          usage   : GL.VBO_Usage); 
  3830.  
  3831.    procedure BufferSubData (target  : GL.VBO_Target; 
  3832.                             offset  : GL.intPtr; 
  3833.                             size    : GL.sizeiPtr; 
  3834.                             data    : GL.pointer); 
  3835.  
  3836.    type Access_Policy is 
  3837.      ( 
  3838.       READ_ONLY, 
  3839.       WRITE_ONLY, 
  3840.       READ_WRITE 
  3841.      ); 
  3842.    for Access_Policy use 
  3843.      ( 
  3844.       READ_ONLY  => 16#88B8#, 
  3845.       WRITE_ONLY => 16#88B9#, 
  3846.       READ_WRITE => 16#88BA# 
  3847.      ); 
  3848.  
  3849.    function MapBuffer   (target  : GL.VBO_Target; 
  3850.                          Policy  : GL.Access_Policy) return GL.pointer; 
  3851.  
  3852.    function UnmapBuffer (target  : GL.VBO_Target) return GL_Boolean; 
  3853.  
  3854.    type Buffer_Parameter is 
  3855.      ( 
  3856.       BUFFER_SIZE, 
  3857.       BUFFER_USAGE, 
  3858.       BUFFER_ACCESS, 
  3859.       BUFFER_MAPPED 
  3860.      ); 
  3861.    for Buffer_Parameter use 
  3862.      ( 
  3863.       BUFFER_SIZE   => 16#8764#, 
  3864.       BUFFER_USAGE  => 16#8765#, 
  3865.       BUFFER_ACCESS => 16#88BB#, 
  3866.       BUFFER_MAPPED => 16#88BC# 
  3867.      ); 
  3868.  
  3869.    procedure GetBufferParameter (target  : GL.VBO_Target; 
  3870.                                  value   : Buffer_Parameter; 
  3871.                                  data    : intPointer); 
  3872.  
  3873.    ------------------------------------------------------------------------------ 
  3874.  
  3875. private 
  3876.  
  3877.    -- Workaround for GNAT 3.15p (OA 7.2.2 OK), when applying pragma Import to all 
  3878.    -- functions named GetString: 
  3879.    -- - > convention for "GetString" does not permit returning unconstrained array type 
  3880.    function glGetString (name  : StringEnm) return ubytePtr; 
  3881.    function GetString (name  : StringEnm) return ubytePtr renames glGetString; 
  3882.  
  3883.    -- GdM : renames for getting rid of pointers and " .. .4f"- style suffixes 
  3884.  
  3885.    -- The following wrappers are automatically generated by 
  3886.    -- the GL_Overloader tool. To generate other wrappers easily, 
  3887.    -- look at GL_Overloader.adb . 
  3888.  
  3889.    -- Wrapper for color3d 
  3890.    procedure color3d (red, green, blue : GL.Double); 
  3891.    procedure Color (red, green, blue : GL.Double) renames color3d; 
  3892.  
  3893.    -- Wrapper for color3f 
  3894.    procedure color3f (red, green, blue : GL.C_Float); 
  3895.    procedure Color_f (red, green, blue : GL.C_Float) renames color3f; 
  3896.  
  3897.    -- Wrapper for color3i 
  3898.    procedure color3i (red, green, blue : GL.Int); 
  3899.    procedure Color (red, green, blue : GL.Int) renames color3i; 
  3900.  
  3901.    -- Wrapper for color3s 
  3902.    procedure color3s (red, green, blue : GL.Short); 
  3903.    procedure Color_s (red, green, blue : GL.Short) renames color3s; 
  3904.  
  3905.    -- Wrapper for color4d 
  3906.    procedure color4d (red, green, blue, alpha : GL.Double); 
  3907.    procedure Color (red, green, blue, alpha : GL.Double) renames color4d; 
  3908.  
  3909.    -- Wrapper for color4f 
  3910.    procedure color4f (red, green, blue, alpha : GL.C_Float); 
  3911.    procedure Color_f (red, green, blue, alpha : GL.C_Float) renames color4f; 
  3912.  
  3913.    -- Wrapper for color4i 
  3914.    procedure color4i (red, green, blue, alpha : GL.Int); 
  3915.    procedure Color (red, green, blue, alpha : GL.Int) renames color4i; 
  3916.  
  3917.    -- Wrapper for color4s 
  3918.    procedure color4s (red, green, blue, alpha : GL.Short); 
  3919.    procedure Color_s (red, green, blue, alpha : GL.Short) renames color4s; 
  3920.  
  3921.    -- Wrappers for Get 
  3922.    procedure GetDoublev (pname  : ParameterNameEnm; 
  3923.                          params : GL.doublePtr); 
  3924.  
  3925.    procedure Get (pname  : ParameterNameEnm; 
  3926.                   params : GL.doublePtr) renames GetDoublev; 
  3927.  
  3928.    -- Wrappers for Light 
  3929.  
  3930.    procedure Lightf (light_id : LightIDEnm; 
  3931.                      pname    : LightParameterEnm; 
  3932.                      param    : GL.C_Float); 
  3933.  
  3934.    procedure Light (light_id : LightIDEnm; 
  3935.                     pname    : LightParameterEnm; 
  3936.                     param    : GL.C_Float) renames Lightf; 
  3937.  
  3938.    procedure Lightfv (light_id  : LightIDEnm; 
  3939.                       pname     : LightParameterVEnm; 
  3940.                       params    : floatPtr); 
  3941.  
  3942.    -- Wrappers for Material 
  3943.  
  3944.    procedure Materialf (face  : FaceEnm; 
  3945.                         pname : MaterialParameterEnm; 
  3946.                         param : GL.C_Float); 
  3947.    procedure Material (face  : FaceEnm; 
  3948.                        pname : MaterialParameterEnm; 
  3949.                        param : GL.C_Float) renames Materialf; 
  3950.  
  3951.    procedure Materialfv (face   : FaceEnm; 
  3952.                          pname  : MaterialParameterVEnm; 
  3953.                          params : floatPtr); 
  3954.  
  3955.    -- Wrapper for Normal3d 
  3956.    procedure Normal3d (x, y, z : GL.Double); 
  3957.    procedure Normal (x, y, z : GL.Double) renames Normal3d; 
  3958.  
  3959.    -- Wrapper for Normal3f 
  3960.    procedure Normal3f (x, y, z : GL.C_Float); 
  3961.    procedure Normal_f (x, y, z : GL.C_Float) renames Normal3f; 
  3962.  
  3963.    -- Wrapper for Normal3i 
  3964.    procedure Normal3i (x, y, z : GL.Int); 
  3965.    procedure Normal (x, y, z : GL.Int) renames Normal3i; 
  3966.  
  3967.    -- Wrapper for Normal3b 
  3968.    procedure Normal3b (x, y, z : GL.Byte); 
  3969.    procedure Normal_b (x, y, z : GL.Byte) renames Normal3b; 
  3970.  
  3971.    -- Wrapper for Normal3s 
  3972.    procedure Normal3s (x, y, z : GL.Short); 
  3973.    procedure Normal_s (x, y, z : GL.Short) renames Normal3s; 
  3974.  
  3975.    procedure PixelStorei (pname : PixelStorageEnm; 
  3976.                           param : GL.Int); 
  3977.    procedure PixelStore (pname : PixelStorageEnm; 
  3978.                          param : GL.Int) renames PixelStorei; 
  3979.  
  3980.    procedure RasterPos2i (x : GL.Int; 
  3981.                           y : GL.Int); 
  3982.    procedure RasterPos (x, y : GL.Int) renames RasterPos2i; 
  3983.  
  3984.    procedure Rotated (angle : GL.Double; 
  3985.                       x     : GL.Double; 
  3986.                       y     : GL.Double; 
  3987.                       z     : GL.Double); 
  3988.    procedure Rotate (angle : GL.Double; 
  3989.                      x     : GL.Double; 
  3990.                      y     : GL.Double; 
  3991.                      z     : GL.Double) renames Rotated; 
  3992.  
  3993.    procedure Rotatef (angle : GL.C_Float; 
  3994.                       x     : GL.C_Float; 
  3995.                       y     : GL.C_Float; 
  3996.                       z     : GL.C_Float); 
  3997.    procedure Rotate_f (angle : GL.C_Float; 
  3998.                        x     : GL.C_Float; 
  3999.                        y     : GL.C_Float; 
  4000.                        z     : GL.C_Float) renames Rotatef; 
  4001.  
  4002.    -- Wrapper for scaled 
  4003.    procedure scaled (x, y, z : GL.Double); 
  4004.    procedure Scale (x, y, z : GL.Double) renames scaled; 
  4005.  
  4006.    -- Wrapper for scalef 
  4007.    procedure scalef (x, y, z : GL.C_Float); 
  4008.    procedure Scale_f (x, y, z : GL.C_Float) renames scalef; 
  4009.  
  4010.    procedure TexCoord2d (s : GL.Double; 
  4011.                          t : GL.Double); 
  4012.    procedure TexCoord (s : GL.Double; 
  4013.                        t : GL.Double) renames TexCoord2d; 
  4014.  
  4015.    procedure TexCoord2f (s : GL.C_Float; 
  4016.                          t : GL.C_Float); 
  4017.    procedure TexCoordf (s : GL.C_Float; 
  4018.                         t : GL.C_Float) renames TexCoord2f; 
  4019.  
  4020.    procedure TexEnvi (target : TexEnvEnm; 
  4021.                       pname  : TexEnvParameterEnm; 
  4022.                       param  : GL.Int); 
  4023.    procedure TexEnv (target : TexEnvEnm; 
  4024.                      pname  : TexEnvParameterEnm; 
  4025.                      param  : GL.Int) renames TexEnvi; 
  4026.  
  4027.    procedure TexParameteri (target : TargetTexEnm; 
  4028.                             pname  : TexParamEnm; 
  4029.                             param  : GL.Int); 
  4030.    procedure TexParameter (target : TargetTexEnm; 
  4031.                            pname  : TexParamEnm; 
  4032.                            param  : GL.Int) renames TexParameteri; 
  4033.  
  4034.    -- Wrapper for translated 
  4035.    procedure translated (x, y, z : GL.Double); 
  4036.    procedure Translate (x, y, z : GL.Double) renames translated; 
  4037.  
  4038.    -- Wrapper for translatef 
  4039.    procedure translatef (x, y, z : GL.C_Float); 
  4040.    procedure Translate_f (x, y, z : GL.C_Float) renames translatef; 
  4041.  
  4042.    -- Wrapper for vertex2d 
  4043.    procedure vertex2d (x, y : GL.Double); 
  4044.    procedure Vertex (x, y : GL.Double) renames vertex2d; 
  4045.  
  4046.    -- Wrapper for vertex2f 
  4047.    procedure vertex2f (x, y : GL.C_Float); 
  4048.    procedure Vertex_f (x, y : GL.C_Float) renames vertex2f; 
  4049.  
  4050.    -- Wrapper for vertex2i 
  4051.    procedure vertex2i (x, y : GL.Int); 
  4052.    procedure Vertex (x, y : GL.Int) renames vertex2i; 
  4053.  
  4054.    -- Wrapper for vertex2s 
  4055.    procedure vertex2s (x, y : GL.Short); 
  4056.    procedure Vertex_s (x, y : GL.Short) renames vertex2s; 
  4057.  
  4058.    -- Wrapper for vertex3d 
  4059.    procedure vertex3d (x, y, z : GL.Double); 
  4060.    procedure Vertex (x, y, z : GL.Double) renames vertex3d; 
  4061.  
  4062.    -- Wrapper for vertex3f 
  4063.    procedure vertex3f (x, y, z : GL.C_Float); 
  4064.    procedure Vertex_f (x, y, z : GL.C_Float) renames vertex3f; 
  4065.  
  4066.    -- Wrapper for vertex3i 
  4067.    procedure vertex3i (x, y, z : GL.Int); 
  4068.    procedure Vertex (x, y, z : GL.Int) renames vertex3i; 
  4069.  
  4070.    -- Wrapper for vertex3s 
  4071.    procedure vertex3s (x, y, z : GL.Short); 
  4072.    procedure Vertex_s (x, y, z : GL.Short) renames vertex3s; 
  4073.  
  4074.    -- Wrapper for vertex4d 
  4075.    procedure vertex4d (x, y, z, w : GL.Double); 
  4076.    procedure Vertex (x, y, z, w : GL.Double) renames vertex4d; 
  4077.  
  4078.    -- Wrapper for vertex4f 
  4079.    procedure vertex4f (x, y, z, w : GL.C_Float); 
  4080.    procedure Vertex_f (x, y, z, w : GL.C_Float) renames vertex4f; 
  4081.  
  4082.    -- Wrapper for vertex4i 
  4083.    procedure vertex4i (x, y, z, w : GL.Int); 
  4084.    procedure Vertex (x, y, z, w : GL.Int) renames vertex4i; 
  4085.  
  4086.    -- Wrapper for vertex4s 
  4087.    procedure vertex4s (x, y, z, w : GL.Short); 
  4088.    procedure Vertex_s (x, y, z, w : GL.Short) renames vertex4s; 
  4089.  
  4090.    -- Some renames due to possible ambiguity with enumerated 
  4091.    -- values (Accum, Clear, Viewport) that can be interpreted 
  4092.    -- as a parameterless function, confusing then pragma Import 
  4093.    -- on the Janus compiler and not GNAT and ObjectAda. 
  4094.    -- GM/TM 9 - Sep - 2006 
  4095.    procedure glAccum (op    : AccumEnm; 
  4096.                       value : GL.C_Float); 
  4097.    procedure Accum (op    : AccumEnm; 
  4098.                     value : GL.C_Float) renames glAccum; 
  4099.    -- 
  4100.    procedure glClear (mask : Bitfield); 
  4101.    procedure Clear (mask : Bitfield) renames glClear; 
  4102.    -- 
  4103.    procedure glViewport (x      : GL.Int; 
  4104.                          y      : GL.Int; 
  4105.                          width  : GL.Sizei; 
  4106.                          height : GL.Sizei); 
  4107.    procedure Viewport (x      : GL.Int; 
  4108.                        y      : GL.Int; 
  4109.                        width  : GL.Sizei; 
  4110.                        height : GL.Sizei) renames glViewport; 
  4111.  
  4112.    ----------------- 
  4113.    -- Interfacing -- 
  4114.    ----------------- 
  4115.  
  4116.    pragma Import (Stdcall, ClearIndex, "glClearIndex"); 
  4117.    pragma Import (Stdcall, ClearColor, "glClearColor"); 
  4118.    pragma Import (Stdcall, glClear, "glClear"); 
  4119.    pragma Import (Stdcall, IndexMask, "glIndexMask"); 
  4120.    pragma Import (Stdcall, ColorMask, "glColorMask"); 
  4121.    pragma Import (Stdcall, Alpha_Func, "glAlphaFunc"); 
  4122.    pragma Import (Stdcall, BlendFunc, "glBlendFunc"); 
  4123.    pragma Import (Stdcall, LogicOp, "glLogicOp"); 
  4124.    pragma Import (Stdcall, CullFace, "glCullFace"); 
  4125.    pragma Import (Stdcall, FrontFace, "glFrontFace"); 
  4126.    pragma Import (Stdcall, PointSize, "glPointSize"); 
  4127.    pragma Import (Stdcall, LineWidth, "glLineWidth"); 
  4128.    pragma Import (Stdcall, LineStipple, "glLineStipple"); 
  4129.    pragma Import (Stdcall, PolygonMode, "glPolygonMode"); 
  4130.    pragma Import (Stdcall, PolygonOffset, "glPolygonOffset"); 
  4131.    pragma Import (Stdcall, PolygonStipple, "glPolygonStipple"); 
  4132.    pragma Import (Stdcall, GetPolygonStipple, "glGetPolygonStipple"); 
  4133.    pragma Import (Stdcall, EdgeFlag, "glEdgeFlag"); 
  4134.    pragma Import (Stdcall, EdgeFlagv, "glEdgeFlagv"); 
  4135.    pragma Import (Stdcall, Scissor, "glScissor"); 
  4136.    pragma Import (Stdcall, ClipPlane, "glClipPlane"); 
  4137.    pragma Import (Stdcall, GetClipPlane, "glGetClipPlane"); 
  4138.    pragma Import (Stdcall, DrawBuffer, "glDrawBuffer"); 
  4139.    pragma Import (Stdcall, ReadBuffer, "glReadBuffer"); 
  4140.    pragma Import (Stdcall, Enable, "glEnable"); 
  4141.    pragma Import (Stdcall, Disable, "glDisable"); 
  4142.    pragma Import (Stdcall, IsEnabled, "glIsEnabled"); 
  4143.    pragma Import (Stdcall, Enable_Client_State, "glEnableClientState"); 
  4144.    pragma Import (Stdcall, Disable_Client_State, "glDisableClientState"); 
  4145.    pragma Import (Stdcall, GetBooleanv, "glGetBooleanv"); 
  4146.    pragma Import (Stdcall, GetDoublev, "glGetDoublev"); 
  4147.    pragma Import (Stdcall, GetFloatv, "glGetFloatv"); 
  4148.    pragma Import (Stdcall, GetIntegerv, "glGetIntegerv"); 
  4149.    pragma Import (Stdcall, PushAttrib, "glPushAttrib"); 
  4150.    pragma Import (Stdcall, PopAttrib, "glPopAttrib"); 
  4151.    pragma Import (Stdcall, PushClientAttrib, "glPushClientAttrib"); 
  4152.    pragma Import (Stdcall, PopClientAttrib, "glPopClientAttrib"); 
  4153.    pragma Import (Stdcall, RenderMode, "glRenderMode"); 
  4154.    pragma Import (Stdcall, Get_Error, "glGetError"); 
  4155.    pragma Import (Stdcall, glGetString, "glGetString"); 
  4156.    pragma Import (Stdcall, Finish, "glFinish"); 
  4157.    pragma Import (Stdcall, Flush, "glFlush"); 
  4158.    pragma Import (Stdcall, Hint, "glHint"); 
  4159.    pragma Import (Stdcall, ClearDepth, "glClearDepth"); 
  4160.    pragma Import (Stdcall, DepthFunc, "glDepthFunc"); 
  4161.    pragma Import (Stdcall, Depth_Mask, "glDepthMask"); 
  4162.    pragma Import (Stdcall, DepthRange, "glDepthRange"); 
  4163.    pragma Import (Stdcall, ClearAccum, "glClearAccum"); 
  4164.    pragma Import (Stdcall, glAccum, "glAccum"); 
  4165.    pragma Import (Stdcall, MatrixMode, "glMatrixMode"); 
  4166.    pragma Import (Stdcall, Ortho, "glOrtho"); 
  4167.    pragma Import (Stdcall, Frustum, "glFrustum"); 
  4168.    pragma Import (Stdcall, glViewport, "glViewport"); 
  4169.    pragma Import (Stdcall, PushMatrix, "glPushMatrix"); 
  4170.    pragma Import (Stdcall, PopMatrix, "glPopMatrix"); 
  4171.    pragma Import (Stdcall, LoadIdentity, "glLoadIdentity"); 
  4172.    pragma Import (Stdcall, LoadMatrixd, "glLoadMatrixd"); 
  4173.    pragma Import (Stdcall, LoadMatrixf, "glLoadMatrixf"); 
  4174.    pragma Import (Stdcall, MultMatrixd, "glMultMatrixd"); 
  4175.    pragma Import (Stdcall, MultMatrixf, "glMultMatrixf"); 
  4176.    pragma Import (Stdcall, Rotated, "glRotated"); 
  4177.    pragma Import (Stdcall, Rotatef, "glRotatef"); 
  4178.    pragma Import (Stdcall, scaled, "glScaled"); 
  4179.    pragma Import (Stdcall, scalef, "glScalef"); 
  4180.    pragma Import (Stdcall, translated, "glTranslated"); 
  4181.    pragma Import (Stdcall, translatef, "glTranslatef"); 
  4182.    pragma Import (Stdcall, IsList, "glIsList"); 
  4183.    pragma Import (Stdcall, DeleteLists, "glDeleteLists"); 
  4184.    pragma Import (Stdcall, GenLists, "glGenLists"); 
  4185.    pragma Import (Stdcall, NewList, "glNewList"); 
  4186.    pragma Import (Stdcall, EndList, "glEndList"); 
  4187.    pragma Import (Stdcall, CallList, "glCallList"); 
  4188.    pragma Import (Stdcall, CallLists, "glCallLists"); 
  4189.    pragma Import (Stdcall, ListBase, "glListBase"); 
  4190.    pragma Import (Stdcall, GL_Begin, "glBegin"); 
  4191.    pragma Import (Stdcall, GL_End, "glEnd"); 
  4192.    pragma Import (Stdcall, vertex2d, "glVertex2d"); 
  4193.    pragma Import (Stdcall, vertex2f, "glVertex2f"); 
  4194.    pragma Import (Stdcall, vertex2i, "glVertex2i"); 
  4195.    pragma Import (Stdcall, vertex2s, "glVertex2s"); 
  4196.    pragma Import (Stdcall, vertex3d, "glVertex3d"); 
  4197.    pragma Import (Stdcall, vertex3f, "glVertex3f"); 
  4198.    pragma Import (Stdcall, vertex3i, "glVertex3i"); 
  4199.    pragma Import (Stdcall, vertex3s, "glVertex3s"); 
  4200.    pragma Import (Stdcall, vertex4d, "glVertex4d"); 
  4201.    pragma Import (Stdcall, vertex4f, "glVertex4f"); 
  4202.    pragma Import (Stdcall, vertex4i, "glVertex4i"); 
  4203.    pragma Import (Stdcall, vertex4s, "glVertex4s"); 
  4204.    pragma Import (Stdcall, Vertex2dv, "glVertex2dv"); 
  4205.    pragma Import (Stdcall, Vertex2fv, "glVertex2fv"); 
  4206.    pragma Import (Stdcall, Vertex2iv, "glVertex2iv"); 
  4207.    pragma Import (Stdcall, Vertex2sv, "glVertex2sv"); 
  4208.    pragma Import (Stdcall, Vertex3dv, "glVertex3dv"); 
  4209.    pragma Import (Stdcall, Vertex3fv, "glVertex3fv"); 
  4210.    pragma Import (Stdcall, Vertex3iv, "glVertex3iv"); 
  4211.    pragma Import (Stdcall, Vertex3sv, "glVertex3sv"); 
  4212.    pragma Import (Stdcall, Vertex4dv, "glVertex4dv"); 
  4213.    pragma Import (Stdcall, Vertex4fv, "glVertex4fv"); 
  4214.    pragma Import (Stdcall, Vertex4iv, "glVertex4iv"); 
  4215.    pragma Import (Stdcall, Vertex4sv, "glVertex4sv"); 
  4216.    pragma Import (Stdcall, Normal3b, "glNormal3b"); 
  4217.    pragma Import (Stdcall, Normal3d, "glNormal3d"); 
  4218.    pragma Import (Stdcall, Normal3f, "glNormal3f"); 
  4219.    pragma Import (Stdcall, Normal3i, "glNormal3i"); 
  4220.    pragma Import (Stdcall, Normal3s, "glNormal3s"); 
  4221.    pragma Import (Stdcall, Normal3bv, "glNormal3bv"); 
  4222.    pragma Import (Stdcall, Normal3dv, "glNormal3dv"); 
  4223.    pragma Import (Stdcall, Normal3fv, "glNormal3fv"); 
  4224.    pragma Import (Stdcall, Normal3iv, "glNormal3iv"); 
  4225.    pragma Import (Stdcall, Normal3sv, "glNormal3sv"); 
  4226.    pragma Import (Stdcall, Indexd, "glIndexd"); 
  4227.    pragma Import (Stdcall, Indexf, "glIndexf"); 
  4228.    pragma Import (Stdcall, Indexi, "glIndexi"); 
  4229.    pragma Import (Stdcall, Indexs, "glIndexs"); 
  4230.    pragma Import (Stdcall, Indexub, "glIndexub"); 
  4231.    pragma Import (Stdcall, Indexdv, "glIndexdv"); 
  4232.    pragma Import (Stdcall, Indexfv, "glIndexfv"); 
  4233.    pragma Import (Stdcall, Indexiv, "glIndexiv"); 
  4234.    pragma Import (Stdcall, Indexsv, "glIndexsv"); 
  4235.    pragma Import (Stdcall, Indexubv, "glIndexubv"); 
  4236.    pragma Import (Stdcall, Color3b, "glColor3b"); 
  4237.    pragma Import (Stdcall, color3d, "glColor3d"); 
  4238.    pragma Import (Stdcall, color3f, "glColor3f"); 
  4239.    pragma Import (Stdcall, color3i, "glColor3i"); 
  4240.    pragma Import (Stdcall, color3s, "glColor3s"); 
  4241.    pragma Import (Stdcall, Color3ub, "glColor3ub"); 
  4242.    pragma Import (Stdcall, Color3ui, "glColor3ui"); 
  4243.    pragma Import (Stdcall, Color3us, "glColor3us"); 
  4244.    pragma Import (Stdcall, Color4b, "glColor4b"); 
  4245.    pragma Import (Stdcall, color4d, "glColor4d"); 
  4246.    pragma Import (Stdcall, color4f, "glColor4f"); 
  4247.    pragma Import (Stdcall, color4i, "glColor4i"); 
  4248.    pragma Import (Stdcall, color4s, "glColor4s"); 
  4249.    pragma Import (Stdcall, Color4ub, "glColor4ub"); 
  4250.    pragma Import (Stdcall, Color4ui, "glColor4ui"); 
  4251.    pragma Import (Stdcall, Color4us, "glColor4us"); 
  4252.    pragma Import (Stdcall, Color3bv, "glColor3bv"); 
  4253.    pragma Import (Stdcall, Color3dv, "glColor3dv"); 
  4254.    pragma Import (Stdcall, Color3fv, "glColor3fv"); 
  4255.    pragma Import (Stdcall, Color3iv, "glColor3iv"); 
  4256.    pragma Import (Stdcall, Color3sv, "glColor3sv"); 
  4257.    pragma Import (Stdcall, Color3ubv, "glColor3ubv"); 
  4258.    pragma Import (Stdcall, Color3uiv, "glColor3uiv"); 
  4259.    pragma Import (Stdcall, Color3usv, "glColor3usv"); 
  4260.    pragma Import (Stdcall, Color4bv, "glColor4bv"); 
  4261.    pragma Import (Stdcall, Color4dv, "glColor4dv"); 
  4262.    pragma Import (Stdcall, Color4fv, "glColor4fv"); 
  4263.    pragma Import (Stdcall, Color4iv, "glColor4iv"); 
  4264.    pragma Import (Stdcall, Color4sv, "glColor4sv"); 
  4265.    pragma Import (Stdcall, Color4ubv, "glColor4ubv"); 
  4266.    pragma Import (Stdcall, Color4uiv, "glColor4uiv"); 
  4267.    pragma Import (Stdcall, Color4usv, "glColor4usv"); 
  4268.    pragma Import (Stdcall, TexCoord1d, "glTexCoord1d"); 
  4269.    pragma Import (Stdcall, TexCoord1f, "glTexCoord1f"); 
  4270.    pragma Import (Stdcall, TexCoord1i, "glTexCoord1i"); 
  4271.    pragma Import (Stdcall, TexCoord1s, "glTexCoord1s"); 
  4272.    pragma Import (Stdcall, TexCoord2d, "glTexCoord2d"); 
  4273.    pragma Import (Stdcall, TexCoord2f, "glTexCoord2f"); 
  4274.    pragma Import (Stdcall, TexCoord2i, "glTexCoord2i"); 
  4275.    pragma Import (Stdcall, TexCoord2s, "glTexCoord2s"); 
  4276.    pragma Import (Stdcall, TexCoord3d, "glTexCoord3d"); 
  4277.    pragma Import (Stdcall, TexCoord3f, "glTexCoord3f"); 
  4278.    pragma Import (Stdcall, TexCoord3i, "glTexCoord3i"); 
  4279.    pragma Import (Stdcall, TexCoord3s, "glTexCoord3s"); 
  4280.    pragma Import (Stdcall, TexCoord4d, "glTexCoord4d"); 
  4281.    pragma Import (Stdcall, TexCoord4f, "glTexCoord4f"); 
  4282.    pragma Import (Stdcall, TexCoord4i, "glTexCoord4i"); 
  4283.    pragma Import (Stdcall, TexCoord4s, "glTexCoord4s"); 
  4284.    pragma Import (Stdcall, TexCoord1dv, "glTexCoord1dv"); 
  4285.    pragma Import (Stdcall, TexCoord1fv, "glTexCoord1fv"); 
  4286.    pragma Import (Stdcall, TexCoord1iv, "glTexCoord1iv"); 
  4287.    pragma Import (Stdcall, TexCoord1sv, "glTexCoord1sv"); 
  4288.    pragma Import (Stdcall, TexCoord2dv, "glTexCoord2dv"); 
  4289.    pragma Import (Stdcall, TexCoord2fv, "glTexCoord2fv"); 
  4290.    pragma Import (Stdcall, TexCoord2iv, "glTexCoord2iv"); 
  4291.    pragma Import (Stdcall, TexCoord2sv, "glTexCoord2sv"); 
  4292.    pragma Import (Stdcall, TexCoord3dv, "glTexCoord3dv"); 
  4293.    pragma Import (Stdcall, TexCoord3fv, "glTexCoord3fv"); 
  4294.    pragma Import (Stdcall, TexCoord3iv, "glTexCoord3iv"); 
  4295.    pragma Import (Stdcall, TexCoord3sv, "glTexCoord3sv"); 
  4296.    pragma Import (Stdcall, TexCoord4dv, "glTexCoord4dv"); 
  4297.    pragma Import (Stdcall, TexCoord4fv, "glTexCoord4fv"); 
  4298.    pragma Import (Stdcall, TexCoord4iv, "glTexCoord4iv"); 
  4299.    pragma Import (Stdcall, TexCoord4sv, "glTexCoord4sv"); 
  4300.    pragma Import (Stdcall, RasterPos2d, "glRasterPos2d"); 
  4301.    pragma Import (Stdcall, RasterPos2f, "glRasterPos2f"); 
  4302.    pragma Import (Stdcall, RasterPos2i, "glRasterPos2i"); 
  4303.    pragma Import (Stdcall, RasterPos2s, "glRasterPos2s"); 
  4304.    pragma Import (Stdcall, RasterPos3d, "glRasterPos3d"); 
  4305.    pragma Import (Stdcall, RasterPos3f, "glRasterPos3f"); 
  4306.    pragma Import (Stdcall, RasterPos3i, "glRasterPos3i"); 
  4307.    pragma Import (Stdcall, RasterPos3s, "glRasterPos3s"); 
  4308.    pragma Import (Stdcall, RasterPos4d, "glRasterPos4d"); 
  4309.    pragma Import (Stdcall, RasterPos4f, "glRasterPos4f"); 
  4310.    pragma Import (Stdcall, RasterPos4i, "glRasterPos4i"); 
  4311.    pragma Import (Stdcall, RasterPos4s, "glRasterPos4s"); 
  4312.    pragma Import (Stdcall, RasterPos2dv, "glRasterPos2dv"); 
  4313.    pragma Import (Stdcall, RasterPos2fv, "glRasterPos2fv"); 
  4314.    pragma Import (Stdcall, RasterPos2iv, "glRasterPos2iv"); 
  4315.    pragma Import (Stdcall, RasterPos2sv, "glRasterPos2sv"); 
  4316.    pragma Import (Stdcall, RasterPos3dv, "glRasterPos3dv"); 
  4317.    pragma Import (Stdcall, RasterPos3fv, "glRasterPos3fv"); 
  4318.    pragma Import (Stdcall, RasterPos3iv, "glRasterPos3iv"); 
  4319.    pragma Import (Stdcall, RasterPos3sv, "glRasterPos3sv"); 
  4320.    pragma Import (Stdcall, RasterPos4dv, "glRasterPos4dv"); 
  4321.    pragma Import (Stdcall, RasterPos4fv, "glRasterPos4fv"); 
  4322.    pragma Import (Stdcall, RasterPos4iv, "glRasterPos4iv"); 
  4323.    pragma Import (Stdcall, RasterPos4sv, "glRasterPos4sv"); 
  4324.    pragma Import (Stdcall, Rectd, "glRectd"); 
  4325.    pragma Import (Stdcall, Rectf, "glRectf"); 
  4326.    pragma Import (Stdcall, Recti, "glRecti"); 
  4327.    pragma Import (Stdcall, Rects, "glRects"); 
  4328.    pragma Import (Stdcall, Rectdv, "glRectdv"); 
  4329.    pragma Import (Stdcall, Rectfv, "glRectfv"); 
  4330.    pragma Import (Stdcall, Rectiv, "glRectiv"); 
  4331.    pragma Import (Stdcall, Rectsv, "glRectsv"); 
  4332.    pragma Import (Stdcall, VertexPointer, "glVertexPointer"); 
  4333.    pragma Import (Stdcall, Normal_Pointer, "glNormalPointer"); 
  4334.    pragma Import (Stdcall, ColorPointer, "glColorPointer"); 
  4335.    pragma Import (Stdcall, IndexPointer, "glIndexPointer"); 
  4336.    pragma Import (Stdcall, Tex_Coord_Pointer, "glTexCoordPointer"); 
  4337.    pragma Import (Stdcall, EdgeFlagPointer, "glEdgeFlagPointer"); 
  4338.    pragma Import (Stdcall, GetPointerv, "glGetPointerv"); 
  4339.    pragma Import (Stdcall, ArrayElement, "glArrayElement"); 
  4340.    pragma Import (Stdcall, DrawArrays, "glDrawArrays"); 
  4341.    pragma Import (Stdcall, DrawElements, "glDrawElements"); 
  4342.    pragma Import (Stdcall, interleavedArrays, "GL.interleavedArrays"); 
  4343.    pragma Import (Stdcall, ShadeModel, "glShadeModel"); 
  4344.    pragma Import (Stdcall, Lightf, "glLightf"); 
  4345.    pragma Import (Stdcall, Lighti, "glLighti"); 
  4346.    pragma Import (Stdcall, Lightfv, "glLightfv"); 
  4347.    pragma Import (Stdcall, Lightiv, "glLightiv"); 
  4348.    pragma Import (Stdcall, GetLightfv, "glGetLightfv"); 
  4349.    pragma Import (Stdcall, GetLightiv, "glGetLightiv"); 
  4350.    pragma Import (Stdcall, LightModelf, "glLightModelf"); 
  4351.    pragma Import (Stdcall, LightModeli, "glLightModeli"); 
  4352.    pragma Import (Stdcall, LightModelfv, "glLightModelfv"); 
  4353.    pragma Import (Stdcall, LightModeliv, "glLightModeliv"); 
  4354.    pragma Import (Stdcall, Materialf, "glMaterialf"); 
  4355.    pragma Import (Stdcall, Materiali, "glMateriali"); 
  4356.    pragma Import (Stdcall, Materialfv, "glMaterialfv"); 
  4357.    pragma Import (Stdcall, Materialiv, "glMaterialiv"); 
  4358.    pragma Import (Stdcall, GetMaterialfv, "glGetMaterialfv"); 
  4359.    pragma Import (Stdcall, GetMaterialiv, "glGetMaterialiv"); 
  4360.    pragma Import (Stdcall, ColorMaterial, "glColorMaterial"); 
  4361.    pragma Import (Stdcall, PixelZoom, "glPixelZoom"); 
  4362.    pragma Import (Stdcall, PixelStoref, "glPixelStoref"); 
  4363.    pragma Import (Stdcall, PixelStorei, "glPixelStorei"); 
  4364.    pragma Import (Stdcall, PixelTransferf, "glPixelTransferf"); 
  4365.    pragma Import (Stdcall, PixelTransferi, "glPixelTransferi"); 
  4366.    pragma Import (Stdcall, PixelMapfv, "glPixelMapfv"); 
  4367.    pragma Import (Stdcall, PixelMapuiv, "glPixelMapuiv"); 
  4368.    pragma Import (Stdcall, PixelMapusv, "glPixelMapusv"); 
  4369.    pragma Import (Stdcall, GetPixelMapfv, "glGetPixelMapfv"); 
  4370.    pragma Import (Stdcall, GetPixelMapuiv, "glGetPixelMapuiv"); 
  4371.    pragma Import (Stdcall, GetPixelMapusv, "glGetPixelMapusv"); 
  4372.    pragma Import (Stdcall, Bitmap, "glBitmap"); 
  4373.    pragma Import (Stdcall, ReadPixels, "glReadPixels"); 
  4374.    pragma Import (Stdcall, DrawPixels, "glDrawPixels"); 
  4375.    pragma Import (Stdcall, CopyPixels, "glCopyPixels"); 
  4376.    pragma Import (Stdcall, StencilFunc, "glStencilFunc"); 
  4377.    pragma Import (Stdcall, StencilMask, "glStencilMask"); 
  4378.    pragma Import (Stdcall, StencilOp, "glStencilOp"); 
  4379.    pragma Import (Stdcall, ClearStencil, "glClearStencil"); 
  4380.    pragma Import (Stdcall, TexGend, "glTexGend"); 
  4381.    pragma Import (Stdcall, TexGenf, "glTexGenf"); 
  4382.    pragma Import (Stdcall, TexGeni, "glTexGeni"); 
  4383.    pragma Import (Stdcall, TexGendv, "glTexGendv"); 
  4384.    pragma Import (Stdcall, TexGenfv, "glTexGenfv"); 
  4385.    pragma Import (Stdcall, TexGeniv, "glTexGeniv"); 
  4386.    pragma Import (Stdcall, GetTexGendv, "glGetTexGendv"); 
  4387.    pragma Import (Stdcall, GetTexGenfv, "glGetTexGenfv"); 
  4388.    pragma Import (Stdcall, GetTexGeniv, "glGetTexGeniv"); 
  4389.    pragma Import (Stdcall, TexEnvf, "glTexEnvf"); 
  4390.    pragma Import (Stdcall, TexEnvi, "glTexEnvi"); 
  4391.    pragma Import (Stdcall, TexEnvfv, "glTexEnvfv"); 
  4392.    pragma Import (Stdcall, TexEnviv, "glTexEnviv"); 
  4393.    pragma Import (Stdcall, GetTexEnvfv, "glGetTexEnvfv"); 
  4394.    pragma Import (Stdcall, GetTexEnviv, "glGetTexEnviv"); 
  4395.    pragma Import (Stdcall, TexParameterf, "glTexParameterf"); 
  4396.    pragma Import (Stdcall, TexParameteri, "glTexParameteri"); 
  4397.    pragma Import (Stdcall, TexParameterfv, "glTexParameterfv"); 
  4398.    pragma Import (Stdcall, TexParameteriv, "glTexParameteriv"); 
  4399.    pragma Import (Stdcall, GetTexParameterfv, "glGetTexParameterfv"); 
  4400.    pragma Import (Stdcall, GetTexParameteriv, "glGetTexParameteriv"); 
  4401.    pragma Import (Stdcall, GetTexLevelParameterfv, "glGetTexLevelParameterfv"); 
  4402.    pragma Import (Stdcall, GetTexLevelParameteriv, "glGetTexLevelParameteriv"); 
  4403.    pragma Import (Stdcall, TexImage1D, "glTexImage1D"); 
  4404.    pragma Import (Stdcall, TexImage2D, "glTexImage2D"); 
  4405.    pragma Import (Stdcall, GetTexImage, "glGetTexImage"); 
  4406.    pragma Import (Stdcall, Gen_Textures, "glGenTextures"); 
  4407.    pragma Import (Stdcall, Delete_Textures, "glDeleteTextures"); 
  4408.    pragma Import (Stdcall, BindTexture, "glBindTexture"); 
  4409.    pragma Import (Stdcall, PrioritizeTextures, "glPrioritizeTextures"); 
  4410.    pragma Import (Stdcall, AreTexturesResident, "glAreTexturesResident"); 
  4411.    pragma Import (Stdcall, IsTexture, "glIsTexture"); 
  4412.    pragma Import (Stdcall, TexSubImage1D, "glTexSubImage1D"); 
  4413.    pragma Import (Stdcall, TexSubImage2D, "glTexSubImage2D"); 
  4414.    pragma Import (Stdcall, CopyTexImage1D, "glCopyTexImage1D"); 
  4415.    pragma Import (Stdcall, CopyTexImage2D, "glCopyTexImage2D"); 
  4416.    pragma Import (Stdcall, CopyTexSubImage1D, "glCopyTexSubImage1D"); 
  4417.    pragma Import (Stdcall, CopyTexSubImage2D, "glCopyTexSubImage2D"); 
  4418.    pragma Import (Stdcall, Map1d, "glMap1d"); 
  4419.    pragma Import (Stdcall, Map1f, "glMap1f"); 
  4420.    pragma Import (Stdcall, Map2d, "glMap2d"); 
  4421.    pragma Import (Stdcall, Map2f, "glMap2f"); 
  4422.    pragma Import (Stdcall, GetMapdv, "glGetMapdv"); 
  4423.    pragma Import (Stdcall, GetMapfv, "glGetMapfv"); 
  4424.    pragma Import (Stdcall, GetMapiv, "glGetMapiv"); 
  4425.    pragma Import (Stdcall, EvalCoord1d, "glEvalCoord1d"); 
  4426.    pragma Import (Stdcall, EvalCoord1f, "glEvalCoord1f"); 
  4427.    pragma Import (Stdcall, EvalCoord1dv, "glEvalCoord1dv"); 
  4428.    pragma Import (Stdcall, EvalCoord1fv, "glEvalCoord1fv"); 
  4429.    pragma Import (Stdcall, EvalCoord2d, "glEvalCoord2d"); 
  4430.    pragma Import (Stdcall, EvalCoord2f, "glEvalCoord2f"); 
  4431.    pragma Import (Stdcall, EvalCoord2dv, "glEvalCoord2dv"); 
  4432.    pragma Import (Stdcall, EvalCoord2fv, "glEvalCoord2fv"); 
  4433.    pragma Import (Stdcall, MapGrid1d, "glMapGrid1d"); 
  4434.    pragma Import (Stdcall, MapGrid1f, "glMapGrid1f"); 
  4435.    pragma Import (Stdcall, MapGrid2d, "glMapGrid2d"); 
  4436.    pragma Import (Stdcall, MapGrid2f, "glMapGrid2f"); 
  4437.    pragma Import (Stdcall, EvalPoint1, "glEvalPoint1"); 
  4438.    pragma Import (Stdcall, EvalPoint2, "glEvalPoint2"); 
  4439.    pragma Import (Stdcall, EvalMesh1, "glEvalMesh1"); 
  4440.    pragma Import (Stdcall, EvalMesh2, "glEvalMesh2"); 
  4441.    pragma Import (Stdcall, Fogf, "glFogf"); 
  4442.    pragma Import (Stdcall, Fogi, "glFogi"); 
  4443.    pragma Import (Stdcall, Fogfv, "glFogfv"); 
  4444.    pragma Import (Stdcall, Fogiv, "glFogiv"); 
  4445.    pragma Import (Stdcall, FeedbackBuffer, "glFeedbackBuffer"); 
  4446.    pragma Import (Stdcall, PassThrough, "glPassThrough"); 
  4447.    pragma Import (Stdcall, SelectBuffer, "glSelectBuffer"); 
  4448.    pragma Import (Stdcall, InitNames, "glInitNames"); 
  4449.    pragma Import (Stdcall, LoadName, "glLoadName"); 
  4450.    pragma Import (Stdcall, PushName, "glPushName"); 
  4451.    pragma Import (Stdcall, PopName, "glPopName"); 
  4452.    pragma Import (Stdcall, BlendEquationEXT, "glBlendEquationEXT"); 
  4453.    pragma Import (Stdcall, BlendColorEXT, "glBlendColorEXT"); 
  4454.    pragma Import (Stdcall, TexImage3DEXT, "glTexImage3DEXT"); 
  4455.    pragma Import (Stdcall, TexSubImage3DEXT, "glTexSubImage3DEXT"); 
  4456.    pragma Import (Stdcall, CopyTexSubImage3DEXT, "glCopyTexSubImage3DEXT"); 
  4457.    pragma Import (Stdcall, ColorTableEXT, "glColorTableEXT"); 
  4458.    pragma Import (Stdcall, ColorSubTableEXT, "glColorSubTableEXT"); 
  4459.    pragma Import (Stdcall, GetColorTableEXT, "glGetColorTableEXT"); 
  4460.    pragma Import (Stdcall, GetColorTableParameterfvEXT, "glGetColorTableParameterfvEXT"); 
  4461.    pragma Import (Stdcall, GetColorTableParameterivEXT, "glGetColorTableParameterivEXT"); 
  4462.    pragma Import (Stdcall, PointParameterfEXT, "glPointParameterfEXT"); 
  4463.    pragma Import (Stdcall, PointParameterfvEXT, "glPointParameterfvEXT"); 
  4464.    pragma Import (Stdcall, WindowPos2iMESA, "glWindowPos2iMESA"); 
  4465.    pragma Import (Stdcall, WindowPos2sMESA, "glWindowPos2sMESA"); 
  4466.    pragma Import (Stdcall, WindowPos2fMESA, "glWindowPos2fMESA"); 
  4467.    pragma Import (Stdcall, WindowPos2dMESA, "glWindowPos2dMESA"); 
  4468.    pragma Import (Stdcall, WindowPos2ivMESA, "glWindowPos2ivMESA"); 
  4469.    pragma Import (Stdcall, WindowPos2svMESA, "glWindowPos2svMESA"); 
  4470.    pragma Import (Stdcall, WindowPos2fvMESA, "glWindowPos2fvMESA"); 
  4471.    pragma Import (Stdcall, WindowPos2dvMESA, "glWindowPos2dvMESA"); 
  4472.    pragma Import (Stdcall, WindowPos3iMESA, "glWindowPos3iMESA"); 
  4473.    pragma Import (Stdcall, WindowPos3sMESA, "glWindowPos3sMESA"); 
  4474.    pragma Import (Stdcall, WindowPos3fMESA, "glWindowPos3fMESA"); 
  4475.    pragma Import (Stdcall, WindowPos3dMESA, "glWindowPos3dMESA"); 
  4476.    pragma Import (Stdcall, WindowPos3ivMESA, "glWindowPos3ivMESA"); 
  4477.    pragma Import (Stdcall, WindowPos3svMESA, "glWindowPos3svMESA"); 
  4478.    pragma Import (Stdcall, WindowPos3fvMESA, "glWindowPos3fvMESA"); 
  4479.    pragma Import (Stdcall, WindowPos3dvMESA, "glWindowPos3dvMESA"); 
  4480.    pragma Import (Stdcall, WindowPos4iMESA, "glWindowPos4iMESA"); 
  4481.    pragma Import (Stdcall, WindowPos4sMESA, "glWindowPos4sMESA"); 
  4482.    pragma Import (Stdcall, WindowPos4fMESA, "glWindowPos4fMESA"); 
  4483.    pragma Import (Stdcall, WindowPos4dMESA, "glWindowPos4dMESA"); 
  4484.    pragma Import (Stdcall, WindowPos4ivMESA, "glWindowPos4ivMESA"); 
  4485.    pragma Import (Stdcall, WindowPos4svMESA, "glWindowPos4svMESA"); 
  4486.    pragma Import (Stdcall, WindowPos4fvMESA, "glWindowPos4fvMESA"); 
  4487.    pragma Import (Stdcall, WindowPos4dvMESA, "glWindowPos4dvMESA"); 
  4488.    pragma Import (Stdcall, ResizeBuffersMESA, "glResizeBuffersMESA"); 
  4489.  
  4490.    -- vertex buffer object imports (GL 1.5) 
  4491.    -- 
  4492.    pragma Convention (Stdcall, Gen_Buffers); 
  4493.    pragma Convention (Stdcall, Delete_Buffers); 
  4494.    pragma Convention (Stdcall, BindBuffer); 
  4495.    pragma Convention (Stdcall, Buffer_Data); 
  4496.    pragma Convention (Stdcall, BufferSubData); 
  4497.    pragma Convention (Stdcall, MapBuffer); 
  4498.    pragma Convention (Stdcall, UnmapBuffer); 
  4499.    pragma Convention (Stdcall, GetBufferParameter); 
  4500.  
  4501. end GL;