File : win32-glut.ads


     
     -- Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998.
     
     -- This program is freely distributable without licensing fees  and is
   5 -- provided without guarantee or warrantee expressed or  implied. This
     -- program is -not- in the public domain.
     
     --  modified for GNAT 3.11p/NT & Glut 3.7
     --  Jerry van Dijk, 22-feb-99, jdijk@acm.org
  10 --  use with accompanying DLL only
     --
     --  modified again for GNAT 3.14/NT & Glut 3.76
     --  Gene Ressler, 22-jan-03, ressler@usma.edu
     --  use with accompanying DLL only
  15 
     with Win32.GL;
     with Interfaces.C;
     with Interfaces.C.Strings;
     with System.Storage_Elements;
  20 
     package Win32.Glut is
     
        package GL renames Win32.GL;
     
  25 
        --  Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. 
     
     
        --  This program is freely distributable without licensing fees  and is
  30    --    provided without guarantee or warrantee expressed or  implied. This
        --    program is -not- in the public domain. 
     
     
     
  35    --  GLUT 3.7 now tries to avoid including <windows.h>
        --    to avoid name space pollution, but Win32's <GL/gl.h> 
        --    needs APIENTRY and WINGDIAPI defined properly. 
     
        --  XXX This is from Win32's <windef.h> 
  40 
        --  XXX This is from Win32's <winnt.h> 
     
        --  XXX Hack for lcc compiler.  It doesn't support __declspec(dllimport), just __stdcall. 
     
  45    --  XXX This is from Win32's <wingdi.h> and <winnt.h> 
     
        --  XXX This is from Win32's <ctype.h> 
     
     
  50    --  To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
        --    in your compile preprocessor options. 
     
        --  To enable automatic SGI OpenGL for Windows library usage for GLUT,
        --    define GLUT_USE_SGI_OPENGL in your compile preprocessor options.  
  55 
     
        --  To disable supression of annoying warnings about floats being promoted
        --    to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
        --    options. 
  60 
     
        --  Win32 has an annoying issue where there are multiple C run-time
        --    libraries (CRTs).  If the executable is linked with a different CRT
        --    from the GLUT DLL, the GLUT DLL will not share the same CRT static
  65    --    data seen by the executable.  In particular, atexit callbacks registered
        --    in the executable will not be called if GLUT calls its (different)
        --    exit routine).  GLUT is typically built with the
        --    "/MD" option (the CRT with multithreading DLL support), but the Visual
        --    C++ linker default is "/ML" (the single threaded CRT).
  70    -- 
        --    One workaround to this issue is requiring users to always link with
        --    the same CRT as GLUT is compiled with.  That requires users supply a
        --    non-standard option.  GLUT 3.7 has its own built-in workaround where
        --    the executable's "exit" function pointer is covertly passed to GLUT.
  75    --    GLUT then calls the executable's exit function pointer to ensure that
        --    any "atexit" calls registered by the application are called if GLUT
        --    needs to exit.
        -- 
        --    Note that the __glut*WithExit routines should NEVER be called directly.
  80    --    To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. 
     
     
        --  XXX This is from Win32's <process.h> 
     
  85    --  Current definition 
     
     
        --  GLUT API entry point declarations for Win32. 
     
  90 
        --  GLUT callback calling convention for Win32. 
     
     
     
  95 
     
     
        -- *
        --  GLUT API revision history:
 100    --  
        --  GLUT_API_VERSION is updated to reflect incompatible GLUT
        --  API changes (interface changes, semantic changes, deletions,
        --  or additions).
        --  
 105    --  GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
        -- 
        --  GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
        --  extension.  Supports new input devices like tablet, dial and button
        --  box, and Spaceball.  Easy to query OpenGL extensions.
 110    -- 
        --  GLUT_API_VERSION=3  glutMenuStatus added.
        -- 
        --  GLUT_API_VERSION=4  glutInitDisplayString, glutWarpPointer,
        --  glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
 115    --  video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
        --  glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
        --  glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
        -- *
     
 120 
        -- *
        --  GLUT implementation revision history:
        --  
        --  GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
 125    --  API revisions and implementation revisions (ie, bug fixes).
        -- 
        --  GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
        --  GLUT Xlib-based implementation.  11/29/94
        -- 
 130    --  GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
        --  GLUT Xlib-based implementation providing GLUT version 2 
        --  interfaces.
        -- 
        --  GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
 135    -- 
        --  GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
        -- 
        --  GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
        -- 
 140    --  GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
        -- 
        --  GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
        --  and video resize.  1/3/97
        -- 
 145    --  GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
        -- 
        --  GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
        -- 
        --  GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
 150    -- 
        --  GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
        -- 
        --  GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
        -- 
 155    --  GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
        -- *
     
        GLUT_XLIB_IMPLEMENTATION             : constant := 15; --  glut.h:223
     
 160    --  Display mode bit masks. 
     
        GLUT_RGB                             : constant := 0; --  glut.h:227
        GLUT_RGBA                            : constant := GLUT_RGB; --  glut.h:228
        GLUT_INDEX                           : constant := 1; --  glut.h:229
 165    GLUT_SINGLE                          : constant := 0; --  glut.h:230
        GLUT_DOUBLE                          : constant := 2; --  glut.h:231
        GLUT_ACCUM                           : constant := 4; --  glut.h:232
        GLUT_ALPHA                           : constant := 8; --  glut.h:233
        GLUT_DEPTH                           : constant := 16; --  glut.h:234
 170    GLUT_STENCIL                         : constant := 32; --  glut.h:235
        GLUT_MULTISAMPLE                     : constant := 128; --  glut.h:237
        GLUT_STEREO                          : constant := 256; --  glut.h:238
        GLUT_LUMINANCE                       : constant := 512; --  glut.h:241
     
 175    --  Mouse buttons. 
     
        GLUT_LEFT_BUTTON                     : constant := 0; --  glut.h:245
        GLUT_MIDDLE_BUTTON                   : constant := 1; --  glut.h:246
        GLUT_RIGHT_BUTTON                    : constant := 2; --  glut.h:247
 180 
        --  Mouse button  state. 
     
        GLUT_DOWN                            : constant := 0; --  glut.h:250
        GLUT_UP                              : constant := 1; --  glut.h:251
 185 
        --  function keys 
     
        GLUT_KEY_F1                          : constant := 1; --  glut.h:255
        GLUT_KEY_F2                          : constant := 2; --  glut.h:256
 190    GLUT_KEY_F3                          : constant := 3; --  glut.h:257
        GLUT_KEY_F4                          : constant := 4; --  glut.h:258
        GLUT_KEY_F5                          : constant := 5; --  glut.h:259
        GLUT_KEY_F6                          : constant := 6; --  glut.h:260
        GLUT_KEY_F7                          : constant := 7; --  glut.h:261
 195    GLUT_KEY_F8                          : constant := 8; --  glut.h:262
        GLUT_KEY_F9                          : constant := 9; --  glut.h:263
        GLUT_KEY_F10                         : constant := 10; --  glut.h:264
        GLUT_KEY_F11                         : constant := 11; --  glut.h:265
        GLUT_KEY_F12                         : constant := 12; --  glut.h:266
 200    --  directional keys 
     
        GLUT_KEY_LEFT                        : constant := 100; --  glut.h:268
        GLUT_KEY_UP                          : constant := 101; --  glut.h:269
        GLUT_KEY_RIGHT                       : constant := 102; --  glut.h:270
 205    GLUT_KEY_DOWN                        : constant := 103; --  glut.h:271
        GLUT_KEY_PAGE_UP                     : constant := 104; --  glut.h:272
        GLUT_KEY_PAGE_DOWN                   : constant := 105; --  glut.h:273
        GLUT_KEY_HOME                        : constant := 106; --  glut.h:274
        GLUT_KEY_END                         : constant := 107; --  glut.h:275
 210    GLUT_KEY_INSERT                      : constant := 108; --  glut.h:276
     
        --  Entry/exit  state. 
     
        GLUT_LEFT                            : constant := 0; --  glut.h:280
 215    GLUT_ENTERED                         : constant := 1; --  glut.h:281
     
        --  Menu usage  state. 
     
        GLUT_MENU_NOT_IN_USE                 : constant := 0; --  glut.h:284
 220    GLUT_MENU_IN_USE                     : constant := 1; --  glut.h:285
     
        --  Visibility  state. 
     
        GLUT_NOT_VISIBLE                     : constant := 0; --  glut.h:288
 225    GLUT_VISIBLE                         : constant := 1; --  glut.h:289
     
        --  Window status  state. 
     
        GLUT_HIDDEN                          : constant := 0; --  glut.h:292
 230    GLUT_FULLY_RETAINED                  : constant := 1; --  glut.h:293
        GLUT_PARTIALLY_RETAINED              : constant := 2; --  glut.h:294
        GLUT_FULLY_COVERED                   : constant := 3; --  glut.h:295
     
        --  Color index component selection values. 
 235 
        GLUT_RED                             : constant := 0; --  glut.h:298
        GLUT_GREEN                           : constant := 1; --  glut.h:299
        GLUT_BLUE                            : constant := 2; --  glut.h:300
     
 240    --  Stroke font constants (use these in GLUT program). 
     
        GLUT_STROKE_ROMAN                    : constant  System.Address
          := System.Storage_elements.To_Address(0); --  glut.h:304
        GLUT_STROKE_MONO_ROMAN               : constant  System.Address
 245      := System.Storage_elements.To_Address(1); --  glut.h:305
     
        --  Bitmap font constants (use these in GLUT program). 
     
        GLUT_BITMAP_9_BY_15                  : constant  System.Address
 250      := System.Storage_elements.To_Address(2); --  glut.h:308
        GLUT_BITMAP_8_BY_13                  : constant  System.Address
          := System.Storage_elements.To_Address(3); --  glut.h:309
        GLUT_BITMAP_TIMES_ROMAN_10           : constant  System.Address
          := System.Storage_elements.To_Address(4); --  glut.h:310
 255    GLUT_BITMAP_TIMES_ROMAN_24           : constant  System.Address
          := System.Storage_elements.To_Address(5); --  glut.h:311
        GLUT_BITMAP_HELVETICA_10             : constant  System.Address
          := System.Storage_elements.To_Address(6); --  glut.h:313
        GLUT_BITMAP_HELVETICA_12             : constant  System.Address
 260      := System.Storage_elements.To_Address(7); --  glut.h:314
        GLUT_BITMAP_HELVETICA_18             : constant  System.Address
          := System.Storage_elements.To_Address(8); --  glut.h:315
     
        --  glutGet parameters. 
 265 
        GLUT_WINDOW_X                        : constant := 100; --  glut.h:348
        GLUT_WINDOW_Y                        : constant := 101; --  glut.h:349
        GLUT_WINDOW_WIDTH                    : constant := 102; --  glut.h:350
        GLUT_WINDOW_HEIGHT                   : constant := 103; --  glut.h:351
 270    GLUT_WINDOW_BUFFER_SIZE              : constant := 104; --  glut.h:352
        GLUT_WINDOW_STENCIL_SIZE             : constant := 105; --  glut.h:353
        GLUT_WINDOW_DEPTH_SIZE               : constant := 106; --  glut.h:354
        GLUT_WINDOW_RED_SIZE                 : constant := 107; --  glut.h:355
        GLUT_WINDOW_GREEN_SIZE               : constant := 108; --  glut.h:356
 275    GLUT_WINDOW_BLUE_SIZE                : constant := 109; --  glut.h:357
        GLUT_WINDOW_ALPHA_SIZE               : constant := 110; --  glut.h:358
        GLUT_WINDOW_ACCUM_RED_SIZE           : constant := 111; --  glut.h:359
        GLUT_WINDOW_ACCUM_GREEN_SIZE         : constant := 112; --  glut.h:360
        GLUT_WINDOW_ACCUM_BLUE_SIZE          : constant := 113; --  glut.h:361
 280    GLUT_WINDOW_ACCUM_ALPHA_SIZE         : constant := 114; --  glut.h:362
        GLUT_WINDOW_DOUBLEBUFFER             : constant := 115; --  glut.h:363
        GLUT_WINDOW_RGBA                     : constant := 116; --  glut.h:364
        GLUT_WINDOW_PARENT                   : constant := 117; --  glut.h:365
        GLUT_WINDOW_NUM_CHILDREN             : constant := 118; --  glut.h:366
 285    GLUT_WINDOW_COLORMAP_SIZE            : constant := 119; --  glut.h:367
        GLUT_WINDOW_NUM_SAMPLES              : constant := 120; --  glut.h:369
        GLUT_WINDOW_STEREO                   : constant := 121; --  glut.h:370
        GLUT_WINDOW_CURSOR                   : constant := 122; --  glut.h:373
        GLUT_SCREEN_WIDTH                    : constant := 200; --  glut.h:375
 290    GLUT_SCREEN_HEIGHT                   : constant := 201; --  glut.h:376
        GLUT_SCREEN_WIDTH_MM                 : constant := 202; --  glut.h:377
        GLUT_SCREEN_HEIGHT_MM                : constant := 203; --  glut.h:378
        GLUT_MENU_NUM_ITEMS                  : constant := 300; --  glut.h:379
        GLUT_DISPLAY_MODE_POSSIBLE           : constant := 400; --  glut.h:380
 295    GLUT_INIT_WINDOW_X                   : constant := 500; --  glut.h:381
        GLUT_INIT_WINDOW_Y                   : constant := 501; --  glut.h:382
        GLUT_INIT_WINDOW_WIDTH               : constant := 502; --  glut.h:383
        GLUT_INIT_WINDOW_HEIGHT              : constant := 503; --  glut.h:384
        GLUT_INIT_DISPLAY_MODE               : constant := 504; --  glut.h:385
 300    GLUT_ELAPSED_TIME                    : constant := 700; --  glut.h:387
        GLUT_WINDOW_FORMAT_ID                : constant := 123; --  glut.h:390
     
        --  glutDeviceGet parameters. 
     
 305    GLUT_HAS_KEYBOARD                    : constant := 600; --  glut.h:395
        GLUT_HAS_MOUSE                       : constant := 601; --  glut.h:396
        GLUT_HAS_SPACEBALL                   : constant := 602; --  glut.h:397
        GLUT_HAS_DIAL_AND_BUTTON_BOX         : constant := 603; --  glut.h:398
        GLUT_HAS_TABLET                      : constant := 604; --  glut.h:399
 310    GLUT_NUM_MOUSE_BUTTONS               : constant := 605; --  glut.h:400
        GLUT_NUM_SPACEBALL_BUTTONS           : constant := 606; --  glut.h:401
        GLUT_NUM_BUTTON_BOX_BUTTONS          : constant := 607; --  glut.h:402
        GLUT_NUM_DIALS                       : constant := 608; --  glut.h:403
        GLUT_NUM_TABLET_BUTTONS              : constant := 609; --  glut.h:404
 315    GLUT_DEVICE_IGNORE_KEY_REPEAT        : constant := 610; --  glut.h:407
        GLUT_DEVICE_KEY_REPEAT               : constant := 611; --  glut.h:408
        GLUT_HAS_JOYSTICK                    : constant := 612; --  glut.h:409
        GLUT_OWNS_JOYSTICK                   : constant := 613; --  glut.h:410
        GLUT_JOYSTICK_BUTTONS                : constant := 614; --  glut.h:411
 320    GLUT_JOYSTICK_AXES                   : constant := 615; --  glut.h:412
        GLUT_JOYSTICK_POLL_RATE              : constant := 616; --  glut.h:413
     
        --  glutLayerGet parameters. 
     
 325    GLUT_OVERLAY_POSSIBLE                : constant := 800; --  glut.h:418
        GLUT_LAYER_IN_USE                    : constant := 801; --  glut.h:419
        GLUT_HAS_OVERLAY                     : constant := 802; --  glut.h:420
        GLUT_TRANSPARENT_INDEX               : constant := 803; --  glut.h:421
        GLUT_NORMAL_DAMAGED                  : constant := 804; --  glut.h:422
 330    GLUT_OVERLAY_DAMAGED                 : constant := 805; --  glut.h:423
     
        --  glutVideoResizeGet parameters. 
     
        GLUT_VIDEO_RESIZE_POSSIBLE           : constant := 900; --  glut.h:427
 335    GLUT_VIDEO_RESIZE_IN_USE             : constant := 901; --  glut.h:428
        GLUT_VIDEO_RESIZE_X_DELTA            : constant := 902; --  glut.h:429
        GLUT_VIDEO_RESIZE_Y_DELTA            : constant := 903; --  glut.h:430
        GLUT_VIDEO_RESIZE_WIDTH_DELTA        : constant := 904; --  glut.h:431
        GLUT_VIDEO_RESIZE_HEIGHT_DELTA       : constant := 905; --  glut.h:432
 340    GLUT_VIDEO_RESIZE_X                  : constant := 906; --  glut.h:433
        GLUT_VIDEO_RESIZE_Y                  : constant := 907; --  glut.h:434
        GLUT_VIDEO_RESIZE_WIDTH              : constant := 908; --  glut.h:435
        GLUT_VIDEO_RESIZE_HEIGHT             : constant := 909; --  glut.h:436
     
 345    --  glutUseLayer parameters. 
     
        GLUT_NORMAL                          : constant := 0; --  glut.h:440
        GLUT_OVERLAY                         : constant := 1; --  glut.h:441
     
 350    --  glutGetModifiers return mask. 
     
        GLUT_ACTIVE_SHIFT                    : constant := 1; --  glut.h:444
        GLUT_ACTIVE_CTRL                     : constant := 2; --  glut.h:445
        GLUT_ACTIVE_ALT                      : constant := 4; --  glut.h:446
 355 
        --  glutSetCursor parameters. 
     
        --  Basic arrows. 
     
 360    GLUT_CURSOR_RIGHT_ARROW              : constant := 0; --  glut.h:450
        GLUT_CURSOR_LEFT_ARROW               : constant := 1; --  glut.h:451
        --  Symbolic cursor shapes. 
     
        GLUT_CURSOR_INFO                     : constant := 2; --  glut.h:453
 365    GLUT_CURSOR_DESTROY                  : constant := 3; --  glut.h:454
        GLUT_CURSOR_HELP                     : constant := 4; --  glut.h:455
        GLUT_CURSOR_CYCLE                    : constant := 5; --  glut.h:456
        GLUT_CURSOR_SPRAY                    : constant := 6; --  glut.h:457
        GLUT_CURSOR_WAIT                     : constant := 7; --  glut.h:458
 370    GLUT_CURSOR_TEXT                     : constant := 8; --  glut.h:459
        GLUT_CURSOR_CROSSHAIR                : constant := 9; --  glut.h:460
        --  Directional cursors. 
     
        GLUT_CURSOR_UP_DOWN                  : constant := 10; --  glut.h:462
 375    GLUT_CURSOR_LEFT_RIGHT               : constant := 11; --  glut.h:463
        --  Sizing cursors. 
     
        GLUT_CURSOR_TOP_SIDE                 : constant := 12; --  glut.h:465
        GLUT_CURSOR_BOTTOM_SIDE              : constant := 13; --  glut.h:466
 380    GLUT_CURSOR_LEFT_SIDE                : constant := 14; --  glut.h:467
        GLUT_CURSOR_RIGHT_SIDE               : constant := 15; --  glut.h:468
        GLUT_CURSOR_TOP_LEFT_CORNER          : constant := 16; --  glut.h:469
        GLUT_CURSOR_TOP_RIGHT_CORNER         : constant := 17; --  glut.h:470
        GLUT_CURSOR_BOTTOM_RIGHT_CORNER      : constant := 18; --  glut.h:471
 385    GLUT_CURSOR_BOTTOM_LEFT_CORNER       : constant := 19; --  glut.h:472
        --  Inherit from parent window. 
     
        GLUT_CURSOR_INHERIT                  : constant := 100; --  glut.h:474
        --  Blank cursor. 
 390 
        GLUT_CURSOR_NONE                     : constant := 101; --  glut.h:476
        --  Fullscreen crosshair (if available). 
     
        GLUT_CURSOR_FULL_CROSSHAIR           : constant := 102; --  glut.h:478
 395 
        --  GLUT initialization sub-API. 
     
     
        procedure glutInit(
 400       argcp : access Integer;
           argv : access Interfaces.C.Strings.Chars_Ptr
        ); --  glut.h:482
        pragma Import (Stdcall, glutInit, "glutInit");
     
 405    procedure glutInitDisplayMode(
           mode : Interfaces.C.unsigned
        ); --  glut.h:490
        pragma Import (Stdcall, glutInitDisplayMode, "glutInitDisplayMode");
     
 410    procedure glutInitDisplayString(
           the_string : Interfaces.C.Strings.Chars_Ptr
        ); --  glut.h:492
        pragma Import (Stdcall, glutInitDisplayString, "glutInitDisplayString");
     
 415    procedure glutInitDisplayString(
           the_string : String
        ); --  glut.h:492
     
        procedure glutInitWindowPosition(
 420       x : Integer;
           y : Integer
        ); --  glut.h:494
        pragma Import (Stdcall, glutInitWindowPosition, "glutInitWindowPosition");
     
 425    procedure glutInitWindowSize(
           width : Integer;
           height : Integer
        ); --  glut.h:495
        pragma Import (Stdcall, glutInitWindowSize, "glutInitWindowSize");
 430 
        procedure glutMainLoop; --  gl.h:496
        pragma Import (Stdcall, glutMainLoop, "glutMainLoop");
     
        --  GLUT window sub-API. 
 435 
     
        function glutCreateWindow(
           title : Interfaces.C.Strings.Chars_Ptr
        ) return Integer; --  glut.h:499
 440    pragma Import (Stdcall, glutCreateWindow, "glutCreateWindow");
     
        function glutCreateWindow(
           title : String
        ) return Integer; --  glut.h:499
 445 
        function glutCreateSubWindow(
           win : Integer;
           x : Integer;
           y : Integer;
 450       width : Integer;
           height : Integer
        ) return Integer; --  glut.h:507
        pragma Import (Stdcall, glutCreateSubWindow, "glutCreateSubWindow");
     
 455    procedure glutDestroyWindow(
           win : Integer
        ); --  glut.h:508
        pragma Import (Stdcall, glutDestroyWindow, "glutDestroyWindow");
     
 460    procedure glutPostRedisplay; --  gl.h:509
        pragma Import (Stdcall, glutPostRedisplay, "glutPostRedisplay");
     
        procedure glutPostWindowRedisplay(
           win : Integer
 465    ); --  glut.h:511
        pragma Import (Stdcall, glutPostWindowRedisplay, "glutPostWindowRedisplay");
     
        procedure glutSwapBuffers; --  gl.h:513
        pragma Import (Stdcall, glutSwapBuffers, "glutSwapBuffers");
 470    function glutGetWindow return Integer; --  gl.h:514
        pragma Import (Stdcall, glutGetWindow, "glutGetWindow");
     
        procedure glutSetWindow(
           win : Integer
 475    ); --  glut.h:515
        pragma Import (Stdcall, glutSetWindow, "glutSetWindow");
     
        procedure glutSetWindowTitle(
           title : Interfaces.C.Strings.Chars_Ptr
 480    ); --  glut.h:516
        pragma Import (Stdcall, glutSetWindowTitle, "glutSetWindowTitle");
     
        procedure glutSetWindowTitle(
           title : String
 485    ); --  glut.h:516
     
        procedure glutSetIconTitle(
           title : Interfaces.C.Strings.Chars_Ptr
        ); --  glut.h:517
 490    pragma Import (Stdcall, glutSetIconTitle, "glutSetIconTitle");
     
        procedure glutSetIconTitle(
           title : String
        ); --  glut.h:517
 495 
        procedure glutPositionWindow(
           x : Integer;
           y : Integer
        ); --  glut.h:518
 500    pragma Import (Stdcall, glutPositionWindow, "glutPositionWindow");
     
        procedure glutReshapeWindow(
           width : Integer;
           height : Integer
 505    ); --  glut.h:519
        pragma Import (Stdcall, glutReshapeWindow, "glutReshapeWindow");
     
        procedure glutPopWindow; --  gl.h:520
        pragma Import (Stdcall, glutPopWindow, "glutPopWindow");
 510 
        procedure glutPushWindow; --  gl.h:521
        pragma Import (Stdcall, glutPushWindow, "glutPushWindow");
     
        procedure glutIconifyWindow; --  gl.h:522
 515    pragma Import (Stdcall, glutIconifyWindow, "glutIconifyWindow");
     
        procedure glutShowWindow; --  gl.h:523
        pragma Import (Stdcall, glutShowWindow, "glutShowWindow");
     
 520    procedure glutHideWindow; --  gl.h:524
        pragma Import (Stdcall, glutHideWindow, "glutHideWindow");
     
        procedure glutFullScreen; --  gl.h:526
        pragma Import (Stdcall, glutFullScreen, "glutFullScreen");
 525 
        procedure glutSetCursor(
           cursor : Integer
        ); --  glut.h:527
        pragma Import (Stdcall, glutSetCursor, "glutSetCursor");
 530 
        procedure glutWarpPointer(
           x : Integer;
           y : Integer
        ); --  glut.h:529
 535    pragma Import (Stdcall, glutWarpPointer, "glutWarpPointer");
     
        --  GLUT overlay sub-API. 
     
     
 540    procedure glutEstablishOverlay; --  gl.h:533
        pragma Import (Stdcall, glutEstablishOverlay, "glutEstablishOverlay");
     
        procedure glutRemoveOverlay; --  gl.h:534
        pragma Import (Stdcall, glutRemoveOverlay, "glutRemoveOverlay");
 545 
        procedure glutUseLayer(
           layer : GL.GLenum
        ); --  glut.h:535
        pragma Import (Stdcall, glutUseLayer, "glutUseLayer");
 550 
        procedure glutPostOverlayRedisplay; --  gl.h:536
        pragma Import (Stdcall, glutPostOverlayRedisplay, "glutPostOverlayRedisplay");
     
        procedure glutPostWindowOverlayRedisplay(
 555       win : Integer
        ); --  glut.h:538
        pragma Import (Stdcall, glutPostWindowOverlayRedisplay, "glutPostWindowOverlayRedisplay");
     
        procedure glutShowOverlay; --  gl.h:540
 560    pragma Import (Stdcall, glutShowOverlay, "glutShowOverlay");
     
        procedure glutHideOverlay; --  gl.h:541
        pragma Import (Stdcall, glutHideOverlay, "glutHideOverlay");
     
 565    --  GLUT menu sub-API. 
     
     
        type glutCreateMenu_Type is access procedure (
           t01 : Integer
 570    );
        function glutCreateMenu(
           func : glutCreateMenu_Type
        ) return Integer; --  glut.h:545
        pragma Import (Stdcall, glutCreateMenu, "glutCreateMenu");
 575 
        procedure glutDestroyMenu(
           menu : Integer
        ); --  glut.h:553
        pragma Import (Stdcall, glutDestroyMenu, "glutDestroyMenu");
 580    function glutGetMenu return Integer; --  gl.h:554
        pragma Import (Stdcall, glutGetMenu, "glutGetMenu");
     
        procedure glutSetMenu(
           menu : Integer
 585    ); --  glut.h:555
        pragma Import (Stdcall, glutSetMenu, "glutSetMenu");
     
        procedure glutAddMenuEntry(
           label : Interfaces.C.Strings.Chars_Ptr;
 590       value : Integer
        ); --  glut.h:556
        pragma Import (Stdcall, glutAddMenuEntry, "glutAddMenuEntry");
     
        procedure glutAddMenuEntry(
 595       label : String;
           value : Integer
        ); --  glut.h:556
     
        procedure glutAddSubMenu(
 600       label : Interfaces.C.Strings.Chars_Ptr;
           submenu : Integer
        ); --  glut.h:557
        pragma Import (Stdcall, glutAddSubMenu, "glutAddSubMenu");
     
 605    procedure glutAddSubMenu(
           label : String;
           submenu : Integer
        ); --  glut.h:557
     
 610    procedure glutChangeToMenuEntry(
           item : Integer;
           label : Interfaces.C.Strings.Chars_Ptr;
           value : Integer
        ); --  glut.h:558
 615    pragma Import (Stdcall, glutChangeToMenuEntry, "glutChangeToMenuEntry");
     
        procedure glutChangeToMenuEntry(
           item : Integer;
           label : String;
 620       value : Integer
        ); --  glut.h:558
     
        procedure glutChangeToSubMenu(
           item : Integer;
 625       label : Interfaces.C.Strings.Chars_Ptr;
           submenu : Integer
        ); --  glut.h:559
        pragma Import (Stdcall, glutChangeToSubMenu, "glutChangeToSubMenu");
     
 630    procedure glutChangeToSubMenu(
           item : Integer;
           label : String;
           submenu : Integer
        ); --  glut.h:559
 635 
        procedure glutRemoveMenuItem(
           item : Integer
        ); --  glut.h:560
        pragma Import (Stdcall, glutRemoveMenuItem, "glutRemoveMenuItem");
 640 
        procedure glutAttachMenu(
           button : Integer
        ); --  glut.h:561
        pragma Import (Stdcall, glutAttachMenu, "glutAttachMenu");
 645 
        procedure glutDetachMenu(
           button : Integer
        ); --  glut.h:562
        pragma Import (Stdcall, glutDetachMenu, "glutDetachMenu");
 650 
        --  GLUT window callback sub-API. 
     
     
        type glutDisplayFunc_Type is access procedure;
 655 
        procedure glutDisplayFunc(
           func : glutDisplayFunc_Type
        ); --  glut.h:565
        pragma Import (Stdcall, glutDisplayFunc, "glutDisplayFunc");
 660 
        type glutReshapeFunc_Type is access procedure (
           width : Integer;
           height : Integer
        );
 665    procedure glutReshapeFunc(
           func : glutReshapeFunc_Type
        ); --  glut.h:566
        pragma Import (Stdcall, glutReshapeFunc, "glutReshapeFunc");
     
 670    type glutKeyboardFunc_Type is access procedure (
           key : Interfaces.C.unsigned_char;
           x : Integer;
           y : Integer
        );
 675    procedure glutKeyboardFunc(
           func : glutKeyboardFunc_Type
        ); --  glut.h:567
        pragma Import (Stdcall, glutKeyboardFunc, "glutKeyboardFunc");
     
 680    type glutMouseFunc_Type is access procedure (
           button : Integer;
           state : Integer;
           x : Integer;
           y : Integer
 685    );
        procedure glutMouseFunc(
           func : glutMouseFunc_Type
        ); --  glut.h:568
        pragma Import (Stdcall, glutMouseFunc, "glutMouseFunc");
 690 
        type glutMotionFunc_Type is access procedure (
           x : Integer;
           y : Integer
        );
 695    procedure glutMotionFunc(
           func : glutMotionFunc_Type
        ); --  glut.h:569
        pragma Import (Stdcall, glutMotionFunc, "glutMotionFunc");
     
 700    type glutPassiveMotionFunc_Type is access procedure (
           x : Integer;
           y : Integer
        );
        procedure glutPassiveMotionFunc(
 705       func : glutPassiveMotionFunc_Type
        ); --  glut.h:570
        pragma Import (Stdcall, glutPassiveMotionFunc, "glutPassiveMotionFunc");
     
        type glutEntryFunc_Type is access procedure (
 710       state : Integer
        );
        procedure glutEntryFunc(
           func : glutEntryFunc_Type
        ); --  glut.h:571
 715    pragma Import (Stdcall, glutEntryFunc, "glutEntryFunc");
     
        type glutVisibilityFunc_Type is access procedure (
           state : Integer
        );
 720    procedure glutVisibilityFunc(
           func : glutVisibilityFunc_Type
        ); --  glut.h:572
        pragma Import (Stdcall, glutVisibilityFunc, "glutVisibilityFunc");
     
 725    type glutIdleFunc_Type is access procedure;
     
        procedure glutIdleFunc(
           func : glutIdleFunc_Type
        ); --  glut.h:573
 730    pragma Import (Stdcall, glutIdleFunc, "glutIdleFunc");
     
        type glutTimerFunc_Type is access procedure (
           value : Integer
        );
 735    procedure glutTimerFunc(
           millis : Interfaces.C.unsigned;
           func : glutTimerFunc_Type;
           value : Integer
        ); --  glut.h:574
 740    pragma Import (Stdcall, glutTimerFunc, "glutTimerFunc");
     
        type glutMenuStateFunc_Type is access procedure (
           state : Integer
        );
 745    procedure glutMenuStateFunc(
           func : glutMenuStateFunc_Type
        ); --  glut.h:575
        pragma Import (Stdcall, glutMenuStateFunc, "glutMenuStateFunc");
     
 750    type glutSpecialFunc_Type is access procedure (
           key : Integer;
           x : Integer;
           y : Integer
        );
 755    procedure glutSpecialFunc(
           func : glutSpecialFunc_Type
        ); --  glut.h:577
        pragma Import (Stdcall, glutSpecialFunc, "glutSpecialFunc");
     
 760    type glutSpaceballMotionFunc_Type is access procedure (
           x : Integer;
           y : Integer;
           z : Integer
        );
 765    procedure glutSpaceballMotionFunc(
           func : glutSpaceballMotionFunc_Type
        ); --  glut.h:578
        pragma Import (Stdcall, glutSpaceballMotionFunc, "glutSpaceballMotionFunc");
     
 770    type glutSpaceballRotateFunc_Type is access procedure (
           x : Integer;
           y : Integer;
           z : Integer
        );
 775    procedure glutSpaceballRotateFunc(
           func : glutSpaceballRotateFunc_Type
        ); --  glut.h:579
        pragma Import (Stdcall, glutSpaceballRotateFunc, "glutSpaceballRotateFunc");
     
 780    type glutSpaceballButtonFunc_Type is access procedure (
           button : Integer;
           state : Integer
        );
        procedure glutSpaceballButtonFunc(
 785       func : glutSpaceballButtonFunc_Type
        ); --  glut.h:580
        pragma Import (Stdcall, glutSpaceballButtonFunc, "glutSpaceballButtonFunc");
     
        type glutButtonBoxFunc_Type is access procedure (
 790       button : Integer;
           state : Integer
        );
        procedure glutButtonBoxFunc(
           func : glutButtonBoxFunc_Type
 795    ); --  glut.h:581
        pragma Import (Stdcall, glutButtonBoxFunc, "glutButtonBoxFunc");
     
        type glutDialsFunc_Type is access procedure (
           dial : Integer;
 800       value : Integer
        );
        procedure glutDialsFunc(
           func : glutDialsFunc_Type
        ); --  glut.h:582
 805    pragma Import (Stdcall, glutDialsFunc, "glutDialsFunc");
     
        type glutTabletMotionFunc_Type is access procedure (
           x : Integer;
           y : Integer
 810    );
        procedure glutTabletMotionFunc(
           func : glutTabletMotionFunc_Type
        ); --  glut.h:583
        pragma Import (Stdcall, glutTabletMotionFunc, "glutTabletMotionFunc");
 815 
        type glutTabletButtonFunc_Type is access procedure (
           button : Integer;
           state : Integer;
           x : Integer;
 820       y : Integer
        );
        procedure glutTabletButtonFunc(
           func : glutTabletButtonFunc_Type
        ); --  glut.h:584
 825    pragma Import (Stdcall, glutTabletButtonFunc, "glutTabletButtonFunc");
     
        type glutMenuStatusFunc_Type is access procedure (
           status : Integer;
           x : Integer;
 830       y : Integer
        );
        procedure glutMenuStatusFunc(
           func : glutMenuStatusFunc_Type
        ); --  glut.h:586
 835    pragma Import (Stdcall, glutMenuStatusFunc, "glutMenuStatusFunc");
     
        type glutOverlayDisplayFunc_Type is access procedure;
     
        procedure glutOverlayDisplayFunc(
 840       func : glutOverlayDisplayFunc_Type
        ); --  glut.h:587
        pragma Import (Stdcall, glutOverlayDisplayFunc, "glutOverlayDisplayFunc");
     
        type glutWindowStatusFunc_Type is access procedure (
 845       state : Integer
        );
        procedure glutWindowStatusFunc(
           func : glutWindowStatusFunc_Type
        ); --  glut.h:589
 850    pragma Import (Stdcall, glutWindowStatusFunc, "glutWindowStatusFunc");
     
        type glutKeyboardUpFunc_Type is access procedure (
           key : Interfaces.C.unsigned_char;
           x : Integer;
 855       y : Integer
        );
        procedure glutKeyboardUpFunc(
           func : glutKeyboardUpFunc_Type
        ); --  glut.h:592
 860    pragma Import (Stdcall, glutKeyboardUpFunc, "glutKeyboardUpFunc");
     
        type glutSpecialUpFunc_Type is access procedure (
           key : Integer;
           x : Integer;
 865       y : Integer
        );
        procedure glutSpecialUpFunc(
           func : glutSpecialUpFunc_Type
        ); --  glut.h:593
 870    pragma Import (Stdcall, glutSpecialUpFunc, "glutSpecialUpFunc");
     
        type glutJoystickFunc_Type is access procedure (
           buttonMask : Interfaces.C.unsigned;
           x : Integer;
 875       y : Integer;
           z : Integer
        );
        procedure glutJoystickFunc(
           func : glutJoystickFunc_Type;
 880       pollInterval : Integer
        ); --  glut.h:594
        pragma Import (Stdcall, glutJoystickFunc, "glutJoystickFunc");
     
        --  GLUT color index sub-API. 
 885 
     
        procedure glutSetColor(
           t02 : Integer;
           red : GL.GLfloat;
 890       green : GL.GLfloat;
           blue : GL.GLfloat
        ); --  glut.h:600
        pragma Import (Stdcall, glutSetColor, "glutSetColor");
     
 895    function glutGetColor(
           ndx : Integer;
           component : Integer
        ) return GL.GLfloat; --  glut.h:601
        pragma Import (Stdcall, glutGetColor, "glutGetColor");
 900 
        procedure glutCopyColormap(
           win : Integer
        ); --  glut.h:602
        pragma Import (Stdcall, glutCopyColormap, "glutCopyColormap");
 905 
        --  GLUT state retrieval sub-API. 
     
     
        function glutGet(
 910       the_type : GL.GLenum
        ) return Integer; --  glut.h:605
        pragma Import (Stdcall, glutGet, "glutGet");
     
        function glutDeviceGet(
 915       the_type : GL.GLenum
        ) return Integer; --  glut.h:606
        pragma Import (Stdcall, glutDeviceGet, "glutDeviceGet");
        --  GLUT extension support sub-API 
     
 920 
        function glutExtensionSupported(
           name : Interfaces.C.Strings.Chars_Ptr
        ) return Integer; --  glut.h:609
        pragma Import (Stdcall, glutExtensionSupported, "glutExtensionSupported");
 925 
        function glutExtensionSupported(
           name : String
        ) return Integer; --  glut.h:609
        function glutGetModifiers return Integer; --  gl.h:612
 930    pragma Import (Stdcall, glutGetModifiers, "glutGetModifiers");
     
        function glutLayerGet(
           the_type : GL.GLenum
        ) return Integer; --  glut.h:613
 935    pragma Import (Stdcall, glutLayerGet, "glutLayerGet");
     
        --  GLUT font sub-API 
     
     
 940    procedure glutBitmapCharacter(
           font : System.Address;
           character : Integer
        ); --  glut.h:617
        pragma Import (Stdcall, glutBitmapCharacter, "glutBitmapCharacter");
 945 
        function glutBitmapWidth(
           font : System.Address;
           character : Integer
        ) return Integer; --  glut.h:618
 950    pragma Import (Stdcall, glutBitmapWidth, "glutBitmapWidth");
     
        procedure glutStrokeCharacter(
           font : System.Address;
           character : Integer
 955    ); --  glut.h:619
        pragma Import (Stdcall, glutStrokeCharacter, "glutStrokeCharacter");
     
        function glutStrokeWidth(
           font : System.Address;
 960       character : Integer
        ) return Integer; --  glut.h:620
        pragma Import (Stdcall, glutStrokeWidth, "glutStrokeWidth");
     
        function glutBitmapLength(
 965       font : System.Address;
           the_string : Interfaces.C.Strings.Chars_Ptr
        ) return Integer; --  glut.h:622
        pragma Import (Stdcall, glutBitmapLength, "glutBitmapLength");
     
 970    function glutBitmapLength(
           font : System.Address;
           the_string : String
        ) return Integer; --  glut.h:622
     
 975    function glutStrokeLength(
           font : System.Address;
           the_string : Interfaces.C.Strings.Chars_Ptr
        ) return Integer; --  glut.h:623
        pragma Import (Stdcall, glutStrokeLength, "glutStrokeLength");
 980 
        function glutStrokeLength(
           font : System.Address;
           the_string : String
        ) return Integer; --  glut.h:623
 985 
        --  GLUT pre-built models sub-API 
     
     
        procedure glutWireSphere(
 990       radius : GL.GLdouble;
           slices : GL.GLint;
           stacks : GL.GLint
        ); --  glut.h:627
        pragma Import (Stdcall, glutWireSphere, "glutWireSphere");
 995 
        procedure glutSolidSphere(
           radius : GL.GLdouble;
           slices : GL.GLint;
           stacks : GL.GLint
1000    ); --  glut.h:628
        pragma Import (Stdcall, glutSolidSphere, "glutSolidSphere");
     
        procedure glutWireCone(
           base : GL.GLdouble;
1005       height : GL.GLdouble;
           slices : GL.GLint;
           stacks : GL.GLint
        ); --  glut.h:629
        pragma Import (Stdcall, glutWireCone, "glutWireCone");
