root / branches / test / CCV_Select_Camera / libs / glut / lib / osx / GLUT.framework / Versions / A / Headers / glut.h @ 12

View | Annotate | Download (21.9 KB)

1
#ifndef __glut_h__
2
#define __glut_h__
3
4
/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */
5
6
/* This program is freely distributable without licensing fees  and is
7
   provided without guarantee or warrantee expressed or  implied. This
8
   program is -not- in the public domain. */
9
10
#if defined(_WIN32)
11
12
/* GLUT 3.7 now tries to avoid including <windows.h>
13
   to avoid name space pollution, but Win32's <GL/gl.h> 
14
   needs APIENTRY and WINGDIAPI defined properly. */
15
# if 0
16
#  define  WIN32_LEAN_AND_MEAN
17
#  include <windows.h>
18
# else
19
   /* XXX This is from Win32's <windef.h> */
20
#  ifndef APIENTRY
21
#   define GLUT_APIENTRY_DEFINED
22
#   if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
23
#    define APIENTRY    __stdcall
24
#   else
25
#    define APIENTRY
26
#   endif
27
#  endif
28
   /* XXX This is from Win32's <winnt.h> */
29
#  ifndef CALLBACK
30
#   if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
31
#    define CALLBACK __stdcall
32
#   else
33
#    define CALLBACK
34
#   endif
35
#  endif
36
   /* XXX This is from Win32's <wingdi.h> and <winnt.h> */
37
#  ifndef WINGDIAPI
38
#   define GLUT_WINGDIAPI_DEFINED
39
#   define WINGDIAPI __declspec(dllimport)
40
#  endif
41
   /* XXX This is from Win32's <ctype.h> */
