ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/FastOpenGlDisplayer/interface/freeglut_std.h
Revision: 1.1
Committed: Tue Apr 1 08:56:18 2008 UTC (17 years, 1 month ago) by roberfro
Content type: text/plain
Branch: MAIN
CVS Tags: Version_0_26, Version_0_25, Version_0_24, Version_0_23, Version_0_22, Version_0_21
Log Message:
Addition of a library to run on lxplus

File Contents

# User Rev Content
1 roberfro 1.1 #ifndef __FREEGLUT_STD_H__
2     #define __FREEGLUT_STD_H__
3    
4     /*
5     * freeglut_std.h
6     *
7     * The GLUT-compatible part of the freeglut library include file
8     *
9     * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
10     * Written by Pawel W. Olszta, <olszta@sourceforge.net>
11     * Creation date: Thu Dec 2 1999
12     *
13     * Permission is hereby granted, free of charge, to any person obtaining a
14     * copy of this software and associated documentation files (the "Software"),
15     * to deal in the Software without restriction, including without limitation
16     * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17     * and/or sell copies of the Software, and to permit persons to whom the
18     * Software is furnished to do so, subject to the following conditions:
19     *
20     * The above copyright notice and this permission notice shall be included
21     * in all copies or substantial portions of the Software.
22     *
23     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24     * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26     * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
27     * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
28     * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29     */
30    
31     #ifdef __cplusplus
32     extern "C" {
33     #endif
34    
35     /*
36     * Under windows, we have to differentiate between static and dynamic libraries
37     */
38     #if defined(WIN32)
39     # include <windows.h>
40     # include <windowsx.h>
41     # include <mmsystem.h>
42     # define WINDOWS
43     #ifdef FREEGLUT_STATIC
44     # define FGAPI
45     # define FGAPIENTRY
46    
47     # pragma comment (lib, "freeglut_static.lib") /* link with Win32 static freeglut lib */
48    
49     #else
50    
51     # if defined(FREEGLUT_EXPORTS)
52     # define FGAPI __declspec(dllexport)
53     /* # define FGAPI */
54     # else
55     # define FGAPI __declspec(dllimport)
56     # pragma comment (lib, "freeglut.lib") /* link with Win32 freeglut lib */
57     # endif
58     # define FGAPIENTRY __stdcall
59    
60     #endif
61    
62     #pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */
63     #pragma comment (lib, "user32.lib") /* link with Windows user lib */
64     #pragma comment (lib, "gdi32.lib") /* link with Windows GDI lib */
65     #pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */
66     #pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */
67    
68    
69     #else
70     # define FGAPI
71     # define FGAPIENTRY
72     #endif
73    
74     /*
75     * The freeglut and GLUT API versions
76     */
77     #define FREEGLUT 1
78     #define GLUT_API_VERSION 4
79     #define FREEGLUT_VERSION_2_0 1
80    
81     /*
82     * Always include OpenGL and GLU headers
83     */
84     #include <GL/gl.h>
85     #include <GL/glu.h>
86    
87     /*
88     * GLUT API macro definitions -- the special key codes:
89     */
90     #define GLUT_KEY_F1 0x0001
91     #define GLUT_KEY_F2 0x0002
92     #define GLUT_KEY_F3 0x0003
93     #define GLUT_KEY_F4 0x0004
94     #define GLUT_KEY_F5 0x0005
95     #define GLUT_KEY_F6 0x0006
96     #define GLUT_KEY_F7 0x0007
97     #define GLUT_KEY_F8 0x0008
98     #define GLUT_KEY_F9 0x0009
99     #define GLUT_KEY_F10 0x000A
100     #define GLUT_KEY_F11 0x000B
101     #define GLUT_KEY_F12 0x000C
102     #define GLUT_KEY_LEFT 0x0064
103     #define GLUT_KEY_UP 0x0065
104     #define GLUT_KEY_RIGHT 0x0066
105     #define GLUT_KEY_DOWN 0x0067
106     #define GLUT_KEY_PAGE_UP 0x0068
107     #define GLUT_KEY_PAGE_DOWN 0x0069
108     #define GLUT_KEY_HOME 0x006A
109     #define GLUT_KEY_END 0x006B
110     #define GLUT_KEY_INSERT 0x006C
111    
112     /*
113     * GLUT API macro definitions -- mouse state definitions
114     */
115     #define GLUT_LEFT_BUTTON 0x0000
116     #define GLUT_MIDDLE_BUTTON 0x0001
117     #define GLUT_RIGHT_BUTTON 0x0002
118     #define GLUT_DOWN 0x0000
119     #define GLUT_UP 0x0001
120     #define GLUT_LEFT 0x0000
121     #define GLUT_ENTERED 0x0001
122    
123     /*
124     * GLUT API macro definitions -- the display mode definitions
125     */
126     #define GLUT_RGB 0x0000
127     #define GLUT_RGBA 0x0000
128     #define GLUT_INDEX 0x0001
129     #define GLUT_SINGLE 0x0000
130     #define GLUT_DOUBLE 0x0002
131     #define GLUT_ACCUM 0x0004
132     #define GLUT_ALPHA 0x0008
133     #define GLUT_DEPTH 0x0010
134     #define GLUT_STENCIL 0x0020
135     #define GLUT_MULTISAMPLE 0x0080
136     #define GLUT_STEREO 0x0100
137     #define GLUT_LUMINANCE 0x0200
138    
139     /*
140     * GLUT API macro definitions -- windows and menu related definitions
141     */
142     #define GLUT_MENU_NOT_IN_USE 0x0000
143     #define GLUT_MENU_IN_USE 0x0001
144     #define GLUT_NOT_VISIBLE 0x0000
145     #define GLUT_VISIBLE 0x0001
146     #define GLUT_HIDDEN 0x0000
147     #define GLUT_FULLY_RETAINED 0x0001
148     #define GLUT_PARTIALLY_RETAINED 0x0002
149     #define GLUT_FULLY_COVERED 0x0003
150    
151     /*
152     * GLUT API macro definitions -- fonts definitions
153     *
154     * Steve Baker suggested to make it binary compatible with GLUT:
155     */
156     #if defined(WIN32)
157     # define GLUT_STROKE_ROMAN ((void *)0x0000)
158     # define GLUT_STROKE_MONO_ROMAN ((void *)0x0001)
159     # define GLUT_BITMAP_9_BY_15 ((void *)0x0002)
160     # define GLUT_BITMAP_8_BY_13 ((void *)0x0003)
161     # define GLUT_BITMAP_TIMES_ROMAN_10 ((void *)0x0004)
162     # define GLUT_BITMAP_TIMES_ROMAN_24 ((void *)0x0005)
163     # define GLUT_BITMAP_HELVETICA_10 ((void *)0x0006)
164     # define GLUT_BITMAP_HELVETICA_12 ((void *)0x0007)
165     # define GLUT_BITMAP_HELVETICA_18 ((void *)0x0008)
166     #else
167     /*
168     * I don't really know if it's a good idea... But here it goes:
169     */
170     extern void* glutStrokeRoman;
171     extern void* glutStrokeMonoRoman;
172     extern void* glutBitmap9By15;
173     extern void* glutBitmap8By13;
174     extern void* glutBitmapTimesRoman10;
175     extern void* glutBitmapTimesRoman24;
176     extern void* glutBitmapHelvetica10;
177     extern void* glutBitmapHelvetica12;
178     extern void* glutBitmapHelvetica18;
179    
180     /*
181     * Those pointers will be used by following definitions:
182     */
183     # define GLUT_STROKE_ROMAN ((void *) &glutStrokeRoman)
184     # define GLUT_STROKE_MONO_ROMAN ((void *) &glutStrokeMonoRoman)
185     # define GLUT_BITMAP_9_BY_15 ((void *) &glutBitmap9By15)
186     # define GLUT_BITMAP_8_BY_13 ((void *) &glutBitmap8By13)
187     # define GLUT_BITMAP_TIMES_ROMAN_10 ((void *) &glutBitmapTimesRoman10)
188     # define GLUT_BITMAP_TIMES_ROMAN_24 ((void *) &glutBitmapTimesRoman24)
189     # define GLUT_BITMAP_HELVETICA_10 ((void *) &glutBitmapHelvetica10)
190     # define GLUT_BITMAP_HELVETICA_12 ((void *) &glutBitmapHelvetica12)
191     # define GLUT_BITMAP_HELVETICA_18 ((void *) &glutBitmapHelvetica18)
192     #endif
193    
194     /*
195     * GLUT API macro definitions -- the glutGet parameters
196     */
197     #define GLUT_WINDOW_X 0x0064
198     #define GLUT_WINDOW_Y 0x0065
199     #define GLUT_WINDOW_WIDTH 0x0066
200     #define GLUT_WINDOW_HEIGHT 0x0067
201     #define GLUT_WINDOW_BUFFER_SIZE 0x0068
202     #define GLUT_WINDOW_STENCIL_SIZE 0x0069
203     #define GLUT_WINDOW_DEPTH_SIZE 0x006A
204     #define GLUT_WINDOW_RED_SIZE 0x006B
205     #define GLUT_WINDOW_GREEN_SIZE 0x006C
206     #define GLUT_WINDOW_BLUE_SIZE 0x006D
207     #define GLUT_WINDOW_ALPHA_SIZE 0x006E
208     #define GLUT_WINDOW_ACCUM_RED_SIZE 0x006F
209     #define GLUT_WINDOW_ACCUM_GREEN_SIZE 0x0070
210     #define GLUT_WINDOW_ACCUM_BLUE_SIZE 0x0071
211     #define GLUT_WINDOW_ACCUM_ALPHA_SIZE 0x0072
212     #define GLUT_WINDOW_DOUBLEBUFFER 0x0073
213     #define GLUT_WINDOW_RGBA 0x0074
214     #define GLUT_WINDOW_PARENT 0x0075
215     #define GLUT_WINDOW_NUM_CHILDREN 0x0076
216     #define GLUT_WINDOW_COLORMAP_SIZE 0x0077
217     #define GLUT_WINDOW_NUM_SAMPLES 0x0078
218     #define GLUT_WINDOW_STEREO 0x0079
219     #define GLUT_WINDOW_CURSOR 0x007A
220    
221     #define GLUT_SCREEN_WIDTH 0x00C8
222     #define GLUT_SCREEN_HEIGHT 0x00C9
223     #define GLUT_SCREEN_WIDTH_MM 0x00CA
224     #define GLUT_SCREEN_HEIGHT_MM 0x00CB
225     #define GLUT_MENU_NUM_ITEMS 0x012C
226     #define GLUT_DISPLAY_MODE_POSSIBLE 0x0190
227     #define GLUT_INIT_WINDOW_X 0x01F4
228     #define GLUT_INIT_WINDOW_Y 0x01F5
229     #define GLUT_INIT_WINDOW_WIDTH 0x01F6
230     #define GLUT_INIT_WINDOW_HEIGHT 0x01F7
231     #define GLUT_INIT_DISPLAY_MODE 0x01F8
232     #define GLUT_ELAPSED_TIME 0x02BC
233     #define GLUT_WINDOW_FORMAT_ID 0x007B
234     #define GLUT_INIT_STATE 0x007C
235    
236     /*
237     * GLUT API macro definitions -- the glutDeviceGet parameters
238     */
239     #define GLUT_HAS_KEYBOARD 0x0258
240     #define GLUT_HAS_MOUSE 0x0259
241     #define GLUT_HAS_SPACEBALL 0x025A
242     #define GLUT_HAS_DIAL_AND_BUTTON_BOX 0x025B
243     #define GLUT_HAS_TABLET 0x025C
244     #define GLUT_NUM_MOUSE_BUTTONS 0x025D
245     #define GLUT_NUM_SPACEBALL_BUTTONS 0x025E
246     #define GLUT_NUM_BUTTON_BOX_BUTTONS 0x025F
247     #define GLUT_NUM_DIALS 0x0260
248     #define GLUT_NUM_TABLET_BUTTONS 0x0261
249     #define GLUT_DEVICE_IGNORE_KEY_REPEAT 0x0262
250     #define GLUT_DEVICE_KEY_REPEAT 0x0263
251     #define GLUT_HAS_JOYSTICK 0x0264
252     #define GLUT_OWNS_JOYSTICK 0x0265
253     #define GLUT_JOYSTICK_BUTTONS 0x0266
254     #define GLUT_JOYSTICK_AXES 0x0267
255     #define GLUT_JOYSTICK_POLL_RATE 0x0268
256    
257     /*
258     * GLUT API macro definitions -- the glutLayerGet parameters
259     */
260     #define GLUT_OVERLAY_POSSIBLE 0x0320
261     #define GLUT_LAYER_IN_USE 0x0321
262     #define GLUT_HAS_OVERLAY 0x0322
263     #define GLUT_TRANSPARENT_INDEX 0x0323
264     #define GLUT_NORMAL_DAMAGED 0x0324
265     #define GLUT_OVERLAY_DAMAGED 0x0325
266    
267     /*
268     * GLUT API macro definitions -- the glutVideoResizeGet parameters
269     */
270     #define GLUT_VIDEO_RESIZE_POSSIBLE 0x0384
271     #define GLUT_VIDEO_RESIZE_IN_USE 0x0385
272     #define GLUT_VIDEO_RESIZE_X_DELTA 0x0386
273     #define GLUT_VIDEO_RESIZE_Y_DELTA 0x0387
274     #define GLUT_VIDEO_RESIZE_WIDTH_DELTA 0x0388
275     #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 0x0389
276     #define GLUT_VIDEO_RESIZE_X 0x038A
277     #define GLUT_VIDEO_RESIZE_Y 0x038B
278     #define GLUT_VIDEO_RESIZE_WIDTH 0x038C
279     #define GLUT_VIDEO_RESIZE_HEIGHT 0x038D
280    
281     /*
282     * GLUT API macro definitions -- the glutUseLayer parameters
283     */
284     #define GLUT_NORMAL 0x0000
285     #define GLUT_OVERLAY 0x0001
286    
287     /*
288     * GLUT API macro definitions -- the glutGetModifiers parameters
289     */
290     #define GLUT_ACTIVE_SHIFT 0x0001
291     #define GLUT_ACTIVE_CTRL 0x0002
292     #define GLUT_ACTIVE_ALT 0x0004
293    
294     /*
295     * GLUT API macro definitions -- the glutSetCursor parameters
296     */
297     #define GLUT_CURSOR_RIGHT_ARROW 0x0000
298     #define GLUT_CURSOR_LEFT_ARROW 0x0001
299     #define GLUT_CURSOR_INFO 0x0002
300     #define GLUT_CURSOR_DESTROY 0x0003
301     #define GLUT_CURSOR_HELP 0x0004
302     #define GLUT_CURSOR_CYCLE 0x0005
303     #define GLUT_CURSOR_SPRAY 0x0006
304     #define GLUT_CURSOR_WAIT 0x0007
305     #define GLUT_CURSOR_TEXT 0x0008
306     #define GLUT_CURSOR_CROSSHAIR 0x0009
307     #define GLUT_CURSOR_UP_DOWN 0x000A
308     #define GLUT_CURSOR_LEFT_RIGHT 0x000B
309     #define GLUT_CURSOR_TOP_SIDE 0x000C
310     #define GLUT_CURSOR_BOTTOM_SIDE 0x000D
311     #define GLUT_CURSOR_LEFT_SIDE 0x000E
312     #define GLUT_CURSOR_RIGHT_SIDE 0x000F
313     #define GLUT_CURSOR_TOP_LEFT_CORNER 0x0010
314     #define GLUT_CURSOR_TOP_RIGHT_CORNER 0x0011
315     #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 0x0012
316     #define GLUT_CURSOR_BOTTOM_LEFT_CORNER 0x0013
317     #define GLUT_CURSOR_INHERIT 0x0064
318     #define GLUT_CURSOR_NONE 0x0065
319     #define GLUT_CURSOR_FULL_CROSSHAIR 0x0066
320    
321     /*
322     * GLUT API macro definitions -- RGB color component specification definitions
323     */
324     #define GLUT_RED 0x0000
325     #define GLUT_GREEN 0x0001
326     #define GLUT_BLUE 0x0002
327    
328     /*
329     * GLUT API macro definitions -- additional keyboard and joystick definitions
330     */
331     #define GLUT_KEY_REPEAT_OFF 0x0000
332     #define GLUT_KEY_REPEAT_ON 0x0001
333     #define GLUT_KEY_REPEAT_DEFAULT 0x0002
334    
335     #define GLUT_JOYSTICK_BUTTON_A 0x0001
336     #define GLUT_JOYSTICK_BUTTON_B 0x0002
337     #define GLUT_JOYSTICK_BUTTON_C 0x0004
338     #define GLUT_JOYSTICK_BUTTON_D 0x0008
339    
340     /*
341     * GLUT API macro definitions -- game mode definitions
342     */
343     #define GLUT_GAME_MODE_ACTIVE 0x0000
344     #define GLUT_GAME_MODE_POSSIBLE 0x0001
345     #define GLUT_GAME_MODE_WIDTH 0x0002
346     #define GLUT_GAME_MODE_HEIGHT 0x0003
347     #define GLUT_GAME_MODE_PIXEL_DEPTH 0x0004
348     #define GLUT_GAME_MODE_REFRESH_RATE 0x0005
349     #define GLUT_GAME_MODE_DISPLAY_CHANGED 0x0006
350    
351     /*
352     * Initialization functions, see fglut_init.c
353     */
354     FGAPI void FGAPIENTRY glutInit( int* pargc, char** argv );
355     FGAPI void FGAPIENTRY glutInitWindowPosition( int x, int y );
356     FGAPI void FGAPIENTRY glutInitWindowSize( int width, int height );
357     FGAPI void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode );
358     FGAPI void FGAPIENTRY glutInitDisplayString( const char* displayMode );
359    
360     /*
361     * Process loop function, see freeglut_main.c
362     */
363     FGAPI void FGAPIENTRY glutMainLoop( void );
364    
365     /*
366     * Window management functions, see freeglut_window.c
367     */
368     FGAPI int FGAPIENTRY glutCreateWindow( const char* title );
369     FGAPI int FGAPIENTRY glutCreateSubWindow( int window, int x, int y, int width, int height );
370     FGAPI void FGAPIENTRY glutDestroyWindow( int window );
371     FGAPI void FGAPIENTRY glutSetWindow( int window );
372     FGAPI int FGAPIENTRY glutGetWindow( void );
373     FGAPI void FGAPIENTRY glutSetWindowTitle( const char* title );
374     FGAPI void FGAPIENTRY glutSetIconTitle( const char* title );
375     FGAPI void FGAPIENTRY glutReshapeWindow( int width, int height );
376     FGAPI void FGAPIENTRY glutPositionWindow( int x, int y );
377     FGAPI void FGAPIENTRY glutShowWindow( void );
378     FGAPI void FGAPIENTRY glutHideWindow( void );
379     FGAPI void FGAPIENTRY glutIconifyWindow( void );
380     FGAPI void FGAPIENTRY glutPushWindow( void );
381     FGAPI void FGAPIENTRY glutPopWindow( void );
382     FGAPI void FGAPIENTRY glutFullScreen( void );
383    
384     /*
385     * Display-connected functions, see freeglut_display.c
386     */
387     FGAPI void FGAPIENTRY glutPostWindowRedisplay( int window );
388     FGAPI void FGAPIENTRY glutPostRedisplay( void );
389     FGAPI void FGAPIENTRY glutSwapBuffers( void );
390    
391     /*
392     * Mouse cursor functions, see freeglut_cursor.c
393     */
394     FGAPI void FGAPIENTRY glutWarpPointer( int x, int y );
395     FGAPI void FGAPIENTRY glutSetCursor( int cursor );
396    
397     /*
398     * Overlay stuff, see freeglut_overlay.c
399     */
400     FGAPI void FGAPIENTRY glutEstablishOverlay( void );
401     FGAPI void FGAPIENTRY glutRemoveOverlay( void );
402     FGAPI void FGAPIENTRY glutUseLayer( GLenum layer );
403     FGAPI void FGAPIENTRY glutPostOverlayRedisplay( void );
404     FGAPI void FGAPIENTRY glutPostWindowOverlayRedisplay( int window );
405     FGAPI void FGAPIENTRY glutShowOverlay( void );
406     FGAPI void FGAPIENTRY glutHideOverlay( void );
407    
408     /*
409     * Menu stuff, see freeglut_menu.c
410     */
411     FGAPI int FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) );
412     FGAPI void FGAPIENTRY glutDestroyMenu( int menu );
413     FGAPI int FGAPIENTRY glutGetMenu( void );
414     FGAPI void FGAPIENTRY glutSetMenu( int menu );
415     FGAPI void FGAPIENTRY glutAddMenuEntry( const char* label, int value );
416     FGAPI void FGAPIENTRY glutAddSubMenu( const char* label, int subMenu );
417     FGAPI void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value );
418     FGAPI void FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value );
419     FGAPI void FGAPIENTRY glutRemoveMenuItem( int item );
420     FGAPI void FGAPIENTRY glutAttachMenu( int button );
421     FGAPI void FGAPIENTRY glutDetachMenu( int button );
422    
423     /*
424     * Global callback functions, see freeglut_callbacks.c
425     */
426     FGAPI void FGAPIENTRY glutTimerFunc( unsigned int time, void (* callback)( int ), int value );
427     FGAPI void FGAPIENTRY glutIdleFunc( void (* callback)( void ) );
428    
429     /*
430     * Window-specific callback functions, see freeglut_callbacks.c
431     */
432     FGAPI void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) );
433     FGAPI void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) );
434     FGAPI void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) );
435     FGAPI void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) );
436     FGAPI void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) );
437     FGAPI void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) );
438     FGAPI void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) );
439     FGAPI void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) );
440     FGAPI void FGAPIENTRY glutEntryFunc( void (* callback)( int ) );
441    
442     FGAPI void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) );
443     FGAPI void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) );
444     FGAPI void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval );
445     FGAPI void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) );
446     FGAPI void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) );
447     FGAPI void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) );
448     FGAPI void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) );
449    
450     FGAPI void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) );
451     FGAPI void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) );
452     FGAPI void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) );
453     FGAPI void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) );
454     FGAPI void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) );
455     FGAPI void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) );
456     FGAPI void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) );
457    
458     /*
459     * State setting and retrieval functions, see freeglut_state.c
460     */
461     FGAPI int FGAPIENTRY glutGet( GLenum query );
462     FGAPI int FGAPIENTRY glutDeviceGet( GLenum query );
463     FGAPI int FGAPIENTRY glutGetModifiers( void );
464     FGAPI int FGAPIENTRY glutLayerGet( GLenum query );
465    
466     /*
467     * Font stuff, see freeglut_font.c
468     */
469     FGAPI void FGAPIENTRY glutBitmapCharacter( void* font, int character );
470     FGAPI int FGAPIENTRY glutBitmapWidth( void* font, int character );
471     FGAPI void FGAPIENTRY glutStrokeCharacter( void* font, int character );
472     FGAPI int FGAPIENTRY glutStrokeWidth( void* font, int character );
473     FGAPI int FGAPIENTRY glutBitmapLength( void* font, const unsigned char* string );
474     FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* string );
475    
476     /*
477     * Geometry functions, see freeglut_geometry.c
478     */
479     FGAPI void FGAPIENTRY glutWireCube( GLdouble size );
480     FGAPI void FGAPIENTRY glutSolidCube( GLdouble size );
481     FGAPI void FGAPIENTRY glutWireSphere( GLdouble radius, GLint slices, GLint stacks );
482     FGAPI void FGAPIENTRY glutSolidSphere( GLdouble radius, GLint slices, GLint stacks );
483     FGAPI void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks );
484     FGAPI void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks );
485    
486     FGAPI void FGAPIENTRY glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings );
487     FGAPI void FGAPIENTRY glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings );
488     FGAPI void FGAPIENTRY glutWireDodecahedron( void );
489     FGAPI void FGAPIENTRY glutSolidDodecahedron( void );
490     FGAPI void FGAPIENTRY glutWireOctahedron( void );
491     FGAPI void FGAPIENTRY glutSolidOctahedron( void );
492     FGAPI void FGAPIENTRY glutWireTetrahedron( void );
493     FGAPI void FGAPIENTRY glutSolidTetrahedron( void );
494     FGAPI void FGAPIENTRY glutWireIcosahedron( void );
495     FGAPI void FGAPIENTRY glutSolidIcosahedron( void );
496    
497     /*
498     * Teapot rendering functions, found in freeglut_teapot.c
499     */
500     FGAPI void FGAPIENTRY glutWireTeapot( GLdouble size );
501     FGAPI void FGAPIENTRY glutSolidTeapot( GLdouble size );
502    
503     /*
504     * Game mode functions, see freeglut_gamemode.c
505     */
506     FGAPI void FGAPIENTRY glutGameModeString( const char* string );
507     FGAPI int FGAPIENTRY glutEnterGameMode( void );
508     FGAPI void FGAPIENTRY glutLeaveGameMode( void );
509     FGAPI int FGAPIENTRY glutGameModeGet( GLenum query );
510    
511     /*
512     * Video resize functions, see freeglut_videoresize.c
513     */
514     FGAPI int FGAPIENTRY glutVideoResizeGet( GLenum query );
515     FGAPI void FGAPIENTRY glutSetupVideoResizing( void );
516     FGAPI void FGAPIENTRY glutStopVideoResizing( void );
517     FGAPI void FGAPIENTRY glutVideoResize( int x, int y, int width, int height );
518     FGAPI void FGAPIENTRY glutVideoPan( int x, int y, int width, int height );
519    
520     /*
521     * Colormap functions, see freeglut_misc.c
522     */
523     FGAPI void FGAPIENTRY glutSetColor( int color, GLfloat red, GLfloat green, GLfloat blue );
524     FGAPI GLfloat FGAPIENTRY glutGetColor( int color, int component );
525     FGAPI void FGAPIENTRY glutCopyColormap( int window );
526    
527     /*
528     * Misc keyboard and joystick functions, see freeglut_misc.c
529     */
530     FGAPI void FGAPIENTRY glutIgnoreKeyRepeat( int ignore );
531     FGAPI void FGAPIENTRY glutSetKeyRepeat( int repeatMode ); /* DEPRECATED 11/4/02 - Do not use */
532     FGAPI void FGAPIENTRY glutForceJoystickFunc( void );
533    
534     /*
535     * Misc functions, see freeglut_misc.c
536     */
537     FGAPI int FGAPIENTRY glutExtensionSupported( const char* extension );
538     FGAPI void FGAPIENTRY glutReportErrors( void );
539    
540     #ifdef __cplusplus
541     }
542     #endif
543    
544     /*** END OF FILE ***/
545    
546     #endif /* __FREEGLUT_STD_H__ */
547