misc/winutils/include/GL/glut.h
changeset 10017 de822cd3df3a
parent 8068 b35427506169
equal deleted inserted replaced
10015:4feced261c68 10017:de822cd3df3a
     8    program is -not- in the public domain. */
     8    program is -not- in the public domain. */
     9 
     9 
    10 #if defined(_WIN32)
    10 #if defined(_WIN32)
    11 
    11 
    12 /* GLUT 3.7 now tries to avoid including <windows.h>
    12 /* GLUT 3.7 now tries to avoid including <windows.h>
    13    to avoid name space pollution, but Win32's <GL/gl.h> 
    13    to avoid name space pollution, but Win32's <GL/gl.h>
    14    needs APIENTRY and WINGDIAPI defined properly. */
    14    needs APIENTRY and WINGDIAPI defined properly. */
    15 # if 0
    15 # if 0
    16    /* This would put tons of macros and crap in our clean name space. */
    16    /* This would put tons of macros and crap in our clean name space. */
    17 #  define  WIN32_LEAN_AND_MEAN
    17 #  define  WIN32_LEAN_AND_MEAN
    18 #  include <windows.h>
    18 #  include <windows.h>
   158 extern void exit(int);
   158 extern void exit(int);
   159 #endif
   159 #endif
   160 
   160 
   161 /**
   161 /**
   162  GLUT API revision history:
   162  GLUT API revision history:
   163  
   163 
   164  GLUT_API_VERSION is updated to reflect incompatible GLUT
   164  GLUT_API_VERSION is updated to reflect incompatible GLUT
   165  API changes (interface changes, semantic changes, deletions,
   165  API changes (interface changes, semantic changes, deletions,
   166  or additions).
   166  or additions).
   167  
   167 
   168  GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
   168  GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
   169 
   169 
   170  GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
   170  GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
   171  extension.  Supports new input devices like tablet, dial and button
   171  extension.  Supports new input devices like tablet, dial and button
   172  box, and Spaceball.  Easy to query OpenGL extensions.
   172  box, and Spaceball.  Easy to query OpenGL extensions.
   178  video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
   178  video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
   179  glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
   179  glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
   180  glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
   180  glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
   181 **/
   181 **/
   182 #ifndef GLUT_API_VERSION  /* allow this to be overriden */
   182 #ifndef GLUT_API_VERSION  /* allow this to be overriden */
   183 #define GLUT_API_VERSION		3
   183 #define GLUT_API_VERSION        3
   184 #endif
   184 #endif
   185 
   185 
   186 /**
   186 /**
   187  GLUT implementation revision history:
   187  GLUT implementation revision history:
   188  
   188 
   189  GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
   189  GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
   190  API revisions and implementation revisions (ie, bug fixes).
   190  API revisions and implementation revisions (ie, bug fixes).
   191 
   191 
   192  GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
   192  GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
   193  GLUT Xlib-based implementation.  11/29/94
   193  GLUT Xlib-based implementation.  11/29/94
   194 
   194 
   195  GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
   195  GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
   196  GLUT Xlib-based implementation providing GLUT version 2 
   196  GLUT Xlib-based implementation providing GLUT version 2
   197  interfaces.
   197  interfaces.
   198 
   198 
   199  GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
   199  GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
   200 
   200 
   201  GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
   201  GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
   218  GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
   218  GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
   219 
   219 
   220  GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
   220  GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
   221 **/
   221 **/
   222 #ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
   222 #ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
   223 #define GLUT_XLIB_IMPLEMENTATION	15
   223 #define GLUT_XLIB_IMPLEMENTATION    15
   224 #endif
   224 #endif
   225 
   225 
   226 /* Display mode bit masks. */
   226 /* Display mode bit masks. */
   227 #define GLUT_RGB			0
   227 #define GLUT_RGB            0
   228 #define GLUT_RGBA			GLUT_RGB
   228 #define GLUT_RGBA           GLUT_RGB
   229 #define GLUT_INDEX			1
   229 #define GLUT_INDEX          1
   230 #define GLUT_SINGLE			0
   230 #define GLUT_SINGLE         0
   231 #define GLUT_DOUBLE			2
   231 #define GLUT_DOUBLE         2
   232 #define GLUT_ACCUM			4
   232 #define GLUT_ACCUM          4
   233 #define GLUT_ALPHA			8
   233 #define GLUT_ALPHA          8
   234 #define GLUT_DEPTH			16
   234 #define GLUT_DEPTH          16
   235 #define GLUT_STENCIL			32
   235 #define GLUT_STENCIL            32
   236 #if (GLUT_API_VERSION >= 2)
   236 #if (GLUT_API_VERSION >= 2)
   237 #define GLUT_MULTISAMPLE		128
   237 #define GLUT_MULTISAMPLE        128
   238 #define GLUT_STEREO			256
   238 #define GLUT_STEREO         256
   239 #endif
   239 #endif
   240 #if (GLUT_API_VERSION >= 3)
   240 #if (GLUT_API_VERSION >= 3)
   241 #define GLUT_LUMINANCE			512
   241 #define GLUT_LUMINANCE          512
   242 #endif
   242 #endif
   243 
   243 
   244 /* Mouse buttons. */
   244 /* Mouse buttons. */
   245 #define GLUT_LEFT_BUTTON		0
   245 #define GLUT_LEFT_BUTTON        0
   246 #define GLUT_MIDDLE_BUTTON		1
   246 #define GLUT_MIDDLE_BUTTON      1
   247 #define GLUT_RIGHT_BUTTON		2
   247 #define GLUT_RIGHT_BUTTON       2
   248 
   248 
   249 /* Mouse button  state. */
   249 /* Mouse button  state. */
   250 #define GLUT_DOWN			0
   250 #define GLUT_DOWN           0
   251 #define GLUT_UP				1
   251 #define GLUT_UP             1
   252 
   252 
   253 #if (GLUT_API_VERSION >= 2)
   253 #if (GLUT_API_VERSION >= 2)
   254 /* function keys */
   254 /* function keys */
   255 #define GLUT_KEY_F1			1
   255 #define GLUT_KEY_F1         1
   256 #define GLUT_KEY_F2			2
   256 #define GLUT_KEY_F2         2
   257 #define GLUT_KEY_F3			3
   257 #define GLUT_KEY_F3         3
   258 #define GLUT_KEY_F4			4
   258 #define GLUT_KEY_F4         4
   259 #define GLUT_KEY_F5			5
   259 #define GLUT_KEY_F5         5
   260 #define GLUT_KEY_F6			6
   260 #define GLUT_KEY_F6         6
   261 #define GLUT_KEY_F7			7
   261 #define GLUT_KEY_F7         7
   262 #define GLUT_KEY_F8			8
   262 #define GLUT_KEY_F8         8
   263 #define GLUT_KEY_F9			9
   263 #define GLUT_KEY_F9         9
   264 #define GLUT_KEY_F10			10
   264 #define GLUT_KEY_F10            10
   265 #define GLUT_KEY_F11			11
   265 #define GLUT_KEY_F11            11
   266 #define GLUT_KEY_F12			12
   266 #define GLUT_KEY_F12            12
   267 /* directional keys */
   267 /* directional keys */
   268 #define GLUT_KEY_LEFT			100
   268 #define GLUT_KEY_LEFT           100
   269 #define GLUT_KEY_UP			101
   269 #define GLUT_KEY_UP         101
   270 #define GLUT_KEY_RIGHT			102
   270 #define GLUT_KEY_RIGHT          102
   271 #define GLUT_KEY_DOWN			103
   271 #define GLUT_KEY_DOWN           103
   272 #define GLUT_KEY_PAGE_UP		104
   272 #define GLUT_KEY_PAGE_UP        104
   273 #define GLUT_KEY_PAGE_DOWN		105
   273 #define GLUT_KEY_PAGE_DOWN      105
   274 #define GLUT_KEY_HOME			106
   274 #define GLUT_KEY_HOME           106
   275 #define GLUT_KEY_END			107
   275 #define GLUT_KEY_END            107
   276 #define GLUT_KEY_INSERT			108
   276 #define GLUT_KEY_INSERT         108
   277 #endif
   277 #endif
   278 
   278 
   279 /* Entry/exit  state. */
   279 /* Entry/exit  state. */
   280 #define GLUT_LEFT			0
   280 #define GLUT_LEFT           0
   281 #define GLUT_ENTERED			1
   281 #define GLUT_ENTERED            1
   282 
   282 
   283 /* Menu usage  state. */
   283 /* Menu usage  state. */
   284 #define GLUT_MENU_NOT_IN_USE		0
   284 #define GLUT_MENU_NOT_IN_USE        0
   285 #define GLUT_MENU_IN_USE		1
   285 #define GLUT_MENU_IN_USE        1
   286 
   286 
   287 /* Visibility  state. */
   287 /* Visibility  state. */
   288 #define GLUT_NOT_VISIBLE		0
   288 #define GLUT_NOT_VISIBLE        0
   289 #define GLUT_VISIBLE			1
   289 #define GLUT_VISIBLE            1
   290 
   290 
   291 /* Window status  state. */
   291 /* Window status  state. */
   292 #define GLUT_HIDDEN			0
   292 #define GLUT_HIDDEN         0
   293 #define GLUT_FULLY_RETAINED		1
   293 #define GLUT_FULLY_RETAINED     1
   294 #define GLUT_PARTIALLY_RETAINED		2
   294 #define GLUT_PARTIALLY_RETAINED     2
   295 #define GLUT_FULLY_COVERED		3
   295 #define GLUT_FULLY_COVERED      3
   296 
   296 
   297 /* Color index component selection values. */
   297 /* Color index component selection values. */
   298 #define GLUT_RED			0
   298 #define GLUT_RED            0
   299 #define GLUT_GREEN			1
   299 #define GLUT_GREEN          1
   300 #define GLUT_BLUE			2
   300 #define GLUT_BLUE           2
   301 
   301 
   302 #if defined(_WIN32)
   302 #if defined(_WIN32)
   303 /* Stroke font constants (use these in GLUT program). */
   303 /* Stroke font constants (use these in GLUT program). */
   304 #define GLUT_STROKE_ROMAN		((void*)0)
   304 #define GLUT_STROKE_ROMAN       ((void*)0)
   305 #define GLUT_STROKE_MONO_ROMAN		((void*)1)
   305 #define GLUT_STROKE_MONO_ROMAN      ((void*)1)
   306 
   306 
   307 /* Bitmap font constants (use these in GLUT program). */
   307 /* Bitmap font constants (use these in GLUT program). */
   308 #define GLUT_BITMAP_9_BY_15		((void*)2)
   308 #define GLUT_BITMAP_9_BY_15     ((void*)2)
   309 #define GLUT_BITMAP_8_BY_13		((void*)3)
   309 #define GLUT_BITMAP_8_BY_13     ((void*)3)
   310 #define GLUT_BITMAP_TIMES_ROMAN_10	((void*)4)
   310 #define GLUT_BITMAP_TIMES_ROMAN_10  ((void*)4)
   311 #define GLUT_BITMAP_TIMES_ROMAN_24	((void*)5)
   311 #define GLUT_BITMAP_TIMES_ROMAN_24  ((void*)5)
   312 #if (GLUT_API_VERSION >= 3)
   312 #if (GLUT_API_VERSION >= 3)
   313 #define GLUT_BITMAP_HELVETICA_10	((void*)6)
   313 #define GLUT_BITMAP_HELVETICA_10    ((void*)6)
   314 #define GLUT_BITMAP_HELVETICA_12	((void*)7)
   314 #define GLUT_BITMAP_HELVETICA_12    ((void*)7)
   315 #define GLUT_BITMAP_HELVETICA_18	((void*)8)
   315 #define GLUT_BITMAP_HELVETICA_18    ((void*)8)
   316 #endif
   316 #endif
   317 #else
   317 #else
   318 /* Stroke font opaque addresses (use constants instead in source code). */
   318 /* Stroke font opaque addresses (use constants instead in source code). */
   319 GLUTAPI void *glutStrokeRoman;
   319 GLUTAPI void *glutStrokeRoman;
   320 GLUTAPI void *glutStrokeMonoRoman;
   320 GLUTAPI void *glutStrokeMonoRoman;
   321 
   321 
   322 /* Stroke font constants (use these in GLUT program). */
   322 /* Stroke font constants (use these in GLUT program). */
   323 #define GLUT_STROKE_ROMAN		(&glutStrokeRoman)
   323 #define GLUT_STROKE_ROMAN       (&glutStrokeRoman)
   324 #define GLUT_STROKE_MONO_ROMAN		(&glutStrokeMonoRoman)
   324 #define GLUT_STROKE_MONO_ROMAN      (&glutStrokeMonoRoman)
   325 
   325 
   326 /* Bitmap font opaque addresses (use constants instead in source code). */
   326 /* Bitmap font opaque addresses (use constants instead in source code). */
   327 GLUTAPI void *glutBitmap9By15;
   327 GLUTAPI void *glutBitmap9By15;
   328 GLUTAPI void *glutBitmap8By13;
   328 GLUTAPI void *glutBitmap8By13;
   329 GLUTAPI void *glutBitmapTimesRoman10;
   329 GLUTAPI void *glutBitmapTimesRoman10;
   331 GLUTAPI void *glutBitmapHelvetica10;
   331 GLUTAPI void *glutBitmapHelvetica10;
   332 GLUTAPI void *glutBitmapHelvetica12;
   332 GLUTAPI void *glutBitmapHelvetica12;
   333 GLUTAPI void *glutBitmapHelvetica18;
   333 GLUTAPI void *glutBitmapHelvetica18;
   334 
   334 
   335 /* Bitmap font constants (use these in GLUT program). */
   335 /* Bitmap font constants (use these in GLUT program). */
   336 #define GLUT_BITMAP_9_BY_15		(&glutBitmap9By15)
   336 #define GLUT_BITMAP_9_BY_15     (&glutBitmap9By15)
   337 #define GLUT_BITMAP_8_BY_13		(&glutBitmap8By13)
   337 #define GLUT_BITMAP_8_BY_13     (&glutBitmap8By13)
   338 #define GLUT_BITMAP_TIMES_ROMAN_10	(&glutBitmapTimesRoman10)
   338 #define GLUT_BITMAP_TIMES_ROMAN_10  (&glutBitmapTimesRoman10)
   339 #define GLUT_BITMAP_TIMES_ROMAN_24	(&glutBitmapTimesRoman24)
   339 #define GLUT_BITMAP_TIMES_ROMAN_24  (&glutBitmapTimesRoman24)
   340 #if (GLUT_API_VERSION >= 3)
   340 #if (GLUT_API_VERSION >= 3)
   341 #define GLUT_BITMAP_HELVETICA_10	(&glutBitmapHelvetica10)
   341 #define GLUT_BITMAP_HELVETICA_10    (&glutBitmapHelvetica10)
   342 #define GLUT_BITMAP_HELVETICA_12	(&glutBitmapHelvetica12)
   342 #define GLUT_BITMAP_HELVETICA_12    (&glutBitmapHelvetica12)
   343 #define GLUT_BITMAP_HELVETICA_18	(&glutBitmapHelvetica18)
   343 #define GLUT_BITMAP_HELVETICA_18    (&glutBitmapHelvetica18)
   344 #endif
   344 #endif
   345 #endif
   345 #endif
   346 
   346 
   347 /* glutGet parameters. */
   347 /* glutGet parameters. */
   348 #define GLUT_WINDOW_X			((GLenum) 100)
   348 #define GLUT_WINDOW_X           ((GLenum) 100)
   349 #define GLUT_WINDOW_Y			((GLenum) 101)
   349 #define GLUT_WINDOW_Y           ((GLenum) 101)
   350 #define GLUT_WINDOW_WIDTH		((GLenum) 102)
   350 #define GLUT_WINDOW_WIDTH       ((GLenum) 102)
   351 #define GLUT_WINDOW_HEIGHT		((GLenum) 103)
   351 #define GLUT_WINDOW_HEIGHT      ((GLenum) 103)
   352 #define GLUT_WINDOW_BUFFER_SIZE		((GLenum) 104)
   352 #define GLUT_WINDOW_BUFFER_SIZE     ((GLenum) 104)
   353 #define GLUT_WINDOW_STENCIL_SIZE	((GLenum) 105)
   353 #define GLUT_WINDOW_STENCIL_SIZE    ((GLenum) 105)
   354 #define GLUT_WINDOW_DEPTH_SIZE		((GLenum) 106)
   354 #define GLUT_WINDOW_DEPTH_SIZE      ((GLenum) 106)
   355 #define GLUT_WINDOW_RED_SIZE		((GLenum) 107)
   355 #define GLUT_WINDOW_RED_SIZE        ((GLenum) 107)
   356 #define GLUT_WINDOW_GREEN_SIZE		((GLenum) 108)
   356 #define GLUT_WINDOW_GREEN_SIZE      ((GLenum) 108)
   357 #define GLUT_WINDOW_BLUE_SIZE		((GLenum) 109)
   357 #define GLUT_WINDOW_BLUE_SIZE       ((GLenum) 109)
   358 #define GLUT_WINDOW_ALPHA_SIZE		((GLenum) 110)
   358 #define GLUT_WINDOW_ALPHA_SIZE      ((GLenum) 110)
   359 #define GLUT_WINDOW_ACCUM_RED_SIZE	((GLenum) 111)
   359 #define GLUT_WINDOW_ACCUM_RED_SIZE  ((GLenum) 111)
   360 #define GLUT_WINDOW_ACCUM_GREEN_SIZE	((GLenum) 112)
   360 #define GLUT_WINDOW_ACCUM_GREEN_SIZE    ((GLenum) 112)
   361 #define GLUT_WINDOW_ACCUM_BLUE_SIZE	((GLenum) 113)
   361 #define GLUT_WINDOW_ACCUM_BLUE_SIZE ((GLenum) 113)
   362 #define GLUT_WINDOW_ACCUM_ALPHA_SIZE	((GLenum) 114)
   362 #define GLUT_WINDOW_ACCUM_ALPHA_SIZE    ((GLenum) 114)
   363 #define GLUT_WINDOW_DOUBLEBUFFER	((GLenum) 115)
   363 #define GLUT_WINDOW_DOUBLEBUFFER    ((GLenum) 115)
   364 #define GLUT_WINDOW_RGBA		((GLenum) 116)
   364 #define GLUT_WINDOW_RGBA        ((GLenum) 116)
   365 #define GLUT_WINDOW_PARENT		((GLenum) 117)
   365 #define GLUT_WINDOW_PARENT      ((GLenum) 117)
   366 #define GLUT_WINDOW_NUM_CHILDREN	((GLenum) 118)
   366 #define GLUT_WINDOW_NUM_CHILDREN    ((GLenum) 118)
   367 #define GLUT_WINDOW_COLORMAP_SIZE	((GLenum) 119)
   367 #define GLUT_WINDOW_COLORMAP_SIZE   ((GLenum) 119)
   368 #if (GLUT_API_VERSION >= 2)
   368 #if (GLUT_API_VERSION >= 2)
   369 #define GLUT_WINDOW_NUM_SAMPLES		((GLenum) 120)
   369 #define GLUT_WINDOW_NUM_SAMPLES     ((GLenum) 120)
   370 #define GLUT_WINDOW_STEREO		((GLenum) 121)
   370 #define GLUT_WINDOW_STEREO      ((GLenum) 121)
   371 #endif
   371 #endif
   372 #if (GLUT_API_VERSION >= 3)
   372 #if (GLUT_API_VERSION >= 3)
   373 #define GLUT_WINDOW_CURSOR		((GLenum) 122)
   373 #define GLUT_WINDOW_CURSOR      ((GLenum) 122)
   374 #endif
   374 #endif
   375 #define GLUT_SCREEN_WIDTH		((GLenum) 200)
   375 #define GLUT_SCREEN_WIDTH       ((GLenum) 200)
   376 #define GLUT_SCREEN_HEIGHT		((GLenum) 201)
   376 #define GLUT_SCREEN_HEIGHT      ((GLenum) 201)
   377 #define GLUT_SCREEN_WIDTH_MM		((GLenum) 202)
   377 #define GLUT_SCREEN_WIDTH_MM        ((GLenum) 202)
   378 #define GLUT_SCREEN_HEIGHT_MM		((GLenum) 203)
   378 #define GLUT_SCREEN_HEIGHT_MM       ((GLenum) 203)
   379 #define GLUT_MENU_NUM_ITEMS		((GLenum) 300)
   379 #define GLUT_MENU_NUM_ITEMS     ((GLenum) 300)
   380 #define GLUT_DISPLAY_MODE_POSSIBLE	((GLenum) 400)
   380 #define GLUT_DISPLAY_MODE_POSSIBLE  ((GLenum) 400)
   381 #define GLUT_INIT_WINDOW_X		((GLenum) 500)
   381 #define GLUT_INIT_WINDOW_X      ((GLenum) 500)
   382 #define GLUT_INIT_WINDOW_Y		((GLenum) 501)
   382 #define GLUT_INIT_WINDOW_Y      ((GLenum) 501)
   383 #define GLUT_INIT_WINDOW_WIDTH		((GLenum) 502)
   383 #define GLUT_INIT_WINDOW_WIDTH      ((GLenum) 502)
   384 #define GLUT_INIT_WINDOW_HEIGHT		((GLenum) 503)
   384 #define GLUT_INIT_WINDOW_HEIGHT     ((GLenum) 503)
   385 #define GLUT_INIT_DISPLAY_MODE		((GLenum) 504)
   385 #define GLUT_INIT_DISPLAY_MODE      ((GLenum) 504)
   386 #if (GLUT_API_VERSION >= 2)
   386 #if (GLUT_API_VERSION >= 2)
   387 #define GLUT_ELAPSED_TIME		((GLenum) 700)
   387 #define GLUT_ELAPSED_TIME       ((GLenum) 700)
   388 #endif
   388 #endif
   389 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
   389 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
   390 #define GLUT_WINDOW_FORMAT_ID		((GLenum) 123)
   390 #define GLUT_WINDOW_FORMAT_ID       ((GLenum) 123)
   391 #endif
   391 #endif
   392 
   392 
   393 #if (GLUT_API_VERSION >= 2)
   393 #if (GLUT_API_VERSION >= 2)
   394 /* glutDeviceGet parameters. */
   394 /* glutDeviceGet parameters. */
   395 #define GLUT_HAS_KEYBOARD		((GLenum) 600)
   395 #define GLUT_HAS_KEYBOARD       ((GLenum) 600)
   396 #define GLUT_HAS_MOUSE			((GLenum) 601)
   396 #define GLUT_HAS_MOUSE          ((GLenum) 601)
   397 #define GLUT_HAS_SPACEBALL		((GLenum) 602)
   397 #define GLUT_HAS_SPACEBALL      ((GLenum) 602)
   398 #define GLUT_HAS_DIAL_AND_BUTTON_BOX	((GLenum) 603)
   398 #define GLUT_HAS_DIAL_AND_BUTTON_BOX    ((GLenum) 603)
   399 #define GLUT_HAS_TABLET			((GLenum) 604)
   399 #define GLUT_HAS_TABLET         ((GLenum) 604)
   400 #define GLUT_NUM_MOUSE_BUTTONS		((GLenum) 605)
   400 #define GLUT_NUM_MOUSE_BUTTONS      ((GLenum) 605)
   401 #define GLUT_NUM_SPACEBALL_BUTTONS	((GLenum) 606)
   401 #define GLUT_NUM_SPACEBALL_BUTTONS  ((GLenum) 606)
   402 #define GLUT_NUM_BUTTON_BOX_BUTTONS	((GLenum) 607)
   402 #define GLUT_NUM_BUTTON_BOX_BUTTONS ((GLenum) 607)
   403 #define GLUT_NUM_DIALS			((GLenum) 608)
   403 #define GLUT_NUM_DIALS          ((GLenum) 608)
   404 #define GLUT_NUM_TABLET_BUTTONS		((GLenum) 609)
   404 #define GLUT_NUM_TABLET_BUTTONS     ((GLenum) 609)
   405 #endif
   405 #endif
   406 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
   406 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
   407 #define GLUT_DEVICE_IGNORE_KEY_REPEAT   ((GLenum) 610)
   407 #define GLUT_DEVICE_IGNORE_KEY_REPEAT   ((GLenum) 610)
   408 #define GLUT_DEVICE_KEY_REPEAT          ((GLenum) 611)
   408 #define GLUT_DEVICE_KEY_REPEAT          ((GLenum) 611)
   409 #define GLUT_HAS_JOYSTICK		((GLenum) 612)
   409 #define GLUT_HAS_JOYSTICK       ((GLenum) 612)
   410 #define GLUT_OWNS_JOYSTICK		((GLenum) 613)
   410 #define GLUT_OWNS_JOYSTICK      ((GLenum) 613)
   411 #define GLUT_JOYSTICK_BUTTONS		((GLenum) 614)
   411 #define GLUT_JOYSTICK_BUTTONS       ((GLenum) 614)
   412 #define GLUT_JOYSTICK_AXES		((GLenum) 615)
   412 #define GLUT_JOYSTICK_AXES      ((GLenum) 615)
   413 #define GLUT_JOYSTICK_POLL_RATE		((GLenum) 616)
   413 #define GLUT_JOYSTICK_POLL_RATE     ((GLenum) 616)
   414 #endif
   414 #endif
   415 
   415 
   416 #if (GLUT_API_VERSION >= 3)
   416 #if (GLUT_API_VERSION >= 3)
   417 /* glutLayerGet parameters. */
   417 /* glutLayerGet parameters. */
   418 #define GLUT_OVERLAY_POSSIBLE           ((GLenum) 800)
   418 #define GLUT_OVERLAY_POSSIBLE           ((GLenum) 800)
   419 #define GLUT_LAYER_IN_USE		((GLenum) 801)
   419 #define GLUT_LAYER_IN_USE       ((GLenum) 801)
   420 #define GLUT_HAS_OVERLAY		((GLenum) 802)
   420 #define GLUT_HAS_OVERLAY        ((GLenum) 802)
   421 #define GLUT_TRANSPARENT_INDEX		((GLenum) 803)
   421 #define GLUT_TRANSPARENT_INDEX      ((GLenum) 803)
   422 #define GLUT_NORMAL_DAMAGED		((GLenum) 804)
   422 #define GLUT_NORMAL_DAMAGED     ((GLenum) 804)
   423 #define GLUT_OVERLAY_DAMAGED		((GLenum) 805)
   423 #define GLUT_OVERLAY_DAMAGED        ((GLenum) 805)
   424 
   424 
   425 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
   425 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
   426 /* glutVideoResizeGet parameters. */
   426 /* glutVideoResizeGet parameters. */
   427 #define GLUT_VIDEO_RESIZE_POSSIBLE	((GLenum) 900)
   427 #define GLUT_VIDEO_RESIZE_POSSIBLE  ((GLenum) 900)
   428 #define GLUT_VIDEO_RESIZE_IN_USE	((GLenum) 901)
   428 #define GLUT_VIDEO_RESIZE_IN_USE    ((GLenum) 901)
   429 #define GLUT_VIDEO_RESIZE_X_DELTA	((GLenum) 902)
   429 #define GLUT_VIDEO_RESIZE_X_DELTA   ((GLenum) 902)
   430 #define GLUT_VIDEO_RESIZE_Y_DELTA	((GLenum) 903)
   430 #define GLUT_VIDEO_RESIZE_Y_DELTA   ((GLenum) 903)
   431 #define GLUT_VIDEO_RESIZE_WIDTH_DELTA	((GLenum) 904)
   431 #define GLUT_VIDEO_RESIZE_WIDTH_DELTA   ((GLenum) 904)
   432 #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA	((GLenum) 905)
   432 #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA  ((GLenum) 905)
   433 #define GLUT_VIDEO_RESIZE_X		((GLenum) 906)
   433 #define GLUT_VIDEO_RESIZE_X     ((GLenum) 906)
   434 #define GLUT_VIDEO_RESIZE_Y		((GLenum) 907)
   434 #define GLUT_VIDEO_RESIZE_Y     ((GLenum) 907)
   435 #define GLUT_VIDEO_RESIZE_WIDTH		((GLenum) 908)
   435 #define GLUT_VIDEO_RESIZE_WIDTH     ((GLenum) 908)
   436 #define GLUT_VIDEO_RESIZE_HEIGHT	((GLenum) 909)
   436 #define GLUT_VIDEO_RESIZE_HEIGHT    ((GLenum) 909)
   437 #endif
   437 #endif
   438 
   438 
   439 /* glutUseLayer parameters. */
   439 /* glutUseLayer parameters. */
   440 #define GLUT_NORMAL			((GLenum) 0)
   440 #define GLUT_NORMAL         ((GLenum) 0)
   441 #define GLUT_OVERLAY			((GLenum) 1)
   441 #define GLUT_OVERLAY            ((GLenum) 1)
   442 
   442 
   443 /* glutGetModifiers return mask. */
   443 /* glutGetModifiers return mask. */
   444 #define GLUT_ACTIVE_SHIFT               1
   444 #define GLUT_ACTIVE_SHIFT               1
   445 #define GLUT_ACTIVE_CTRL                2
   445 #define GLUT_ACTIVE_CTRL                2
   446 #define GLUT_ACTIVE_ALT                 4
   446 #define GLUT_ACTIVE_ALT                 4
   447 
   447 
   448 /* glutSetCursor parameters. */
   448 /* glutSetCursor parameters. */
   449 /* Basic arrows. */
   449 /* Basic arrows. */
   450 #define GLUT_CURSOR_RIGHT_ARROW		0
   450 #define GLUT_CURSOR_RIGHT_ARROW     0
   451 #define GLUT_CURSOR_LEFT_ARROW		1
   451 #define GLUT_CURSOR_LEFT_ARROW      1
   452 /* Symbolic cursor shapes. */
   452 /* Symbolic cursor shapes. */
   453 #define GLUT_CURSOR_INFO		2
   453 #define GLUT_CURSOR_INFO        2
   454 #define GLUT_CURSOR_DESTROY		3
   454 #define GLUT_CURSOR_DESTROY     3
   455 #define GLUT_CURSOR_HELP		4
   455 #define GLUT_CURSOR_HELP        4
   456 #define GLUT_CURSOR_CYCLE		5
   456 #define GLUT_CURSOR_CYCLE       5
   457 #define GLUT_CURSOR_SPRAY		6
   457 #define GLUT_CURSOR_SPRAY       6
   458 #define GLUT_CURSOR_WAIT		7
   458 #define GLUT_CURSOR_WAIT        7
   459 #define GLUT_CURSOR_TEXT		8
   459 #define GLUT_CURSOR_TEXT        8
   460 #define GLUT_CURSOR_CROSSHAIR		9
   460 #define GLUT_CURSOR_CROSSHAIR       9
   461 /* Directional cursors. */
   461 /* Directional cursors. */
   462 #define GLUT_CURSOR_UP_DOWN		10
   462 #define GLUT_CURSOR_UP_DOWN     10
   463 #define GLUT_CURSOR_LEFT_RIGHT		11
   463 #define GLUT_CURSOR_LEFT_RIGHT      11
   464 /* Sizing cursors. */
   464 /* Sizing cursors. */
   465 #define GLUT_CURSOR_TOP_SIDE		12
   465 #define GLUT_CURSOR_TOP_SIDE        12
   466 #define GLUT_CURSOR_BOTTOM_SIDE		13
   466 #define GLUT_CURSOR_BOTTOM_SIDE     13
   467 #define GLUT_CURSOR_LEFT_SIDE		14
   467 #define GLUT_CURSOR_LEFT_SIDE       14
   468 #define GLUT_CURSOR_RIGHT_SIDE		15
   468 #define GLUT_CURSOR_RIGHT_SIDE      15
   469 #define GLUT_CURSOR_TOP_LEFT_CORNER	16
   469 #define GLUT_CURSOR_TOP_LEFT_CORNER 16
   470 #define GLUT_CURSOR_TOP_RIGHT_CORNER	17
   470 #define GLUT_CURSOR_TOP_RIGHT_CORNER    17
   471 #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER	18
   471 #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18
   472 #define GLUT_CURSOR_BOTTOM_LEFT_CORNER	19
   472 #define GLUT_CURSOR_BOTTOM_LEFT_CORNER  19
   473 /* Inherit from parent window. */
   473 /* Inherit from parent window. */
   474 #define GLUT_CURSOR_INHERIT		100
   474 #define GLUT_CURSOR_INHERIT     100
   475 /* Blank cursor. */
   475 /* Blank cursor. */
   476 #define GLUT_CURSOR_NONE		101
   476 #define GLUT_CURSOR_NONE        101
   477 /* Fullscreen crosshair (if available). */
   477 /* Fullscreen crosshair (if available). */
   478 #define GLUT_CURSOR_FULL_CROSSHAIR	102
   478 #define GLUT_CURSOR_FULL_CROSSHAIR  102
   479 #endif
   479 #endif
   480 
   480 
   481 /* GLUT initialization sub-API. */
   481 /* GLUT initialization sub-API. */
   482 GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
   482 GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
   483 #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
   483 #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
   656 #endif
   656 #endif
   657 
   657 
   658 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
   658 #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
   659 /* GLUT device control sub-API. */
   659 /* GLUT device control sub-API. */
   660 /* glutSetKeyRepeat modes. */
   660 /* glutSetKeyRepeat modes. */
   661 #define GLUT_KEY_REPEAT_OFF		0
   661 #define GLUT_KEY_REPEAT_OFF     0
   662 #define GLUT_KEY_REPEAT_ON		1
   662 #define GLUT_KEY_REPEAT_ON      1
   663 #define GLUT_KEY_REPEAT_DEFAULT		2
   663 #define GLUT_KEY_REPEAT_DEFAULT     2
   664 
   664 
   665 /* Joystick button masks. */
   665 /* Joystick button masks. */
   666 #define GLUT_JOYSTICK_BUTTON_A		1
   666 #define GLUT_JOYSTICK_BUTTON_A      1
   667 #define GLUT_JOYSTICK_BUTTON_B		2
   667 #define GLUT_JOYSTICK_BUTTON_B      2
   668 #define GLUT_JOYSTICK_BUTTON_C		4
   668 #define GLUT_JOYSTICK_BUTTON_C      4
   669 #define GLUT_JOYSTICK_BUTTON_D		8
   669 #define GLUT_JOYSTICK_BUTTON_D      8
   670 
   670 
   671 GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore);
   671 GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore);
   672 GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode);
   672 GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode);
   673 GLUTAPI void APIENTRY glutForceJoystickFunc(void);
   673 GLUTAPI void APIENTRY glutForceJoystickFunc(void);
   674 
   674