1010 
        procedure glutSolidCone(
           base : GL.GLdouble;
           height : GL.GLdouble;
           slices : GL.GLint;
1015       stacks : GL.GLint
        ); --  glut.h:630
        pragma Import (Stdcall, glutSolidCone, "glutSolidCone");
     
        procedure glutWireCube(
1020       size : GL.GLdouble
        ); --  glut.h:631
        pragma Import (Stdcall, glutWireCube, "glutWireCube");
     
        procedure glutSolidCube(
1025       size : GL.GLdouble
        ); --  glut.h:632
        pragma Import (Stdcall, glutSolidCube, "glutSolidCube");
     
        procedure glutWireTorus(
1030       innerRadius : GL.GLdouble;
           outerRadius : GL.GLdouble;
           sides : GL.GLint;
           rings : GL.GLint
        ); --  glut.h:633
1035    pragma Import (Stdcall, glutWireTorus, "glutWireTorus");
     
        procedure glutSolidTorus(
           innerRadius : GL.GLdouble;
           outerRadius : GL.GLdouble;
1040       sides : GL.GLint;
           rings : GL.GLint
        ); --  glut.h:634
        pragma Import (Stdcall, glutSolidTorus, "glutSolidTorus");
     
1045    procedure glutWireDodecahedron; --  gl.h:635
        pragma Import (Stdcall, glutWireDodecahedron, "glutWireDodecahedron");
     
        procedure glutSolidDodecahedron; --  gl.h:636
        pragma Import (Stdcall, glutSolidDodecahedron, "glutSolidDodecahedron");
