3
* Mesa 3-D graphics library
5
* Copyright (C) 1995-1998 Brian Paul
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Library General Public
9
* License as published by the Free Software Foundation; either
10
* version 2 of the License, or (at your option) any later version.
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Library General Public License for more details.
17
* You should have received a copy of the GNU Library General Public
18
* License along with this library; if not, write to the Free
19
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24
* This header file is based on the REAL glut.h by Mark J. Kilgard.
26
* The DJGPP/ALLEGRO (DJA) GLUT implementation was written by
27
* Bernhard Tschirren (bernie-t@geocities.com) for the sole purpose
28
* of compiling all the sample programs (which use GLUT). Therefore,
29
* is NOT AT ALL a complete version of GLUT!
41
#define GLUTAPI extern
44
#define GLUT_RGBA GLUT_RGB
51
#define GLUT_STENCIL 32
54
#define GLUT_LEFT_BUTTON 0
55
#define GLUT_MIDDLE_BUTTON 1
56
#define GLUT_RIGHT_BUTTON 2
58
/* Mouse button state. */
72
#define GLUT_KEY_F10 10
73
#define GLUT_KEY_F11 11
74
#define GLUT_KEY_F12 12
76
/* directional keys */
77
#define GLUT_KEY_LEFT 100
78
#define GLUT_KEY_UP 101
79
#define GLUT_KEY_RIGHT 102
80
#define GLUT_KEY_DOWN 103
81
#define GLUT_KEY_PAGE_UP 104
82
#define GLUT_KEY_PAGE_DOWN 105
83
#define GLUT_KEY_HOME 106
84
#define GLUT_KEY_END 107
85
#define GLUT_KEY_INSERT 108
87
/* Entry/exit state. */
89
#define GLUT_ENTERED 1
91
/* Visibility state. */
92
#define GLUT_NOT_VISIBLE 0
93
#define GLUT_VISIBLE 1
95
/* Color index component selection values. */
100
/* Layers for use. */
101
#define GLUT_NORMAL 0
102
#define GLUT_OVERLAY 1
104
/* Stroke font constants (use these in GLUT program). */
105
#define GLUT_STROKE_ROMAN ((void*)0)
106
#define GLUT_STROKE_MONO_ROMAN ((void*)1)
108
/* Bitmap font constants (use these in GLUT program). */
109
#define GLUT_BITMAP_9_BY_15 ((void*)2)
110
#define GLUT_BITMAP_8_BY_13 ((void*)3)
111
#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4)
112
#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5)
113
#define GLUT_BITMAP_HELVETICA_10 ((void*)6)
114
#define GLUT_BITMAP_HELVETICA_12 ((void*)7)
115
#define GLUT_BITMAP_HELVETICA_18 ((void*)8)
117
/* glutGet parameters. */
118
#define GLUT_WINDOW_X 100
119
#define GLUT_WINDOW_Y 101
120
#define GLUT_WINDOW_WIDTH 102
121
#define GLUT_WINDOW_HEIGHT 103
122
#define GLUT_WINDOW_BUFFER_SIZE 104
123
#define GLUT_WINDOW_STENCIL_SIZE 105
124
#define GLUT_WINDOW_DEPTH_SIZE 106
125
#define GLUT_WINDOW_RED_SIZE 107
126
#define GLUT_WINDOW_GREEN_SIZE 108
127
#define GLUT_WINDOW_BLUE_SIZE 109
128
#define GLUT_WINDOW_ALPHA_SIZE 110
129
#define GLUT_WINDOW_ACCUM_RED_SIZE 111
130
#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112
131
#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113
132
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114
133
#define GLUT_WINDOW_DOUBLEBUFFER 115
134
#define GLUT_WINDOW_RGBA 116
135
#define GLUT_WINDOW_PARENT 117
136
#define GLUT_WINDOW_NUM_CHILDREN 118
137
#define GLUT_WINDOW_COLORMAP_SIZE 119
138
#define GLUT_WINDOW_NUM_SAMPLES 120
139
#define GLUT_WINDOW_STEREO 121
140
#define GLUT_WINDOW_CURSOR 122
141
#define GLUT_SCREEN_WIDTH 200
142
#define GLUT_SCREEN_HEIGHT 201
143
#define GLUT_SCREEN_WIDTH_MM 202
144
#define GLUT_SCREEN_HEIGHT_MM 203
145
#define GLUT_MENU_NUM_ITEMS 300
146
#define GLUT_DISPLAY_MODE_POSSIBLE 400
147
#define GLUT_INIT_WINDOW_X 500
148
#define GLUT_INIT_WINDOW_Y 501
149
#define GLUT_INIT_WINDOW_WIDTH 502
150
#define GLUT_INIT_WINDOW_HEIGHT 503
151
#define GLUT_INIT_DISPLAY_MODE 504
152
#define GLUT_ELAPSED_TIME 700
153
#define GLUT_WINDOW_FORMAT_ID 123
155
/* glutDeviceGet parameters. */
156
#define GLUT_HAS_KEYBOARD 600
157
#define GLUT_HAS_MOUSE 601
158
#define GLUT_HAS_SPACEBALL 602
159
#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603
160
#define GLUT_HAS_TABLET 604
161
#define GLUT_NUM_MOUSE_BUTTONS 605
162
#define GLUT_NUM_SPACEBALL_BUTTONS 606
163
#define GLUT_NUM_BUTTON_BOX_BUTTONS 607
164
#define GLUT_NUM_DIALS 608
165
#define GLUT_NUM_TABLET_BUTTONS 609
166
#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610
167
#define GLUT_DEVICE_KEY_REPEAT 611
168
#define GLUT_HAS_JOYSTICK 612
169
#define GLUT_OWNS_JOYSTICK 613
170
#define GLUT_JOYSTICK_BUTTONS 614
171
#define GLUT_JOYSTICK_AXES 615
172
#define GLUT_JOYSTICK_POLL_RATE 616
174
/* glutLayerGet parameters. */
175
#define GLUT_OVERLAY_POSSIBLE 800
176
#define GLUT_LAYER_IN_USE 801
177
#define GLUT_HAS_OVERLAY 802
178
#define GLUT_TRANSPARENT_INDEX 803
179
#define GLUT_NORMAL_DAMAGED 804
180
#define GLUT_OVERLAY_DAMAGED 805
182
/* glutVideoResizeGet parameters. */
183
#define GLUT_VIDEO_RESIZE_POSSIBLE 900
184
#define GLUT_VIDEO_RESIZE_IN_USE 901
185
#define GLUT_VIDEO_RESIZE_X_DELTA 902
186
#define GLUT_VIDEO_RESIZE_Y_DELTA 903
187
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904
188
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905
189
#define GLUT_VIDEO_RESIZE_X 906
190
#define GLUT_VIDEO_RESIZE_Y 907
191
#define GLUT_VIDEO_RESIZE_WIDTH 908
192
#define GLUT_VIDEO_RESIZE_HEIGHT 909
194
/* glutUseLayer parameters. */
195
#define GLUT_NORMAL 0
196
#define GLUT_OVERLAY 1
198
/* glutGetModifiers return mask. */
199
#define GLUT_ACTIVE_SHIFT 1
200
#define GLUT_ACTIVE_CTRL 2
201
#define GLUT_ACTIVE_ALT 4
203
/* glutSetCursor parameters. */
205
#define GLUT_CURSOR_RIGHT_ARROW 0
206
#define GLUT_CURSOR_LEFT_ARROW 1
207
/* Symbolic cursor shapes. */
208
#define GLUT_CURSOR_INFO 2
209
#define GLUT_CURSOR_DESTROY 3
210
#define GLUT_CURSOR_HELP 4
211
#define GLUT_CURSOR_CYCLE 5
212
#define GLUT_CURSOR_SPRAY 6
213
#define GLUT_CURSOR_WAIT 7
214
#define GLUT_CURSOR_TEXT 8
215
#define GLUT_CURSOR_CROSSHAIR 9
216
/* Directional cursors. */
217
#define GLUT_CURSOR_UP_DOWN 10
218
#define GLUT_CURSOR_LEFT_RIGHT 11
219
/* Sizing cursors. */
220
#define GLUT_CURSOR_TOP_SIDE 12
221
#define GLUT_CURSOR_BOTTOM_SIDE 13
222
#define GLUT_CURSOR_LEFT_SIDE 14
223
#define GLUT_CURSOR_RIGHT_SIDE 15
224
#define GLUT_CURSOR_TOP_LEFT_CORNER 16
225
#define GLUT_CURSOR_TOP_RIGHT_CORNER 17
226
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18
227
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19
228
/* Inherit from parent window. */
229
#define GLUT_CURSOR_INHERIT 100
231
#define GLUT_CURSOR_NONE 101
232
/* Fullscreen crosshair (if available). */
233
#define GLUT_CURSOR_FULL_CROSSHAIR 102
235
/* GLUT initialization sub-API. */
236
GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
237
GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode);
238
GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y);
239
GLUTAPI void APIENTRY glutInitWindowSize(int width, int height);
240
GLUTAPI void APIENTRY glutMainLoop(void);
242
/* GLUT window sub-API. */
243
GLUTAPI int APIENTRY glutCreateWindow(const char *title);
244
GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
245
GLUTAPI void APIENTRY glutDestroyWindow(int win);
246
GLUTAPI void APIENTRY glutPostRedisplay(void);
247
GLUTAPI void APIENTRY glutSwapBuffers(void);
248
GLUTAPI int APIENTRY glutGetWindow(void);
249
GLUTAPI void APIENTRY glutSetWindow(int win);
250
GLUTAPI void APIENTRY glutSetWindowTitle(const char *title);
251
GLUTAPI void APIENTRY glutSetIconTitle(const char *title);
252
GLUTAPI void APIENTRY glutPositionWindow(int x, int y);
253
GLUTAPI void APIENTRY glutReshapeWindow(int width, int height);
254
GLUTAPI void APIENTRY glutPopWindow(void);
255
GLUTAPI void APIENTRY glutPushWindow(void);
256
GLUTAPI void APIENTRY glutIconifyWindow(void);
257
GLUTAPI void APIENTRY glutShowWindow(void);
258
GLUTAPI void APIENTRY glutHideWindow(void);
260
/* GLUT overlay sub-API. */
261
GLUTAPI void APIENTRY glutEstablishOverlay(void);
262
GLUTAPI void APIENTRY glutRemoveOverlay(void);
263
GLUTAPI void APIENTRY glutUseLayer(GLenum layer);
264
GLUTAPI void APIENTRY glutPostOverlayRedisplay(void);
265
GLUTAPI void APIENTRY glutShowOverlay(void);
266
GLUTAPI void APIENTRY glutHideOverlay(void);
268
/* GLUT menu sub-API. */
269
GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *)(int));
270
GLUTAPI void APIENTRY glutDestroyMenu(int menu);
271
GLUTAPI int APIENTRY glutGetMenu(void);
272
GLUTAPI void APIENTRY glutSetMenu(int menu);
273
GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value);
274
GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu);
275
GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
276
GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
277
GLUTAPI void APIENTRY glutRemoveMenuItem(int item);
278
GLUTAPI void APIENTRY glutAttachMenu(int button);
279
GLUTAPI void APIENTRY glutDetachMenu(int button);
281
/* GLUT window callback sub-API. */
282
GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK * func)(void));
283
GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK * func)(int width, int height));
284
GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK * func)(unsigned char key, int x, int y));
285
GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
286
GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
287
GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
288
GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK * func)(int state));
289
GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK * func)(int state));
290
GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK * func)(void));
291
GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK * func)(int value), int value);
292
GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK * func)(int state));
293
GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK * func)(int key, int x, int y));
294
GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
295
GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
296
GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK * func)(int button, int state));
297
GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK * func)(int button, int state));
298
GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK * func)(int dial, int value));
299
GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
300
GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
301
GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK * func)(int status, int x, int y));
302
GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK * func)(void));
303
GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK * func)(int state));
305
/* GLUT color index sub-API. */
306
GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
307
GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component);
308
GLUTAPI void APIENTRY glutCopyColormap(int win);
310
/* GLUT state retrieval sub-API. */
311
GLUTAPI int APIENTRY glutGet(GLenum type);
312
GLUTAPI int APIENTRY glutDeviceGet(GLenum type);
314
/* GLUT font sub-API */
315
GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character);
316
GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character);
317
GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character);
318
GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character);
320
/* GLUT pre-built models sub-API */
321
GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
322
GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
323
GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
324
GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
325
GLUTAPI void APIENTRY glutWireCube(GLdouble size);
326
GLUTAPI void APIENTRY glutSolidCube(GLdouble size);
327
GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
328
GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
329
GLUTAPI void APIENTRY glutWireDodecahedron(void);
330
GLUTAPI void APIENTRY glutSolidDodecahedron(void);
331
GLUTAPI void APIENTRY glutWireTeapot(GLdouble size);
332
GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size);
333
GLUTAPI void APIENTRY glutWireOctahedron(void);
334
GLUTAPI void APIENTRY glutSolidOctahedron(void);
335
GLUTAPI void APIENTRY glutWireTetrahedron(void);
336
GLUTAPI void APIENTRY glutSolidTetrahedron(void);
337
GLUTAPI void APIENTRY glutWireIcosahedron(void);
338
GLUTAPI void APIENTRY glutSolidIcosahedron(void);
340
#endif /* __AGLUT_H__ */