C Copyright {c} Mark J. Kilgard, 1994. C This program is freely distributable without licensing fees C and is provided without guarantee or warrantee expressed or C implied. This program is -not- in the public domain. C GLUT Fortran header file C display mode bit masks integer*4 GLUT_RGB parameter { GLUT_RGB = 0 } integer*4 GLUT_RGBA parameter { GLUT_RGBA = 0 } integer*4 GLUT_INDEX parameter { GLUT_INDEX = 1 } integer*4 GLUT_SINGLE parameter { GLUT_SINGLE = 0 } integer*4 GLUT_DOUBLE parameter { GLUT_DOUBLE = 2 } integer*4 GLUT_ACCUM parameter { GLUT_ACCUM = 4 } integer*4 GLUT_ALPHA parameter { GLUT_ALPHA = 8 } integer*4 GLUT_DEPTH parameter { GLUT_DEPTH = 16 } integer*4 GLUT_STENCIL parameter { GLUT_STENCIL = 32 } integer*4 GLUT_MULTISAMPLE parameter { GLUT_MULTISAMPLE = 128 } integer*4 GLUT_STEREO parameter { GLUT_STEREO = 256 } C mouse buttons integer*4 GLUT_LEFT_BUTTON parameter { GLUT_LEFT_BUTTON = 0 } integer*4 GLUT_MIDDLE_BUTTON parameter { GLUT_MIDDLE_BUTTON = 1 } integer*4 GLUT_RIGHT_BUTTON parameter { GLUT_RIGHT_BUTTON = 2 } C mouse button callback state integer*4 GLUT_DOWN parameter { GLUT_DOWN = 0 } integer*4 GLUT_UP parameter { GLUT_UP = 1 } C special key callback values integer*4 GLUT_KEY_F1 parameter { GLUT_KEY_F1 = 1 } integer*4 GLUT_KEY_F2 parameter { GLUT_KEY_F2 = 2 } integer*4 GLUT_KEY_F3 parameter { GLUT_KEY_F3 = 3 } integer*4 GLUT_KEY_F4 parameter { GLUT_KEY_F4 = 4 } integer*4 GLUT_KEY_F5 parameter { GLUT_KEY_F5 = 5 } integer*4 GLUT_KEY_F6 parameter { GLUT_KEY_F6 = 6 } integer*4 GLUT_KEY_F7 parameter { GLUT_KEY_F7 = 7 } integer*4 GLUT_KEY_F8 parameter { GLUT_KEY_F8 = 8 } integer*4 GLUT_KEY_F9 parameter { GLUT_KEY_F9 = 9 } integer*4 GLUT_KEY_F10 parameter { GLUT_KEY_F10 = 10 } integer*4 GLUT_KEY_F11 parameter { GLUT_KEY_F11 = 11 } integer*4 GLUT_KEY_F12 parameter { GLUT_KEY_F12 = 12 } integer*4 GLUT_KEY_LEFT parameter { GLUT_KEY_LEFT = 100 } integer*4 GLUT_KEY_UP parameter { GLUT_KEY_UP = 101 } integer*4 GLUT_KEY_RIGHT parameter { GLUT_KEY_RIGHT = 102 } integer*4 GLUT_KEY_DOWN parameter { GLUT_KEY_DOWN = 103 } integer*4 GLUT_KEY_PAGE_UP parameter { GLUT_KEY_PAGE_UP = 104 } integer*4 GLUT_KEY_PAGE_DOWN parameter { GLUT_KEY_PAGE_DOWN = 105 } integer*4 GLUT_KEY_HOME parameter { GLUT_KEY_HOME = 106 } integer*4 GLUT_KEY_END parameter { GLUT_KEY_END = 107 } integer*4 GLUT_KEY_INSERT parameter { GLUT_KEY_INSERT = 108 } C entry/exit callback state integer*4 GLUT_LEFT parameter { GLUT_LEFT = 0 } integer*4 GLUT_ENTERED parameter { GLUT_ENTERED = 1 } C menu usage callback state integer*4 GLUT_MENU_NOT_IN_USE parameter { GLUT_MENU_NOT_IN_USE = 0 } integer*4 GLUT_MENU_IN_USE parameter { GLUT_MENU_IN_USE = 1 } C visibility callback state integer*4 GLUT_NOT_VISIBLE parameter { GLUT_NOT_VISIBLE = 0 } integer*4 GLUT_VISIBLE parameter { GLUT_VISIBLE = 1 } C color index component selection values integer*4 GLUT_RED parameter { GLUT_RED = 0 } integer*4 GLUT_GREEN parameter { GLUT_GREEN = 1 } integer*4 GLUT_BLUE parameter { GLUT_BLUE = 2 } C XXX Unfortunately, SGI's Fortran compiler links with C EXTERNAL data even if it is not used. This defeats C the purpose of GLUT naming fonts via opaque symbols. C This means GLUT Fortran programmers should explicitly C declared EXTERNAL GLUT fonts in subroutines where C the fonts are used. C stroke font opaque names C external GLUT_STROKE_ROMAN C external GLUT_STROKE_MONO_ROMAN C bitmap font opaque names C external GLUT_BITMAP_9_BY_15 C external GLUT_BITMAP_8_BY_13 C external GLUT_BITMAP_TIMES_ROMAN_10 C external GLUT_BITMAP_TIMES_ROMAN_24 C external GLUT_BITMAP_HELVETICA_10 C external GLUT_BITMAP_HELVETICA_12 C external GLUT_BITMAP_HELVETICA_18 C glutGet parameters integer*4 GLUT_WINDOW_X parameter { GLUT_WINDOW_X = 100 } integer*4 GLUT_WINDOW_Y parameter { GLUT_WINDOW_Y = 101 } integer*4 GLUT_WINDOW_WIDTH parameter { GLUT_WINDOW_WIDTH = 102 } integer*4 GLUT_WINDOW_HEIGHT parameter { GLUT_WINDOW_HEIGHT = 103 } integer*4 GLUT_WINDOW_BUFFER_SIZE parameter { GLUT_WINDOW_BUFFER_SIZE = 104 } integer*4 GLUT_WINDOW_STENCIL_SIZE parameter { GLUT_WINDOW_STENCIL_SIZE = 105 } integer*4 GLUT_WINDOW_DEPTH_SIZE parameter { GLUT_WINDOW_DEPTH_SIZE = 106 } integer*4 GLUT_WINDOW_RED_SIZE parameter { GLUT_WINDOW_RED_SIZE = 107 } integer*4 GLUT_WINDOW_GREEN_SIZE parameter { GLUT_WINDOW_GREEN_SIZE = 108 } integer*4 GLUT_WINDOW_BLUE_SIZE parameter { GLUT_WINDOW_BLUE_SIZE = 109 } integer*4 GLUT_WINDOW_ALPHA_SIZE parameter { GLUT_WINDOW_ALPHA_SIZE = 110 } integer*4 GLUT_WINDOW_ACCUM_RED_SIZE parameter { GLUT_WINDOW_ACCUM_RED_SIZE = 111 } integer*4 GLUT_WINDOW_ACCUM_GREEN_SIZE parameter { GLUT_WINDOW_ACCUM_GREEN_SIZE = 112 } integer*4 GLUT_WINDOW_ACCUM_BLUE_SIZE parameter { GLUT_WINDOW_ACCUM_BLUE_SIZE = 113 } integer*4 GLUT_WINDOW_ACCUM_ALPHA_SIZE parameter { GLUT_WINDOW_ACCUM_ALPHA_SIZE = 114 } integer*4 GLUT_WINDOW_DOUBLEBUFFER parameter { GLUT_WINDOW_DOUBLEBUFFER = 115 } integer*4 GLUT_WINDOW_RGBA parameter { GLUT_WINDOW_RGBA = 116 } integer*4 GLUT_WINDOW_PARENT parameter { GLUT_WINDOW_PARENT = 117 } integer*4 GLUT_WINDOW_NUM_CHILDREN parameter { GLUT_WINDOW_NUM_CHILDREN = 118 } integer*4 GLUT_WINDOW_COLORMAP_SIZE parameter { GLUT_WINDOW_COLORMAP_SIZE = 119 } integer*4 GLUT_WINDOW_NUM_SAMPLES parameter { GLUT_WINDOW_NUM_SAMPLES = 120 } integer*4 GLUT_WINDOW_STEREO parameter { GLUT_WINDOW_STEREO = 121 } integer*4 GLUT_WINDOW_CURSOR parameter { GLUT_WINDOW_CURSOR = 122 } integer*4 GLUT_SCREEN_WIDTH parameter { GLUT_SCREEN_WIDTH = 200 } integer*4 GLUT_SCREEN_HEIGHT parameter { GLUT_SCREEN_HEIGHT = 201 } integer*4 GLUT_SCREEN_WIDTH_MM parameter { GLUT_SCREEN_WIDTH_MM = 202 } integer*4 GLUT_SCREEN_HEIGHT_MM parameter { GLUT_SCREEN_HEIGHT_MM = 203 } integer*4 GLUT_MENU_NUM_ITEMS parameter { GLUT_MENU_NUM_ITEMS = 300 } integer*4 GLUT_DISPLAY_MODE_POSSIBLE parameter { GLUT_DISPLAY_MODE_POSSIBLE = 400 } integer*4 GLUT_INIT_WINDOW_X parameter { GLUT_INIT_WINDOW_X = 500 } integer*4 GLUT_INIT_WINDOW_Y parameter { GLUT_INIT_WINDOW_Y = 501 } integer*4 GLUT_INIT_WINDOW_WIDTH parameter { GLUT_INIT_WINDOW_WIDTH = 502 } integer*4 GLUT_INIT_WINDOW_HEIGHT parameter { GLUT_INIT_WINDOW_HEIGHT = 503 } integer*4 GLUT_INIT_DISPLAY_MODE parameter { GLUT_INIT_DISPLAY_MODE = 504 } integer*4 GLUT_ELAPSED_TIME parameter { GLUT_ELAPSED_TIME = 700 } C glutDeviceGet parameters integer*4 GLUT_HAS_KEYBOARD parameter { GLUT_HAS_KEYBOARD = 600 } integer*4 GLUT_HAS_MOUSE parameter { GLUT_HAS_MOUSE = 601 } integer*4 GLUT_HAS_SPACEBALL parameter { GLUT_HAS_SPACEBALL = 602 } integer*4 GLUT_HAS_DIAL_AND_BUTTON_BOX parameter { GLUT_HAS_DIAL_AND_BUTTON_BOX = 603 } integer*4 GLUT_HAS_TABLET parameter { GLUT_HAS_TABLET = 604 } integer*4 GLUT_NUM_MOUSE_BUTTONS parameter { GLUT_NUM_MOUSE_BUTTONS = 605 } integer*4 GLUT_NUM_SPACEBALL_BUTTONS parameter { GLUT_NUM_SPACEBALL_BUTTONS = 606 } integer*4 GLUT_NUM_BUTTON_BOX_BUTTONS parameter { GLUT_NUM_BUTTON_BOX_BUTTONS = 607 } integer*4 GLUT_NUM_DIALS parameter { GLUT_NUM_DIALS = 608 } integer*4 GLUT_NUM_TABLET_BUTTONS parameter { GLUT_NUM_TABLET_BUTTONS = 609 } C glutLayerGet parameters integer*4 GLUT_OVERLAY_POSSIBLE parameter { GLUT_OVERLAY_POSSIBLE = 800 } integer*4 GLUT_LAYER_IN_USE parameter { GLUT_LAYER_IN_USE = 801 } integer*4 GLUT_HAS_OVERLAY parameter { GLUT_HAS_OVERLAY = 802 } integer*4 GLUT_TRANSPARENT_INDEX parameter { GLUT_TRANSPARENT_INDEX = 803 } integer*4 GLUT_NORMAL_DAMAGED parameter { GLUT_NORMAL_DAMAGED = 804 } integer*4 GLUT_OVERLAY_DAMAGED parameter { GLUT_OVERLAY_DAMAGED = 805 } C glutUseLayer parameters integer*4 GLUT_NORMAL parameter { GLUT_NORMAL = 0 } integer*4 GLUT_OVERLAY parameter { GLUT_OVERLAY = 1 } C glutGetModifiers return mask integer*4 GLUT_ACTIVE_SHIFT parameter { GLUT_ACTIVE_SHIFT = 1 } integer*4 GLUT_ACTIVE_CTRL parameter { GLUT_ACTIVE_CTRL = 2 } integer*4 GLUT_ACTIVE_ALT parameter { GLUT_ACTIVE_ALT = 4 } C glutSetCursor parameters integer*4 GLUT_CURSOR_RIGHT_ARROW parameter { GLUT_CURSOR_RIGHT_ARROW = 0 } integer*4 GLUT_CURSOR_LEFT_ARROW parameter { GLUT_CURSOR_LEFT_ARROW = 1 } integer*4 GLUT_CURSOR_INFO parameter { GLUT_CURSOR_INFO = 2 } integer*4 GLUT_CURSOR_DESTROY parameter { GLUT_CURSOR_DESTROY = 3 } integer*4 GLUT_CURSOR_HELP parameter { GLUT_CURSOR_HELP = 4 } integer*4 GLUT_CURSOR_CYCLE parameter { GLUT_CURSOR_CYCLE = 5 } integer*4 GLUT_CURSOR_SPRAY parameter { GLUT_CURSOR_SPRAY = 6 } integer*4 GLUT_CURSOR_WAIT parameter { GLUT_CURSOR_WAIT = 7 } integer*4 GLUT_CURSOR_TEXT parameter { GLUT_CURSOR_TEXT = 8 } integer*4 GLUT_CURSOR_CROSSHAIR parameter { GLUT_CURSOR_CROSSHAIR = 9 } integer*4 GLUT_CURSOR_UP_DOWN parameter { GLUT_CURSOR_UP_DOWN = 10 } integer*4 GLUT_CURSOR_LEFT_RIGHT parameter { GLUT_CURSOR_LEFT_RIGHT = 11 } integer*4 GLUT_CURSOR_TOP_SIDE parameter { GLUT_CURSOR_TOP_SIDE = 12 } integer*4 GLUT_CURSOR_BOTTOM_SIDE parameter { GLUT_CURSOR_BOTTOM_SIDE = 13 } integer*4 GLUT_CURSOR_LEFT_SIDE parameter { GLUT_CURSOR_LEFT_SIDE = 14 } integer*4 GLUT_CURSOR_RIGHT_SIDE parameter { GLUT_CURSOR_RIGHT_SIDE = 15 } integer*4 GLUT_CURSOR_TOP_LEFT_CORNER parameter { GLUT_CURSOR_TOP_LEFT_CORNER = 16 } integer*4 GLUT_CURSOR_TOP_RIGHT_CORNER parameter { GLUT_CURSOR_TOP_RIGHT_CORNER = 17 } integer*4 GLUT_CURSOR_BOTTOM_RIGHT_CORNER parameter { GLUT_CURSOR_BOTTOM_RIGHT_CORNER = 18 } integer*4 GLUT_CURSOR_BOTTOM_LEFT_CORNER parameter { GLUT_CURSOR_BOTTOM_LEFT_CORNER = 19 } integer*4 GLUT_CURSOR_INHERIT parameter { GLUT_CURSOR_INHERIT = 100 } integer*4 GLUT_CURSOR_NONE parameter { GLUT_CURSOR_NONE = 101 } integer*4 GLUT_CURSOR_FULL_CROSSHAIR parameter { GLUT_CURSOR_FULL_CROSSHAIR = 102 } C GLUT functions integer*4 glutcreatewindow integer*4 glutgetwindow integer*4 glutcreatemenu integer*4 glutgetmenu real glutgetcolor integer*4 glutget integer*4 glutdeviceget integer*4 glutextensionsupported C GLUT NULL name external glutnull