1050 
        procedure glutWireTeapot(
           size : GL.GLdouble
        ); --  glut.h:637
        pragma Import (Stdcall, glutWireTeapot, "glutWireTeapot");
1055 
        procedure glutSolidTeapot(
           size : GL.GLdouble
        ); --  glut.h:638
        pragma Import (Stdcall, glutSolidTeapot, "glutSolidTeapot");
1060 
        procedure glutWireOctahedron; --  gl.h:639
        pragma Import (Stdcall, glutWireOctahedron, "glutWireOctahedron");
     
        procedure glutSolidOctahedron; --  gl.h:640
1065    pragma Import (Stdcall, glutSolidOctahedron, "glutSolidOctahedron");
     
        procedure glutWireTetrahedron; --  gl.h:641
        pragma Import (Stdcall, glutWireTetrahedron, "glutWireTetrahedron");
     
1070    procedure glutSolidTetrahedron; --  gl.h:642
        pragma Import (Stdcall, glutSolidTetrahedron, "glutSolidTetrahedron");
     
        procedure glutWireIcosahedron; --  gl.h:643
        pragma Import (Stdcall, glutWireIcosahedron, "glutWireIcosahedron");
1075 
        procedure glutSolidIcosahedron; --  gl.h:644
        pragma Import (Stdcall, glutSolidIcosahedron, "glutSolidIcosahedron");
     
        --  GLUT video resize sub-API. 