42
#  ifndef _WCHAR_T_DEFINED
43
typedef unsigned short wchar_t;
44
#   define _WCHAR_T_DEFINED
45
#  endif
46
# endif
47
48
#pragma comment (lib, "winmm.lib")     /* link with Windows MultiMedia lib */
49
#pragma comment (lib, "opengl32.lib")  /* link with Microsoft OpenGL lib */
50
#pragma comment (lib, "glu32.lib")     /* link with OpenGL Utility lib */
51
#pragma comment (lib, "glut32.lib")    /* link with Win32 GLUT lib */
52
53
#pragma warning (disable:4244)        /* Disable bogus conversion warnings. */
54
#pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
55
56
#endif
57
58
#if defined(__APPLE__) || defined(MACOSX)
59
#include <AvailabilityMacros.h>
60
#include <OpenGL/gl.h>
61
#include <OpenGL/glu.h>
62
#else
63
#include <GL/gl.h>
64
#include <GL/glu.h>
65
#endif
66
67
/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */
68
#if !defined(_WIN32)
69
#define APIENTRY
70
#define GLUT_APIENTRY_DEFINED
71
#define CALLBACK
72
#endif
73
74
#ifdef __cplusplus
75
extern "C" {
76
#endif
77
78
/**
79
 GLUT API revision history:
80
 
81
 GLUT_API_VERSION is updated to reflect incompatible GLUT
82
 API changes (interface changes, semantic changes, deletions,
83
 or additions).
84
 
85
 GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
86
87
 GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
88
 extension.  Supports new input devices like tablet, dial and button
89
 box, and Spaceball.  Easy to query OpenGL extensions.
90
91
 GLUT_API_VERSION=3  glutMenuStatus added.
92
93
 GLUT_API_VERSION=4  glutInitDisplayString, glutWarpPointer,
94
 glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
95
 video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
96
 glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
97
 glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
98
99
 GLUT_API_VERSION=5  glutGetProcAddress (added by BrianP)
100
**/
101
#ifndef GLUT_API_VERSION  /* allow this to be overriden */
102
#define GLUT_API_VERSION                5
103
#endif
104
105
/**
106
 GLUT implementation revision history:
107
 
108
 GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
109
 API revisions and implementation revisions (ie, bug fixes).
110
111
 GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
112
 GLUT Xlib-based implementation.  11/29/94
113
114
 GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
115
 GLUT Xlib-based implementation providing GLUT version 2 
116
 interfaces.
117
118
 GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
119
120
 GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
121
122
 GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
123
124
 GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
125
126
 GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
127
 and video resize.  1/3/97
128
129
 GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
130
131
 GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
132
133
 GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
134
135
 GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
136
137
 GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
138
139
 GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
140
**/
141
#ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
142
#define GLUT_XLIB_IMPLEMENTATION        15
143
#endif
144
145
/**
146
 MacOS X GLUT implementation revision history:
147
 
148
 GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X
149
 specific GLUT API revisions and implementation revisions
150
 (ie, bug fixes).
151
152
 GLUT_MACOSX_IMPLEMENTATION=1  glutSurfaceTexture.
153
154
 GLUT_MACOSX_IMPLEMENTATION=2  glutWMCloseFunc, glutCheckLoop.
155
  
156
**/
157
#ifndef GLUT_MACOSX_IMPLEMENTATION  /* Allow this to be overriden. */
158
#define GLUT_MACOSX_IMPLEMENTATION        2
159
#endif
160
161
/* Display mode bit masks. */
162
#define GLUT_RGB                        0
163
#define GLUT_RGBA                        GLUT_RGB
164
#define GLUT_INDEX                        1
165
#define GLUT_SINGLE                        0
166
#define GLUT_DOUBLE                        2
167
#define GLUT_ACCUM                        4
168
#define GLUT_ALPHA                        8
169
#define GLUT_DEPTH                        16
170
#define GLUT_STENCIL                        32
171
#if (GLUT_API_VERSION >= 2)
172
#define GLUT_MULTISAMPLE                128
173
#define GLUT_STEREO                        256
174
#endif
175
#if (GLUT_API_VERSION >= 3)
176
#define GLUT_LUMINANCE                        512
177
#endif
178
#define GLUT_NO_RECOVERY    1024
179
180
/* Mouse buttons. */
181
#define GLUT_LEFT_BUTTON                0
182
#define GLUT_MIDDLE_BUTTON                1
183
#define GLUT_RIGHT_BUTTON                2
184
185
/* Mouse button  state. */
186
#define GLUT_DOWN                        0
187
#define GLUT_UP                                1
188
189
#if (GLUT_API_VERSION >= 2)
190
/* function keys */
191
#define GLUT_KEY_F1                        1
192
#define GLUT_KEY_F2                        2
193
#define GLUT_KEY_F3                        3
194
#define GLUT_KEY_F4                        4
195
#define GLUT_KEY_F5                        5
196
#define GLUT_KEY_F6                        6
197
#define GLUT_KEY_F7                        7
198
#define GLUT_KEY_F8                        8
199
#define GLUT_KEY_F9                        9
200
#define GLUT_KEY_F10                        10
201
#define GLUT_KEY_F11                        11
202
#define GLUT_KEY_F12                        12
203
/* directional keys */
204
#define GLUT_KEY_LEFT                        100
205
#define GLUT_KEY_UP                        101
206
#define GLUT_KEY_RIGHT                        102
207
#define GLUT_KEY_DOWN                        103
208
#define GLUT_KEY_PAGE_UP                104
209
#define GLUT_KEY_PAGE_DOWN                105
210
#define GLUT_KEY_HOME                        106
211
#define GLUT_KEY_END                        107
212
#define GLUT_KEY_INSERT                        108
213
#endif
214
215
/* Entry/exit  state. */
216
#define GLUT_LEFT                        0
217
#define GLUT_ENTERED                        1
218
219
/* Menu usage  state. */
220
#define GLUT_MENU_NOT_IN_USE                0
221
#define GLUT_MENU_IN_USE                1
222
223
/* Visibility  state. */
224
#define GLUT_NOT_VISIBLE                0
225
#define GLUT_VISIBLE                        1
226
227
/* Window status  state. */
228
#define GLUT_HIDDEN                        0
229
#define GLUT_FULLY_RETAINED                1
230
#define GLUT_PARTIALLY_RETAINED                2
231
#define GLUT_FULLY_COVERED                3
232
233
/* Color index component selection values. */
234
#define GLUT_RED                        0
235
#define GLUT_GREEN                        1
236
#define GLUT_BLUE                        2
237
238
/* Layers for use. */
239
#define GLUT_NORMAL                        0
240
#define GLUT_OVERLAY                        1
241
242
#if defined(_WIN32)
243
/* Stroke font constants (use these in GLUT program). */
244
#define GLUT_STROKE_ROMAN                ((void*)0)
245
#define GLUT_STROKE_MONO_ROMAN                ((void*)1)
246
247
/* Bitmap font constants (use these in GLUT program). */
248
#define GLUT_BITMAP_9_BY_15                ((void*)2)
249
#define GLUT_BITMAP_8_BY_13                ((void*)3)
250
#define GLUT_BITMAP_TIMES_ROMAN_10        ((void*)4)
251
#define GLUT_BITMAP_TIMES_ROMAN_24        ((void*)5)
252
#if (GLUT_API_VERSION >= 3)
253
#define GLUT_BITMAP_HELVETICA_10        ((void*)6)
254
#define GLUT_BITMAP_HELVETICA_12        ((void*)7)
255
#define GLUT_BITMAP_HELVETICA_18        ((void*)8)
256
#endif
257
#else
258
/* Stroke font opaque addresses (use constants instead in source code). */
259
extern void *glutStrokeRoman;
260
extern void *glutStrokeMonoRoman;
261
262
/* Stroke font constants (use these in GLUT program). */
263
#define GLUT_STROKE_ROMAN                (&glutStrokeRoman)
264
#define GLUT_STROKE_MONO_ROMAN                (&glutStrokeMonoRoman)
265
266
/* Bitmap font opaque addresses (use constants instead in source code). */
267
extern void *glutBitmap9By15;
268
extern void *glutBitmap8By13;
269
extern void *glutBitmapTimesRoman10;
270
extern void *glutBitmapTimesRoman24;
271
extern void *glutBitmapHelvetica10;
272
extern void *glutBitmapHelvetica12;
273
extern void *glutBitmapHelvetica18;
274
275
/* Bitmap font constants (use these in GLUT program). */
276
#define GLUT_BITMAP_9_BY_15                (&glutBitmap9By15)
277
#define GLUT_BITMAP_8_BY_13                (&glutBitmap8By13)
278
#define GLUT_BITMAP_TIMES_ROMAN_10        (&glutBitmapTimesRoman10)
279
#define GLUT_BITMAP_TIMES_ROMAN_24        (&glutBitmapTimesRoman24)
280
#if (GLUT_API_VERSION >= 3)
281
#define GLUT_BITMAP_HELVETICA_10        (&glutBitmapHelvetica10)
282
#define GLUT_BITMAP_HELVETICA_12        (&glutBitmapHelvetica12)
283
#define GLUT_BITMAP_HELVETICA_18        (&glutBitmapHelvetica18)
284
#endif
285
#endif
286
287
/* glutGet parameters. */
288
#define GLUT_WINDOW_X                        100
289
#define GLUT_WINDOW_Y                        101
290
#define GLUT_WINDOW_WIDTH                102
291
#define GLUT_WINDOW_HEIGHT                103
292
#define GLUT_WINDOW_BUFFER_SIZE                104
293
#define GLUT_WINDOW_STENCIL_SIZE        105
294
#define GLUT_WINDOW_DEPTH_SIZE                106
295
#define GLUT_WINDOW_RED_SIZE                107
296
#define GLUT_WINDOW_GREEN_SIZE                108
297
#define GLUT_WINDOW_BLUE_SIZE                109
298
#define GLUT_WINDOW_ALPHA_SIZE                110
299
#define GLUT_WINDOW_ACCUM_RED_SIZE        111
300
#define GLUT_WINDOW_ACCUM_GREEN_SIZE        112
301
#define GLUT_WINDOW_ACCUM_BLUE_SIZE        113
302
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE        114
303
#define GLUT_WINDOW_DOUBLEBUFFER        115
304
#define GLUT_WINDOW_RGBA                116
305
#define GLUT_WINDOW_PARENT                117
306
#define GLUT_WINDOW_NUM_CHILDREN        118
307
#define GLUT_WINDOW_COLORMAP_SIZE        119
308
#if (GLUT_API_VERSION >= 2)
309
#define GLUT_WINDOW_NUM_SAMPLES                120
310
#define GLUT_WINDOW_STEREO                121
311
#endif
312
#if (GLUT_API_VERSION >= 3)
313
#define GLUT_WINDOW_CURSOR                122
314
#endif
315
#define GLUT_SCREEN_WIDTH                200
316
#define GLUT_SCREEN_HEIGHT                201
317
#define GLUT_SCREEN_WIDTH_MM                202
318
#define GLUT_SCREEN_HEIGHT_MM                203
319
#define GLUT_MENU_NUM_ITEMS                300
320
#define GLUT_DISPLAY_MODE_POSSIBLE        400
321
#define GLUT_INIT_WINDOW_X                500
322
#define GLUT_INIT_WINDOW_Y                501
323
#define GLUT_INIT_WINDOW_WIDTH                502
324
#define GLUT_INIT_WINDOW_HEIGHT                503
325
#define GLUT_INIT_DISPLAY_MODE                504
326
#if (GLUT_API_VERSION >= 2)
327
#define GLUT_ELAPSED_TIME                700
328
#endif
329
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
330
#define GLUT_WINDOW_FORMAT_ID                123
331
#endif
332
333
#if (GLUT_API_VERSION >= 2)
334
/* glutDeviceGet parameters. */
335
#define GLUT_HAS_KEYBOARD                600
336
#define GLUT_HAS_MOUSE                        601
337
#define GLUT_HAS_SPACEBALL                602
338
#define GLUT_HAS_DIAL_AND_BUTTON_BOX        603
339
#define GLUT_HAS_TABLET                        604
340
#define GLUT_NUM_MOUSE_BUTTONS                605
341
#define GLUT_NUM_SPACEBALL_BUTTONS        606
342
#define GLUT_NUM_BUTTON_BOX_BUTTONS        607
343
#define GLUT_NUM_DIALS                        608
344
#define GLUT_NUM_TABLET_BUTTONS                609
345
#endif
346
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
347
#define GLUT_DEVICE_IGNORE_KEY_REPEAT   610
348
#define GLUT_DEVICE_KEY_REPEAT          611
349
#define GLUT_HAS_JOYSTICK                612
350
#define GLUT_OWNS_JOYSTICK                613
351
#define GLUT_JOYSTICK_BUTTONS                614
352
#define GLUT_JOYSTICK_AXES                615
353
#define GLUT_JOYSTICK_POLL_RATE                616
354
#endif
355
356
#if (GLUT_API_VERSION >= 3)
357
/* glutLayerGet parameters. */
358
#define GLUT_OVERLAY_POSSIBLE           800
359
#define GLUT_LAYER_IN_USE                801
360
#define GLUT_HAS_OVERLAY                802
361
#define GLUT_TRANSPARENT_INDEX                803
362
#define GLUT_NORMAL_DAMAGED                804
363
#define GLUT_OVERLAY_DAMAGED                805
364
365
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
366
/* glutVideoResizeGet parameters. */
367
#define GLUT_VIDEO_RESIZE_POSSIBLE        900
368
#define GLUT_VIDEO_RESIZE_IN_USE        901
369
#define GLUT_VIDEO_RESIZE_X_DELTA        902
370
#define GLUT_VIDEO_RESIZE_Y_DELTA        903
371
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA        904
372
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA        905
373
#define GLUT_VIDEO_RESIZE_X                906
374
#define GLUT_VIDEO_RESIZE_Y                907
375
#define GLUT_VIDEO_RESIZE_WIDTH                908
376
#define GLUT_VIDEO_RESIZE_HEIGHT        909
377
#endif
378
379
/* glutUseLayer parameters. */
380
#define GLUT_NORMAL                        0
381
#define GLUT_OVERLAY                        1
382
383
/* glutGetModifiers return mask. */
384
#define GLUT_ACTIVE_SHIFT               1
385
#define GLUT_ACTIVE_CTRL                2
386
#define GLUT_ACTIVE_ALT                 4
387
388
/* glutSetCursor parameters. */
389
/* Basic arrows. */
390
#define GLUT_CURSOR_RIGHT_ARROW                0
391
#define GLUT_CURSOR_LEFT_ARROW                1
392
/* Symbolic cursor shapes. */
393
#define GLUT_CURSOR_INFO                2
394
#define GLUT_CURSOR_DESTROY                3
395
#define GLUT_CURSOR_HELP                4
396
#define GLUT_CURSOR_CYCLE                5
397
#define GLUT_CURSOR_SPRAY                6
398
#define GLUT_CURSOR_WAIT                7
399
#define GLUT_CURSOR_TEXT                8
400
#define GLUT_CURSOR_CROSSHAIR                9
401
/* Directional cursors. */
402
#define GLUT_CURSOR_UP_DOWN                10
403
#define GLUT_CURSOR_LEFT_RIGHT                11
404
/* Sizing cursors. */
405
#define GLUT_CURSOR_TOP_SIDE                12
406
#define GLUT_CURSOR_BOTTOM_SIDE                13
407
#define GLUT_CURSOR_LEFT_SIDE                14
408
#define GLUT_CURSOR_RIGHT_SIDE                15
409
#define GLUT_CURSOR_TOP_LEFT_CORNER        16
410
#define GLUT_CURSOR_TOP_RIGHT_CORNER        17
411
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER        18
412
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER        19
413
/* Inherit from parent window. */
414
#define GLUT_CURSOR_INHERIT                100
415
/* Blank cursor. */
416
#define GLUT_CURSOR_NONE                101
417
/* Fullscreen crosshair (if available). */
418
#define GLUT_CURSOR_FULL_CROSSHAIR        102
419
#endif
420
421
/* GLUT initialization sub-API. */
422
extern void APIENTRY glutInit(int *argcp, char **argv);
423
extern void APIENTRY glutInitDisplayMode(unsigned int mode);
424
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
425
extern void APIENTRY glutInitDisplayString(const char *string);
426
#endif
427
extern void APIENTRY glutInitWindowPosition(int x, int y);
428
extern void APIENTRY glutInitWindowSize(int width, int height);
429
extern void APIENTRY glutMainLoop(void);
430
431
/* GLUT window sub-API. */
432
extern int APIENTRY glutCreateWindow(const char *title);
433
extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
434
extern void APIENTRY glutDestroyWindow(int win);
435
extern void APIENTRY glutPostRedisplay(void);
436
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
437
extern void APIENTRY glutPostWindowRedisplay(int win);
438
#endif
439
extern void APIENTRY glutSwapBuffers(void);
440
extern int APIENTRY glutGetWindow(void);
441
extern void APIENTRY glutSetWindow(int win);
442
extern void APIENTRY glutSetWindowTitle(const char *title);
443
extern void APIENTRY glutSetIconTitle(const char *title);
444
extern void APIENTRY glutPositionWindow(int x, int y);
445
extern void APIENTRY glutReshapeWindow(int width, int height);
446
extern void APIENTRY glutPopWindow(void);
447
extern void APIENTRY glutPushWindow(void);
448
extern void APIENTRY glutIconifyWindow(void);
449
extern void APIENTRY glutShowWindow(void);
450
extern void APIENTRY glutHideWindow(void);
451
#if (GLUT_API_VERSION >= 3)
452
extern void APIENTRY glutFullScreen(void);
453
extern void APIENTRY glutSetCursor(int cursor);
454
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
455
extern void APIENTRY glutWarpPointer(int x, int y);
456
#if (GLUT_MACOSX_IMPLEMENTATION >= 1)
457
/* surface texturing API Mac OS X specific
458
*  Note:
459
*        glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object
460
*/
461
#ifdef MAC_OS_X_VERSION_10_5
462
extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
463
#else
464
extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin);
465
#endif
466
#endif
467
#if (GLUT_MACOSX_IMPLEMENTATION >= 2)
468
/* Mac OS X specific API */
469
extern void APIENTRY glutWMCloseFunc(void (*func)(void));
470
extern void APIENTRY glutCheckLoop(void);
471
#endif
472
#endif
473
474
/* GLUT overlay sub-API. */
475
extern void APIENTRY glutEstablishOverlay(void);
476
extern void APIENTRY glutRemoveOverlay(void);
477
extern void APIENTRY glutUseLayer(GLenum layer);
478
extern void APIENTRY glutPostOverlayRedisplay(void);
479
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
480
extern void APIENTRY glutPostWindowOverlayRedisplay(int win);
481
#endif
482
extern void APIENTRY glutShowOverlay(void);
483
extern void APIENTRY glutHideOverlay(void);
484
#endif
485
486
/* GLUT menu sub-API. */
487
extern int APIENTRY glutCreateMenu(void (*)(int));
488
extern void APIENTRY glutDestroyMenu(int menu);
489
extern int APIENTRY glutGetMenu(void);
490
extern void APIENTRY glutSetMenu(int menu);
491
extern void APIENTRY glutAddMenuEntry(const char *label, int value);
492
extern void APIENTRY glutAddSubMenu(const char *label, int submenu);
493
extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
494
extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
495
extern void APIENTRY glutRemoveMenuItem(int item);
496
extern void APIENTRY glutAttachMenu(int button);
497
extern void APIENTRY glutDetachMenu(int button);
498
499
/* GLUT window callback sub-API. */
500
extern void APIENTRY glutDisplayFunc(void (*func)(void));
501
extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height));
502
extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));
503
extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y));
504
extern void APIENTRY glutMotionFunc(void (*func)(int x, int y));
505
extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y));
506
extern void APIENTRY glutEntryFunc(void (*func)(int state));
507
extern void APIENTRY glutVisibilityFunc(void (*func)(int state));
508
extern void APIENTRY glutIdleFunc(void (*func)(void));
509
extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value);
510
extern void APIENTRY glutMenuStateFunc(void (*func)(int state));
511
#if (GLUT_API_VERSION >= 2)
512
extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y));
513
extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z));
514
extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z));
515
extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state));
516
extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state));
517
extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value));
518
extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y));
519
extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y));
520
#if (GLUT_API_VERSION >= 3)
521
extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y));
522
extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void));
523
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
524
extern void APIENTRY glutWindowStatusFunc(void (*func)(int state));
525
#endif
526
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
527
extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y));
528
extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y));
529
extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
530
#endif
531
#endif
532
#endif
533
534
/* GLUT color index sub-API. */
535
extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
536
extern GLfloat APIENTRY glutGetColor(int ndx, int component);
537
extern void APIENTRY glutCopyColormap(int win);
538
539
/* GLUT state retrieval sub-API. */
540
extern int APIENTRY glutGet(GLenum type);
541
extern int APIENTRY glutDeviceGet(GLenum type);
542
#if (GLUT_API_VERSION >= 2)
543
/* GLUT extension support sub-API */
544
extern int APIENTRY glutExtensionSupported(const char *name);
545
#endif
546
#if (GLUT_API_VERSION >= 3)
547
extern int APIENTRY glutGetModifiers(void);
548
extern int APIENTRY glutLayerGet(GLenum type);
549
#endif
550
#if (GLUT_API_VERSION >= 5)
551
extern void * APIENTRY glutGetProcAddress(const char *procName);
552
#endif
553
554
/* GLUT font sub-API */
555
extern void APIENTRY glutBitmapCharacter(void *font, int character);
556
extern int APIENTRY glutBitmapWidth(void *font, int character);
557
extern void APIENTRY glutStrokeCharacter(void *font, int character);
558
extern int APIENTRY glutStrokeWidth(void *font, int character);
559
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
560
extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string);
561
extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string);
562
#endif
563
564
/* GLUT pre-built models sub-API */
565
extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
566
extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
567
extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
568
extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
569
extern void APIENTRY glutWireCube(GLdouble size);
570
extern void APIENTRY glutSolidCube(GLdouble size);
571
extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
572
extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
573
extern void APIENTRY glutWireDodecahedron(void);
574
extern void APIENTRY glutSolidDodecahedron(void);
575
extern void APIENTRY glutWireTeapot(GLdouble size);
576
extern void APIENTRY glutSolidTeapot(GLdouble size);
577
extern void APIENTRY glutWireOctahedron(void);
578
extern void APIENTRY glutSolidOctahedron(void);
579
extern void APIENTRY glutWireTetrahedron(void);
580
extern void APIENTRY glutSolidTetrahedron(void);
581
extern void APIENTRY glutWireIcosahedron(void);
582
extern void APIENTRY glutSolidIcosahedron(void);
583
584
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
585
/* GLUT video resize sub-API. */
586
extern int APIENTRY glutVideoResizeGet(GLenum param);
587
extern void APIENTRY glutSetupVideoResizing(void);
588
extern void APIENTRY glutStopVideoResizing(void);
589
extern void APIENTRY glutVideoResize(int x, int y, int width, int height);
590
extern void APIENTRY glutVideoPan(int x, int y, int width, int height);
591
592
/* GLUT debugging sub-API. */
593
extern void APIENTRY glutReportErrors(void);
594
#endif
595
596
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
597
/* GLUT device control sub-API. */
598
/* glutSetKeyRepeat modes. */
599
#define GLUT_KEY_REPEAT_OFF                0
600
#define GLUT_KEY_REPEAT_ON                1
601
#define GLUT_KEY_REPEAT_DEFAULT                2
602
603
/* Joystick button masks. */
604
#define GLUT_JOYSTICK_BUTTON_A                1
605
#define GLUT_JOYSTICK_BUTTON_B                2
606
#define GLUT_JOYSTICK_BUTTON_C                4
607
#define GLUT_JOYSTICK_BUTTON_D                8
608
609
extern void APIENTRY glutIgnoreKeyRepeat(int ignore);
610
extern void APIENTRY glutSetKeyRepeat(int repeatMode);
611
extern void APIENTRY glutForceJoystickFunc(void);
612
613
/* GLUT game mode sub-API. */
614
/* glutGameModeGet. */
615
#define GLUT_GAME_MODE_ACTIVE           0
616
#define GLUT_GAME_MODE_POSSIBLE         1
617
#define GLUT_GAME_MODE_WIDTH            2
618
#define GLUT_GAME_MODE_HEIGHT           3
619
#define GLUT_GAME_MODE_PIXEL_DEPTH      4
620
#define GLUT_GAME_MODE_REFRESH_RATE     5
621
#define GLUT_GAME_MODE_DISPLAY_CHANGED  6
622
623
extern void APIENTRY glutGameModeString(const char *string);
624
extern int APIENTRY glutEnterGameMode(void);
625
extern void APIENTRY glutLeaveGameMode(void);
626
extern int APIENTRY glutGameModeGet(GLenum mode);
627
#endif
628
629
#ifdef __cplusplus
630
}
631
632
#endif
633
634
#ifdef GLUT_APIENTRY_DEFINED
635
# undef GLUT_APIENTRY_DEFINED
636
# undef APIENTRY
637
#endif
638
639
#ifdef GLUT_WINGDIAPI_DEFINED
640
# undef GLUT_WINGDIAPI_DEFINED
641
# undef WINGDIAPI
642
#endif
643
644
#endif                  /* __glut_h__ */