glut.ads
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:34k
源码类别:

GIS编程

开发平台:

Visual C++

  1. --  Generated from glut.h
  2. --  Date: Sun Apr  6 14:32:02 1997
  3. --
  4. --  Command line definitions:
  5. --      -D__ANSI_C__ -D_LANGUAGE_C -DGENERATING_ADA_BINDING -D__unix -D__sgi
  6. --      -D__mips -D__host_mips -D__EXTENSIONS__ -D__EDG -D__DSO__ -D__STDC__
  7. --      -D_SYSTYPE_SVR4 -D_MODERN_C -D_MIPS_SZPTR=32 -D_MIPS_SZLONG=32
  8. --      -D_MIPS_SZINT=32 -D_MIPS_SIM=_MIPS_SIM_ABI32
  9. --      -D_MIPS_ISA=_MIPS_ISA_MIPS1 -D_MIPS_FPSET=16 -D_MIPSEB
  10. --
  11. with Interfaces.C;
  12. with Interfaces.C.Extensions;
  13. with Interfaces.C.Strings;
  14. with GL;
  15. package Glut is
  16.    --  Copyright (c) Mark J. Kilgard, 1994, 1995, 1996.
  17.    --  This program is freely distributable without licensing fees  and is
  18.    --  provided without guarantee or warrantee expressed or  implied. This
  19.    --  program is -not- in the public domain. *
  20.    --  **
  21.    --  GLUT API revision history:
  22.    --  
  23.    --  GLUT_API_VERSION is updated to reflect incompatible GLUT
  24.    --  API changes (interface changes, semantic changes, deletions,
  25.    --  or additions).
  26.    --  
  27.    --  GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
  28.    --  
  29.    --  GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
  30.    --  extension.  Supports new input devices like tablet, dial and button
  31.    --  box, and Spaceball.  Easy to query OpenGL extensions.
  32.    --  
  33.    --  GLUT_API_VERSION=3  glutMenuStatus added.
  34.    --  
  35.    --  *
  36.    GLUT_API_VERSION : constant := 4;  --  VERSION 4 API NOT FINALIZED
  37. --  **
  38. --  GLUT implementation revision history:
  39. --  
  40. --  GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
  41. --  API revisions and implementation revisions (ie, bug fixes).
  42. --  
  43. --  GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
  44. --  GLUT Xlib-based implementation.  11/29/94
  45. --  
  46. --  GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
  47. --  GLUT Xlib-based implementation providing GLUT version 2
  48. --  interfaces.
  49. --  
  50. --  GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
  51. --  
  52. --  GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
  53. --  
  54. --  GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
  55. --  
  56. --  GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
  57. --  
  58. --  GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
  59. --  and video resize.  1/3/97
  60. --  *
  61.    GLUT_XLIB_IMPLEMENTATION : constant := 7;
  62.    --  Display mode bit masks.
  63.    GLUT_RGB                 : constant := 0;
  64.    GLUT_RGBA                : constant := 0;
  65.    GLUT_INDEX               : constant := 1;
  66.    GLUT_SINGLE              : constant := 0;
  67.    GLUT_DOUBLE              : constant := 2;
  68.    GLUT_ACCUM               : constant := 4;
  69.    GLUT_ALPHA               : constant := 8;
  70.    GLUT_DEPTH               : constant := 16;
  71.    GLUT_STENCIL             : constant := 32;
  72.    GLUT_MULTISAMPLE         : constant := 128;
  73.    GLUT_STEREO              : constant := 256;
  74.    GLUT_LUMINANCE           : constant := 512;
  75.    --  Mouse buttons.
  76.    GLUT_LEFT_BUTTON         : constant := 0;
  77.    GLUT_MIDDLE_BUTTON       : constant := 1;
  78.    GLUT_RIGHT_BUTTON        : constant := 2;
  79.    --  Mouse button callback state.
  80.    GLUT_DOWN                : constant := 0;
  81.    GLUT_UP                  : constant := 1;
  82.    --  function keys
  83.    GLUT_KEY_F1              : constant := 1;
  84.    GLUT_KEY_F2              : constant := 2;
  85.    GLUT_KEY_F3              : constant := 3;
  86.    GLUT_KEY_F4              : constant := 4;
  87.    GLUT_KEY_F5              : constant := 5;
  88.    GLUT_KEY_F6              : constant := 6;
  89.    GLUT_KEY_F7              : constant := 7;
  90.    GLUT_KEY_F8              : constant := 8;
  91.    GLUT_KEY_F9              : constant := 9;
  92.    GLUT_KEY_F10             : constant := 10;
  93.    GLUT_KEY_F11             : constant := 11;
  94.    GLUT_KEY_F12             : constant := 12;
  95.    --  directional keys
  96.    GLUT_KEY_LEFT            : constant := 100;
  97.    GLUT_KEY_UP              : constant := 101;
  98.    GLUT_KEY_RIGHT           : constant := 102;
  99.    GLUT_KEY_DOWN            : constant := 103;
  100.    GLUT_KEY_PAGE_UP         : constant := 104;
  101.    GLUT_KEY_PAGE_DOWN       : constant := 105;
  102.    GLUT_KEY_HOME            : constant := 106;
  103.    GLUT_KEY_END             : constant := 107;
  104.    GLUT_KEY_INSERT          : constant := 108;
  105.    --  Entry/exit callback state.
  106.    GLUT_LEFT                : constant := 0;
  107.    GLUT_ENTERED             : constant := 1;
  108.    --  Menu usage callback state.
  109.    GLUT_MENU_NOT_IN_USE     : constant := 0;
  110.    GLUT_MENU_IN_USE         : constant := 1;
  111.    --  Visibility callback state.
  112.    GLUT_NOT_VISIBLE         : constant := 0;
  113.    GLUT_VISIBLE             : constant := 1;
  114.    --  Window status callback state.
  115.    GLUT_HIDDEN              : constant := 0;
  116.    GLUT_FULLY_RETAINED      : constant := 1;
  117.    GLUT_PARTIALLY_RETAINED  : constant := 2;
  118.    GLUT_FULLY_COVERED       : constant := 3;
  119.    --  Color index component selection values.
  120.    GLUT_RED                 : constant := 0;
  121.    GLUT_GREEN               : constant := 1;
  122.    GLUT_BLUE                : constant := 2;
  123.    --  Layers for use.
  124.    GLUT_NORMAL              : constant := 0;
  125.    GLUT_OVERLAY             : constant := 1;
  126.    --  Stroke font opaque addresses (use constants instead in source code).
  127.    glutStrokeRoman : aliased Interfaces.C.Extensions.Void_Ptr;
  128.    pragma Import (C, glutStrokeRoman, "glutStrokeRoman", "glutStrokeRoman");
  129.    glutStrokeMonoRoman : aliased Interfaces.C.Extensions.Void_Ptr;
  130.    pragma Import (C, 
  131.                   glutStrokeMonoRoman, 
  132.                   "glutStrokeMonoRoman", 
  133.                   "glutStrokeMonoRoman");
  134.    --  Stroke font constants (use these in GLUT program).
  135.    --  Bitmap font opaque addresses (use constants instead in source code).
  136.    glutBitmap9By15 : aliased Interfaces.C.Extensions.Void_Ptr;
  137.    pragma Import (C, glutBitmap9By15, "glutBitmap9By15", "glutBitmap9By15");
  138.    glutBitmap8By13 : aliased Interfaces.C.Extensions.Void_Ptr;
  139.    pragma Import (C, glutBitmap8By13, "glutBitmap8By13", "glutBitmap8By13");
  140.    glutBitmapTimesRoman10 : aliased Interfaces.C.Extensions.Void_Ptr;
  141.    pragma Import (C, 
  142.                   glutBitmapTimesRoman10, 
  143.                   "glutBitmapTimesRoman10", 
  144.                   "glutBitmapTimesRoman10");
  145.    glutBitmapTimesRoman24 : aliased Interfaces.C.Extensions.Void_Ptr;
  146.    pragma Import (C, 
  147.                   glutBitmapTimesRoman24, 
  148.                   "glutBitmapTimesRoman24", 
  149.                   "glutBitmapTimesRoman24");
  150.    glutBitmapHelvetica10 : aliased Interfaces.C.Extensions.Void_Ptr;
  151.    pragma Import (C, 
  152.                   glutBitmapHelvetica10, 
  153.                   "glutBitmapHelvetica10", 
  154.                   "glutBitmapHelvetica10");
  155.    glutBitmapHelvetica12 : aliased Interfaces.C.Extensions.Void_Ptr;
  156.    pragma Import (C, 
  157.                   glutBitmapHelvetica12, 
  158.                   "glutBitmapHelvetica12", 
  159.                   "glutBitmapHelvetica12");
  160.    glutBitmapHelvetica18 : aliased Interfaces.C.Extensions.Void_Ptr;
  161.    pragma Import (C, 
  162.                   glutBitmapHelvetica18, 
  163.                   "glutBitmapHelvetica18", 
  164.                   "glutBitmapHelvetica18");
  165.    --  Bitmap font constants (use these in GLUT program).
  166.    --  glutGet parameters.
  167.    GLUT_WINDOW_X                  : constant := 100;
  168.    GLUT_WINDOW_Y                  : constant := 101;
  169.    GLUT_WINDOW_WIDTH              : constant := 102;
  170.    GLUT_WINDOW_HEIGHT             : constant := 103;
  171.    GLUT_WINDOW_BUFFER_SIZE        : constant := 104;
  172.    GLUT_WINDOW_STENCIL_SIZE       : constant := 105;
  173.    GLUT_WINDOW_DEPTH_SIZE         : constant := 106;
  174.    GLUT_WINDOW_RED_SIZE           : constant := 107;
  175.    GLUT_WINDOW_GREEN_SIZE         : constant := 108;
  176.    GLUT_WINDOW_BLUE_SIZE          : constant := 109;
  177.    GLUT_WINDOW_ALPHA_SIZE         : constant := 110;
  178.    GLUT_WINDOW_ACCUM_RED_SIZE     : constant := 111;
  179.    GLUT_WINDOW_ACCUM_GREEN_SIZE   : constant := 112;
  180.    GLUT_WINDOW_ACCUM_BLUE_SIZE    : constant := 113;
  181.    GLUT_WINDOW_ACCUM_ALPHA_SIZE   : constant := 114;
  182.    GLUT_WINDOW_DOUBLEBUFFER       : constant := 115;
  183.    GLUT_WINDOW_RGBA               : constant := 116;
  184.    GLUT_WINDOW_PARENT             : constant := 117;
  185.    GLUT_WINDOW_NUM_CHILDREN       : constant := 118;
  186.    GLUT_WINDOW_COLORMAP_SIZE      : constant := 119;
  187.    GLUT_WINDOW_NUM_SAMPLES        : constant := 120;
  188.    GLUT_WINDOW_STEREO             : constant := 121;
  189.    GLUT_WINDOW_CURSOR             : constant := 122;
  190.    GLUT_SCREEN_WIDTH              : constant := 200;
  191.    GLUT_SCREEN_HEIGHT             : constant := 201;
  192.    GLUT_SCREEN_WIDTH_MM           : constant := 202;
  193.    GLUT_SCREEN_HEIGHT_MM          : constant := 203;
  194.    GLUT_MENU_NUM_ITEMS            : constant := 300;
  195.    GLUT_DISPLAY_MODE_POSSIBLE     : constant := 400;
  196.    GLUT_INIT_WINDOW_X             : constant := 500;
  197.    GLUT_INIT_WINDOW_Y             : constant := 501;
  198.    GLUT_INIT_WINDOW_WIDTH         : constant := 502;
  199.    GLUT_INIT_WINDOW_HEIGHT        : constant := 503;
  200.    GLUT_INIT_DISPLAY_MODE         : constant := 504;
  201.    GLUT_ELAPSED_TIME              : constant := 700;
  202.    --  glutDeviceGet parameters.
  203.    GLUT_HAS_KEYBOARD              : constant := 600;
  204.    GLUT_HAS_MOUSE                 : constant := 601;
  205.    GLUT_HAS_SPACEBALL             : constant := 602;
  206.    GLUT_HAS_DIAL_AND_BUTTON_BOX   : constant := 603;
  207.    GLUT_HAS_TABLET                : constant := 604;
  208.    GLUT_NUM_MOUSE_BUTTONS         : constant := 605;
  209.    GLUT_NUM_SPACEBALL_BUTTONS     : constant := 606;
  210.    GLUT_NUM_BUTTON_BOX_BUTTONS    : constant := 607;
  211.    GLUT_NUM_DIALS                 : constant := 608;
  212.    GLUT_NUM_TABLET_BUTTONS        : constant := 609;
  213.    --  glutLayerGet parameters.
  214.    GLUT_OVERLAY_POSSIBLE          : constant := 800;
  215.    GLUT_LAYER_IN_USE              : constant := 801;
  216.    GLUT_HAS_OVERLAY               : constant := 802;
  217.    GLUT_TRANSPARENT_INDEX         : constant := 803;
  218.    GLUT_NORMAL_DAMAGED            : constant := 804;
  219.    GLUT_OVERLAY_DAMAGED           : constant := 805;
  220.    --  glutVideoResizeGet parameters.
  221.    GLUT_VIDEO_RESIZE_POSSIBLE     : constant := 900;
  222.    GLUT_VIDEO_RESIZE_IN_USE       : constant := 901;
  223.    GLUT_VIDEO_RESIZE_X_DELTA      : constant := 902;
  224.    GLUT_VIDEO_RESIZE_Y_DELTA      : constant := 903;
  225.    GLUT_VIDEO_RESIZE_WIDTH_DELTA  : constant := 904;
  226.    GLUT_VIDEO_RESIZE_HEIGHT_DELTA : constant := 905;
  227.    GLUT_VIDEO_RESIZE_X            : constant := 906;
  228.    GLUT_VIDEO_RESIZE_Y            : constant := 907;
  229.    GLUT_VIDEO_RESIZE_WIDTH        : constant := 908;
  230.    GLUT_VIDEO_RESIZE_HEIGHT       : constant := 909;
  231.    --  glutUseLayer parameters.
  232.    --  glutGetModifiers return mask.
  233.    GLUT_ACTIVE_SHIFT               : constant := 1;
  234.    GLUT_ACTIVE_CTRL                : constant := 2;
  235.    GLUT_ACTIVE_ALT                 : constant := 4;
  236.    --  glutSetCursor parameters.
  237.    --  Basic arrows.
  238.    GLUT_CURSOR_RIGHT_ARROW         : constant := 0;
  239.    GLUT_CURSOR_LEFT_ARROW          : constant := 1;
  240.    --  Symbolic cursor shapes.
  241.    GLUT_CURSOR_INFO                : constant := 2;
  242.    GLUT_CURSOR_DESTROY             : constant := 3;
  243.    GLUT_CURSOR_HELP                : constant := 4;
  244.    GLUT_CURSOR_CYCLE               : constant := 5;
  245.    GLUT_CURSOR_SPRAY               : constant := 6;
  246.    GLUT_CURSOR_WAIT                : constant := 7;
  247.    GLUT_CURSOR_TEXT                : constant := 8;
  248.    GLUT_CURSOR_CROSSHAIR           : constant := 9;
  249.    --  Directional cursors.
  250.    GLUT_CURSOR_UP_DOWN             : constant := 10;
  251.    GLUT_CURSOR_LEFT_RIGHT          : constant := 11;
  252.    --  Sizing cursors.
  253.    GLUT_CURSOR_TOP_SIDE            : constant := 12;
  254.    GLUT_CURSOR_BOTTOM_SIDE         : constant := 13;
  255.    GLUT_CURSOR_LEFT_SIDE           : constant := 14;
  256.    GLUT_CURSOR_RIGHT_SIDE          : constant := 15;
  257.    GLUT_CURSOR_TOP_LEFT_CORNER     : constant := 16;
  258.    GLUT_CURSOR_TOP_RIGHT_CORNER    : constant := 17;
  259.    GLUT_CURSOR_BOTTOM_RIGHT_CORNER : constant := 18;
  260.    GLUT_CURSOR_BOTTOM_LEFT_CORNER  : constant := 19;
  261.    --  Inherit from parent window.
  262.    GLUT_CURSOR_INHERIT             : constant := 100;
  263.    --  Blank cursor.
  264.    GLUT_CURSOR_NONE                : constant := 101;
  265.    --  Fullscreen crosshair (if available).
  266.    GLUT_CURSOR_FULL_CROSSHAIR      : constant := 102;
  267.    --  GLUT initialization sub-API.
  268.    procedure glutInit (argcp : access Integer;
  269.                        argv  : access Interfaces.C.Strings.Chars_Ptr);
  270.    pragma Import (C, glutInit, "glutInit", "glutInit");
  271.    procedure glutInitDisplayMode (mode : Interfaces.C.unsigned);
  272.    pragma Import (C, 
  273.                   glutInitDisplayMode, 
  274.                   "glutInitDisplayMode", 
  275.                   "glutInitDisplayMode");
  276.    procedure glutInitDisplayString (string : Interfaces.C.Strings.Chars_Ptr);
  277.    pragma Import (C, 
  278.                   glutInitDisplayString, 
  279.                   "glutInitDisplayString", 
  280.                   "glutInitDisplayString");
  281.    procedure glutInitWindowPosition (x : Integer; y : Integer);
  282.    pragma Import (C, 
  283.                   glutInitWindowPosition, 
  284.                   "glutInitWindowPosition", 
  285.                   "glutInitWindowPosition");
  286.    procedure glutInitWindowSize (width : Integer; height : Integer);
  287.    pragma Import (C, 
  288.                   glutInitWindowSize, 
  289.                   "glutInitWindowSize", 
  290.                   "glutInitWindowSize");
  291.    procedure glutMainLoop;
  292.    pragma Import (C, glutMainLoop, "glutMainLoop", "glutMainLoop");
  293.    --  GLUT window sub-API.
  294.    function glutCreateWindow
  295.       (title : Interfaces.C.Strings.Chars_Ptr) return Integer;
  296.    pragma Import (C, glutCreateWindow, "glutCreateWindow", "glutCreateWindow");
  297.    function glutCreateWindow (title : String) return Integer;
  298.    function glutCreateSubWindow (win    : Integer;
  299.                                  x      : Integer;
  300.                                  y      : Integer;
  301.                                  width  : Integer;
  302.                                  height : Integer) return Integer;
  303.    pragma Import (C, 
  304.                   glutCreateSubWindow, 
  305.                   "glutCreateSubWindow", 
  306.                   "glutCreateSubWindow");
  307.    procedure glutDestroyWindow (win : Integer);
  308.    pragma Import (C, 
  309.                   glutDestroyWindow, 
  310.                   "glutDestroyWindow", 
  311.                   "glutDestroyWindow");
  312.    procedure glutPostRedisplay;
  313.    pragma Import (C, 
  314.                   glutPostRedisplay, 
  315.                   "glutPostRedisplay", 
  316.                   "glutPostRedisplay");
  317.    procedure glutPostWindowRedisplay (win : Integer);
  318.    pragma Import (C, 
  319.                   glutPostWindowRedisplay, 
  320.                   "glutPostWindowRedisplay", 
  321.                   "glutPostWindowRedisplay");
  322.    procedure glutSwapBuffers;
  323.    pragma Import (C, glutSwapBuffers, "glutSwapBuffers", "glutSwapBuffers");
  324.    function glutGetWindow return Integer;
  325.    pragma Import (C, glutGetWindow, "glutGetWindow", "glutGetWindow");
  326.    procedure glutSetWindow (win : Integer);
  327.    pragma Import (C, glutSetWindow, "glutSetWindow", "glutSetWindow");
  328.    procedure glutSetWindowTitle (title : Interfaces.C.Strings.Chars_Ptr);
  329.    pragma Import (C, 
  330.                   glutSetWindowTitle, 
  331.                   "glutSetWindowTitle", 
  332.                   "glutSetWindowTitle");
  333.    procedure glutSetWindowTitle (title : String);
  334.    procedure glutSetIconTitle (title : Interfaces.C.Strings.Chars_Ptr);
  335.    pragma Import (C, glutSetIconTitle, "glutSetIconTitle", "glutSetIconTitle");
  336.    procedure glutSetIconTitle (title : String);
  337.    procedure glutPositionWindow (x : Integer; y : Integer);
  338.    pragma Import (C, 
  339.                   glutPositionWindow, 
  340.                   "glutPositionWindow", 
  341.                   "glutPositionWindow");
  342.    procedure glutReshapeWindow (width : Integer; height : Integer);
  343.    pragma Import (C, 
  344.                   glutReshapeWindow, 
  345.                   "glutReshapeWindow", 
  346.                   "glutReshapeWindow");
  347.    procedure glutPopWindow;
  348.    pragma Import (C, glutPopWindow, "glutPopWindow", "glutPopWindow");
  349.    procedure glutPushWindow;
  350.    pragma Import (C, glutPushWindow, "glutPushWindow", "glutPushWindow");
  351.    procedure glutIconifyWindow;
  352.    pragma Import (C, 
  353.                   glutIconifyWindow, 
  354.                   "glutIconifyWindow", 
  355.                   "glutIconifyWindow");
  356.    procedure glutShowWindow;
  357.    pragma Import (C, glutShowWindow, "glutShowWindow", "glutShowWindow");
  358.    procedure glutHideWindow;
  359.    pragma Import (C, glutHideWindow, "glutHideWindow", "glutHideWindow");
  360.    procedure glutFullScreen;
  361.    pragma Import (C, glutFullScreen, "glutFullScreen", "glutFullScreen");
  362.    procedure glutSetCursor (cursor : Integer);
  363.    pragma Import (C, glutSetCursor, "glutSetCursor", "glutSetCursor");
  364.    procedure glutWarpPointer (x : Integer; y : Integer);
  365.    pragma Import (C, glutWarpPointer, "glutWarpPointer", "glutWarpPointer");
  366.    --  GLUT overlay sub-API.
  367.    procedure glutEstablishOverlay;
  368.    pragma Import (C, 
  369.                   glutEstablishOverlay, 
  370.                   "glutEstablishOverlay", 
  371.                   "glutEstablishOverlay");
  372.    procedure glutRemoveOverlay;
  373.    pragma Import (C, 
  374.                   glutRemoveOverlay, 
  375.                   "glutRemoveOverlay", 
  376.                   "glutRemoveOverlay");
  377.    procedure glutUseLayer (layer : GL.GLenum);
  378.    pragma Import (C, glutUseLayer, "glutUseLayer", "glutUseLayer");
  379.    procedure glutPostOverlayRedisplay;
  380.    pragma Import (C, 
  381.                   glutPostOverlayRedisplay, 
  382.                   "glutPostOverlayRedisplay", 
  383.                   "glutPostOverlayRedisplay");
  384.    procedure glutPostWindowOverlayRedisplay (win : Integer);
  385.    pragma Import (C, 
  386.                   glutPostWindowOverlayRedisplay, 
  387.                   "glutPostWindowOverlayRedisplay", 
  388.                   "glutPostWindowOverlayRedisplay");
  389.    procedure glutShowOverlay;
  390.    pragma Import (C, glutShowOverlay, "glutShowOverlay", "glutShowOverlay");
  391.    procedure glutHideOverlay;
  392.    pragma Import (C, glutHideOverlay, "glutHideOverlay", "glutHideOverlay");
  393.    --  GLUT menu sub-API.
  394.    type Glut_proc_1 is access procedure (P1 : Integer);
  395.    function glutCreateMenu (P1 : Glut_proc_1) return Integer;
  396.    pragma Import (C, glutCreateMenu, "glutCreateMenu", "glutCreateMenu");
  397.    procedure glutDestroyMenu (menu : Integer);
  398.    pragma Import (C, glutDestroyMenu, "glutDestroyMenu", "glutDestroyMenu");
  399.    function glutGetMenu return Integer;
  400.    pragma Import (C, glutGetMenu, "glutGetMenu", "glutGetMenu");
  401.    procedure glutSetMenu (menu : Integer);
  402.    pragma Import (C, glutSetMenu, "glutSetMenu", "glutSetMenu");
  403.    procedure glutAddMenuEntry (label : Interfaces.C.Strings.Chars_Ptr;
  404.                                value : Integer);
  405.    pragma Import (C, glutAddMenuEntry, "glutAddMenuEntry", "glutAddMenuEntry");
  406.    procedure glutAddMenuEntry (label : String; value : Integer);
  407.    procedure glutAddSubMenu (label   : Interfaces.C.Strings.Chars_Ptr;
  408.                              submenu : Integer);
  409.    pragma Import (C, glutAddSubMenu, "glutAddSubMenu", "glutAddSubMenu");
  410.    procedure glutAddSubMenu (label : String; submenu : Integer);
  411.    procedure glutChangeToMenuEntry (item  : Integer;
  412.                                     label : Interfaces.C.Strings.Chars_Ptr;
  413.                                     value : Integer);
  414.    pragma Import (C, 
  415.                   glutChangeToMenuEntry, 
  416.                   "glutChangeToMenuEntry", 
  417.                   "glutChangeToMenuEntry");
  418.    procedure glutChangeToMenuEntry (item  : Integer;
  419.                                     label : String;
  420.                                     value : Integer);
  421.    procedure glutChangeToSubMenu (item    : Integer;
  422.                                   label   : Interfaces.C.Strings.Chars_Ptr;
  423.                                   submenu : Integer);
  424.    pragma Import (C, 
  425.                   glutChangeToSubMenu, 
  426.                   "glutChangeToSubMenu", 
  427.                   "glutChangeToSubMenu");
  428.    procedure glutChangeToSubMenu (item    : Integer;
  429.                                   label   : String;
  430.                                   submenu : Integer);
  431.    procedure glutRemoveMenuItem (item : Integer);
  432.    pragma Import (C, 
  433.                   glutRemoveMenuItem, 
  434.                   "glutRemoveMenuItem", 
  435.                   "glutRemoveMenuItem");
  436.    procedure glutAttachMenu (button : Integer);
  437.    pragma Import (C, glutAttachMenu, "glutAttachMenu", "glutAttachMenu");
  438.    procedure glutDetachMenu (button : Integer);
  439.    pragma Import (C, glutDetachMenu, "glutDetachMenu", "glutDetachMenu");
  440.    --  GLUT callback sub-API.
  441.    type Glut_proc_2 is access procedure;
  442.    procedure glutDisplayFunc (P1 : Glut_proc_2);
  443.    pragma Import (C, glutDisplayFunc, "glutDisplayFunc", "glutDisplayFunc");
  444.    type Glut_proc_3 is access procedure (width : Integer; height : Integer);
  445.    procedure glutReshapeFunc (P1 : Glut_proc_3);
  446.    pragma Import (C, glutReshapeFunc, "glutReshapeFunc", "glutReshapeFunc");
  447.    type Glut_proc_4 is access
  448.       procedure (key : Interfaces.C.unsigned_char; x : Integer; y : Integer);
  449.    procedure glutKeyboardFunc (P1 : Glut_proc_4);
  450.    pragma Import (C, glutKeyboardFunc, "glutKeyboardFunc", "glutKeyboardFunc");
  451.    type Glut_proc_5 is access
  452.       procedure (button : Integer; state : Integer; x : Integer; y : Integer);
  453.    procedure glutMouseFunc (P1 : Glut_proc_5);
  454.    pragma Import (C, glutMouseFunc, "glutMouseFunc", "glutMouseFunc");
  455.    type Glut_proc_6 is access procedure (x : Integer; y : Integer);
  456.    procedure glutMotionFunc (P1 : Glut_proc_6);
  457.    pragma Import (C, glutMotionFunc, "glutMotionFunc", "glutMotionFunc");
  458.    type Glut_proc_7 is access procedure (x : Integer; y : Integer);
  459.    procedure glutPassiveMotionFunc (P1 : Glut_proc_7);
  460.    pragma Import (C, 
  461.                   glutPassiveMotionFunc, 
  462.                   "glutPassiveMotionFunc", 
  463.                   "glutPassiveMotionFunc");
  464.    type Glut_proc_8 is access procedure (state : Integer);
  465.    procedure glutEntryFunc (P1 : Glut_proc_8);
  466.    pragma Import (C, glutEntryFunc, "glutEntryFunc", "glutEntryFunc");
  467.    type Glut_proc_9 is access procedure (state : Integer);
  468.    procedure glutVisibilityFunc (P1 : Glut_proc_9);
  469.    pragma Import (C, 
  470.                   glutVisibilityFunc, 
  471.                   "glutVisibilityFunc", 
  472.                   "glutVisibilityFunc");
  473.    type Glut_proc_10 is access procedure;
  474.    procedure glutIdleFunc (P1 : Glut_proc_10);
  475.    pragma Import (C, glutIdleFunc, "glutIdleFunc", "glutIdleFunc");
  476.    type Glut_proc_11 is access procedure (value : Integer);
  477.    procedure glutTimerFunc (millis : Interfaces.C.unsigned;
  478.                             P2     : Glut_proc_11;
  479.                             value  : Integer);
  480.    pragma Import (C, glutTimerFunc, "glutTimerFunc", "glutTimerFunc");
  481.    type Glut_proc_12 is access procedure (state : Integer);
  482.    procedure glutMenuStateFunc (P1 : Glut_proc_12);
  483.    pragma Import (C, 
  484.                   glutMenuStateFunc, 
  485.                   "glutMenuStateFunc", 
  486.                   "glutMenuStateFunc");
  487.    type Glut_proc_13 is access
  488.       procedure (key : Integer; x : Integer; y : Integer);
  489.    procedure glutSpecialFunc (P1 : Glut_proc_13);
  490.    pragma Import (C, glutSpecialFunc, "glutSpecialFunc", "glutSpecialFunc");
  491.    type Glut_proc_14 is access
  492.       procedure (x : Integer; y : Integer; z : Integer);
  493.    procedure glutSpaceballMotionFunc (P1 : Glut_proc_14);
  494.    pragma Import (C, 
  495.                   glutSpaceballMotionFunc, 
  496.                   "glutSpaceballMotionFunc", 
  497.                   "glutSpaceballMotionFunc");
  498.    type Glut_proc_15 is access
  499.       procedure (x : Integer; y : Integer; z : Integer);
  500.    procedure glutSpaceballRotateFunc (P1 : Glut_proc_15);
  501.    pragma Import (C, 
  502.                   glutSpaceballRotateFunc, 
  503.                   "glutSpaceballRotateFunc", 
  504.                   "glutSpaceballRotateFunc");
  505.    type Glut_proc_16 is access procedure (button : Integer; state : Integer);
  506.    procedure glutSpaceballButtonFunc (P1 : Glut_proc_16);
  507.    pragma Import (C, 
  508.                   glutSpaceballButtonFunc, 
  509.                   "glutSpaceballButtonFunc", 
  510.                   "glutSpaceballButtonFunc");
  511.    type Glut_proc_17 is access procedure (button : Integer; state : Integer);
  512.    procedure glutButtonBoxFunc (P1 : Glut_proc_17);
  513.    pragma Import (C, 
  514.                   glutButtonBoxFunc, 
  515.                   "glutButtonBoxFunc", 
  516.                   "glutButtonBoxFunc");
  517.    type Glut_proc_18 is access procedure (dial : Integer; value : Integer);
  518.    procedure glutDialsFunc (P1 : Glut_proc_18);
  519.    pragma Import (C, glutDialsFunc, "glutDialsFunc", "glutDialsFunc");
  520.    type Glut_proc_19 is access procedure (x : Integer; y : Integer);
  521.    procedure glutTabletMotionFunc (P1 : Glut_proc_19);
  522.    pragma Import (C, 
  523.                   glutTabletMotionFunc, 
  524.                   "glutTabletMotionFunc", 
  525.                   "glutTabletMotionFunc");
  526.    type Glut_proc_20 is access
  527.       procedure (button : Integer; state : Integer; x : Integer; y : Integer);
  528.    procedure glutTabletButtonFunc (P1 : Glut_proc_20);
  529.    pragma Import (C, 
  530.                   glutTabletButtonFunc, 
  531.                   "glutTabletButtonFunc", 
  532.                   "glutTabletButtonFunc");
  533.    type Glut_proc_21 is access
  534.       procedure (status : Integer; x : Integer; y : Integer);
  535.    procedure glutMenuStatusFunc (P1 : Glut_proc_21);
  536.    pragma Import (C, 
  537.                   glutMenuStatusFunc, 
  538.                   "glutMenuStatusFunc", 
  539.                   "glutMenuStatusFunc");
  540.    type Glut_proc_22 is access procedure;
  541.    procedure glutOverlayDisplayFunc (P1 : Glut_proc_22);
  542.    pragma Import (C, 
  543.                   glutOverlayDisplayFunc, 
  544.                   "glutOverlayDisplayFunc", 
  545.                   "glutOverlayDisplayFunc");
  546.    type Glut_proc_23 is access procedure (state : Integer);
  547.    procedure glutWindowStatusFunc (P1 : Glut_proc_23);
  548.    pragma Import (C, 
  549.                   glutWindowStatusFunc, 
  550.                   "glutWindowStatusFunc", 
  551.                   "glutWindowStatusFunc");
  552.    --  GLUT color index sub-API.
  553.    procedure glutSetColor (P1    : Integer;
  554.                            red   : GL.GLfloat;
  555.                            green : GL.GLfloat;
  556.                            blue  : GL.GLfloat);
  557.    pragma Import (C, glutSetColor, "glutSetColor", "glutSetColor");
  558.    function glutGetColor
  559.       (ndx : Integer; component : Integer) return GL.GLfloat;
  560.    pragma Import (C, glutGetColor, "glutGetColor", "glutGetColor");
  561.    procedure glutCopyColormap (win : Integer);
  562.    pragma Import (C, glutCopyColormap, "glutCopyColormap", "glutCopyColormap");
  563.    --  GLUT state retrieval sub-API.
  564.    function glutGet (type_Id : GL.GLenum) return Integer;
  565.    pragma Import (C, glutGet, "glutGet", "glutGet");
  566.    function glutDeviceGet (type_Id : GL.GLenum) return Integer;
  567.    pragma Import (C, glutDeviceGet, "glutDeviceGet", "glutDeviceGet");
  568.    --  GLUT extension support sub-API
  569.    function glutExtensionSupported
  570.       (name : Interfaces.C.Strings.Chars_Ptr) return Integer;
  571.    pragma Import (C, 
  572.                   glutExtensionSupported, 
  573.                   "glutExtensionSupported", 
  574.                   "glutExtensionSupported");
  575.    function glutExtensionSupported (name : String) return Integer;
  576.    function glutGetModifiers return Integer;
  577.    pragma Import (C, glutGetModifiers, "glutGetModifiers", "glutGetModifiers");
  578.    function glutLayerGet (type_Id : GL.GLenum) return Integer;
  579.    pragma Import (C, glutLayerGet, "glutLayerGet", "glutLayerGet");
  580.    --  GLUT font sub-API
  581.    procedure glutBitmapCharacter (font      : access Interfaces.C.Extensions.Void_Ptr;
  582.                                   character : Integer);
  583.    pragma Import (C, 
  584.                   glutBitmapCharacter, 
  585.                   "glutBitmapCharacter", 
  586.                   "glutBitmapCharacter");
  587.    function glutBitmapWidth
  588.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  589.        character : Integer) return Integer;
  590.    pragma Import (C, glutBitmapWidth, "glutBitmapWidth", "glutBitmapWidth");
  591.    procedure glutStrokeCharacter
  592.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  593.        character : Integer);
  594.    pragma Import (C, 
  595.                   glutStrokeCharacter, 
  596.                   "glutStrokeCharacter", 
  597.                   "glutStrokeCharacter");
  598.    function glutStrokeWidth
  599.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  600.        character : Integer) return Integer;
  601.    pragma Import (C, glutStrokeWidth, "glutStrokeWidth", "glutStrokeWidth");
  602.    function glutStrokeLength
  603.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  604.        string    : Interfaces.C.Strings.Chars_Ptr) return Integer;
  605.    pragma Import (C, glutStrokeLength, "glutStrokeLength", "glutStrokeLength");
  606.    function glutBitmapLength
  607.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  608.        string    : Interfaces.C.Strings.Chars_Ptr) return Integer;
  609.    pragma Import (C, glutBitmapLength, "glutBitmapLength", "glutBitmapLength");
  610.    --  GLUT pre-built models sub-API
  611.    procedure glutWireSphere (radius : GL.GLdouble;
  612.                              slices : GL.GLint;
  613.                              stacks : GL.GLint);
  614.    pragma Import (C, glutWireSphere, "glutWireSphere", "glutWireSphere");
  615.    procedure glutSolidSphere (radius : GL.GLdouble;
  616.                               slices : GL.GLint;
  617.                               stacks : GL.GLint);
  618.    pragma Import (C, glutSolidSphere, "glutSolidSphere", "glutSolidSphere");
  619.    procedure glutWireCone (base   : GL.GLdouble;
  620.                            height : GL.GLdouble;
  621.                            slices : GL.GLint;
  622.                            stacks : GL.GLint);
  623.    pragma Import (C, glutWireCone, "glutWireCone", "glutWireCone");
  624.    procedure glutSolidCone (base   : GL.GLdouble;
  625.                             height : GL.GLdouble;
  626.                             slices : GL.GLint;
  627.                             stacks : GL.GLint);
  628.    pragma Import (C, glutSolidCone, "glutSolidCone", "glutSolidCone");
  629.    procedure glutWireCube (size : GL.GLdouble);
  630.    pragma Import (C, glutWireCube, "glutWireCube", "glutWireCube");
  631.    procedure glutSolidCube (size : GL.GLdouble);
  632.    pragma Import (C, glutSolidCube, "glutSolidCube", "glutSolidCube");
  633.    procedure glutWireTorus (innerRadius : GL.GLdouble;
  634.                             outerRadius : GL.GLdouble;
  635.                             sides       : GL.GLint;
  636.                             rings       : GL.GLint);
  637.    pragma Import (C, glutWireTorus, "glutWireTorus", "glutWireTorus");
  638.    procedure glutSolidTorus (innerRadius : GL.GLdouble;
  639.                              outerRadius : GL.GLdouble;
  640.                              sides       : GL.GLint;
  641.                              rings       : GL.GLint);
  642.    pragma Import (C, glutSolidTorus, "glutSolidTorus", "glutSolidTorus");
  643.    procedure glutWireDodecahedron;
  644.    pragma Import (C, 
  645.                   glutWireDodecahedron, 
  646.                   "glutWireDodecahedron", 
  647.                   "glutWireDodecahedron");
  648.    procedure glutSolidDodecahedron;
  649.    pragma Import (C, 
  650.                   glutSolidDodecahedron, 
  651.                   "glutSolidDodecahedron", 
  652.                   "glutSolidDodecahedron");
  653.    procedure glutWireTeapot (size : GL.GLdouble);
  654.    pragma Import (C, glutWireTeapot, "glutWireTeapot", "glutWireTeapot");
  655.    procedure glutSolidTeapot (size : GL.GLdouble);
  656.    pragma Import (C, glutSolidTeapot, "glutSolidTeapot", "glutSolidTeapot");
  657.    procedure glutWireOctahedron;
  658.    pragma Import (C, 
  659.                   glutWireOctahedron, 
  660.                   "glutWireOctahedron", 
  661.                   "glutWireOctahedron");
  662.    procedure glutSolidOctahedron;
  663.    pragma Import (C, 
  664.                   glutSolidOctahedron, 
  665.                   "glutSolidOctahedron", 
  666.                   "glutSolidOctahedron");
  667.    procedure glutWireTetrahedron;
  668.    pragma Import (C, 
  669.                   glutWireTetrahedron, 
  670.                   "glutWireTetrahedron", 
  671.                   "glutWireTetrahedron");
  672.    procedure glutSolidTetrahedron;
  673.    pragma Import (C, 
  674.                   glutSolidTetrahedron, 
  675.                   "glutSolidTetrahedron", 
  676.                   "glutSolidTetrahedron");
  677.    procedure glutWireIcosahedron;
  678.    pragma Import (C, 
  679.                   glutWireIcosahedron, 
  680.                   "glutWireIcosahedron", 
  681.                   "glutWireIcosahedron");
  682.    procedure glutSolidIcosahedron;
  683.    pragma Import (C, 
  684.                   glutSolidIcosahedron, 
  685.                   "glutSolidIcosahedron", 
  686.                   "glutSolidIcosahedron");
  687.    function glutVideoResizeGet (param : GL.GLenum) return Integer;
  688.    pragma Import (C, 
  689.                   glutVideoResizeGet, 
  690.                   "glutVideoResizeGet", 
  691.                   "glutVideoResizeGet");
  692.    procedure glutSetupVideoResizing;
  693.    pragma Import (C, 
  694.                   glutSetupVideoResizing, 
  695.                   "glutSetupVideoResizing", 
  696.                   "glutSetupVideoResizing");
  697.    procedure glutStopVideoResizing;
  698.    pragma Import (C, 
  699.                   glutStopVideoResizing, 
  700.                   "glutStopVideoResizing", 
  701.                   "glutStopVideoResizing");
  702.    procedure glutVideoResize (x      : Integer;
  703.                               y      : Integer;
  704.                               width  : Integer;
  705.                               height : Integer);
  706.    pragma Import (C, glutVideoResize, "glutVideoResize", "glutVideoResize");
  707.    procedure glutVideoPan (x      : Integer;
  708.                            y      : Integer;
  709.                            width  : Integer;
  710.                            height : Integer);
  711.    pragma Import (C, glutVideoPan, "glutVideoPan", "glutVideoPan");
  712. end Glut;