1080 
     
        function glutVideoResizeGet(
           param : GL.GLenum
        ) return Integer; --  glut.h:648
1085    pragma Import (Stdcall, glutVideoResizeGet, "glutVideoResizeGet");
     
        procedure glutSetupVideoResizing; --  gl.h:649
        pragma Import (Stdcall, glutSetupVideoResizing, "glutSetupVideoResizing");
     
1090    procedure glutStopVideoResizing; --  gl.h:650
        pragma Import (Stdcall, glutStopVideoResizing, "glutStopVideoResizing");
     
        procedure glutVideoResize(
           x : Integer;
1095       y : Integer;
           width : Integer;
           height : Integer
        ); --  glut.h:651
        pragma Import (Stdcall, glutVideoResize, "glutVideoResize");
1100 
        procedure glutVideoPan(
           x : Integer;
           y : Integer;
           width : Integer;
1105       height : Integer
        ); --  glut.h:652
        pragma Import (Stdcall, glutVideoPan, "glutVideoPan");
     
        --  GLUT debugging sub-API. 
1110 
     
        procedure glutReportErrors; --  gl.h:655
        pragma Import (Stdcall, glutReportErrors, "glutReportErrors");
     
1115    --  GLUT device control sub-API. 
     
        --  glutSetKeyRepeat modes. 
     
        GLUT_KEY_REPEAT_OFF                  : constant := 0; --  glut.h:661
1120    GLUT_KEY_REPEAT_ON                   : constant := 1; --  glut.h:662
        GLUT_KEY_REPEAT_DEFAULT              : constant := 2; --  glut.h:663
     
        --  Joystick button masks. 
     
1125    GLUT_JOYSTICK_BUTTON_A               : constant := 1; --  glut.h:666
        GLUT_JOYSTICK_BUTTON_B               : constant := 2; --  glut.h:667
        GLUT_JOYSTICK_BUTTON_C               : constant := 4; --  glut.h:668
        GLUT_JOYSTICK_BUTTON_D               : constant := 8; --  glut.h:669
     
1130 
        procedure glutIgnoreKeyRepeat(
           ignore : Integer
        ); --  glut.h:671
        pragma Import (Stdcall, glutIgnoreKeyRepeat, "glutIgnoreKeyRepeat");
1135 
        procedure glutSetKeyRepeat(
           repeatMode : Integer
        ); --  glut.h:672
        pragma Import (Stdcall, glutSetKeyRepeat, "glutSetKeyRepeat");
1140 
        procedure glutForceJoystickFunc; --  gl.h:673
        pragma Import (Stdcall, glutForceJoystickFunc, "glutForceJoystickFunc");
     
        --  GLUT game mode sub-API. 
1145 
        --  glutGameModeGet. 
     
        GLUT_GAME_MODE_ACTIVE                : constant := 0; --  glut.h:677
        GLUT_GAME_MODE_POSSIBLE              : constant := 1; --  glut.h:678
1150    GLUT_GAME_MODE_WIDTH                 : constant := 2; --  glut.h:679
        GLUT_GAME_MODE_HEIGHT                : constant := 3; --  glut.h:680
        GLUT_GAME_MODE_PIXEL_DEPTH           : constant := 4; --  glut.h:681
        GLUT_GAME_MODE_REFRESH_RATE          : constant := 5; --  glut.h:682
        GLUT_GAME_MODE_DISPLAY_CHANGED       : constant := 6; --  glut.h:683
1155 
     
        procedure glutGameModeString(
           the_string : Interfaces.C.Strings.Chars_Ptr
        ); --  glut.h:685
1160    pragma Import (Stdcall, glutGameModeString, "glutGameModeString");
     
        procedure glutGameModeString(
           the_string : String
        ); --  glut.h:685
1165    function glutEnterGameMode return Integer; --  gl.h:686
        pragma Import (Stdcall, glutEnterGameMode, "glutEnterGameMode");
     
        procedure glutLeaveGameMode; --  gl.h:687
        pragma Import (Stdcall, glutLeaveGameMode, "glutLeaveGameMode");
1170 
        function glutGameModeGet(
           mode : GL.GLenum
        ) return Integer; --  glut.h:688
        pragma Import (Stdcall, glutGameModeGet, "glutGameModeGet");
1175 
     
     
     
     
1180 
     end Win32.Glut;