Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/freeglut/include/GL/freeglut_std.h @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 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 #ifdef _WIN32 | |
| 39 /* #pragma may not be supported by some compilers. | |
| 40 * Discussion by FreeGLUT developers suggests that | |
| 41 * Visual C++ specific code involving pragmas may | |
| 42 * need to move to a separate header. 24th Dec 2003 | |
| 43 */ | |
| 44 | |
| 45 /* Define FREEGLUT_LIB_PRAGMAS to 1 to include library | |
| 46 * pragmas or to 0 to exclude library pragmas. | |
| 47 * The default behavior depends on the compiler/platform. | |
| 48 */ | |
| 49 # ifndef FREEGLUT_LIB_PRAGMAS | |
| 50 # if ( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(_WIN32_WCE) | |
| 51 # define FREEGLUT_LIB_PRAGMAS 1 | |
| 52 # else | |
| 53 # define FREEGLUT_LIB_PRAGMAS 0 | |
| 54 # endif | |
| 55 # endif | |
| 56 | |
| 57 # ifndef WIN32_LEAN_AND_MEAN | |
| 58 # define WIN32_LEAN_AND_MEAN 1 | |
| 59 # endif | |
| 60 # ifndef NOMINMAX | |
| 61 # define NOMINMAX | |
| 62 # endif | |
| 63 # include <windows.h> | |
| 64 | |
| 65 /* Windows static library */ | |
| 66 # ifdef FREEGLUT_STATIC | |
| 67 | |
| 68 # define FGAPI | |
| 69 # define FGAPIENTRY | |
| 70 | |
| 71 /* Link with Win32 static freeglut lib */ | |
| 72 # if FREEGLUT_LIB_PRAGMAS | |
| 73 # ifdef NDEBUG | |
| 74 # pragma comment (lib, "freeglut_static.lib") | |
| 75 # else | |
| 76 # pragma comment (lib, "freeglut_staticd.lib") | |
| 77 # endif | |
| 78 # endif | |
| 79 | |
| 80 /* Windows shared library (DLL) */ | |
| 81 # else | |
| 82 | |
| 83 # define FGAPIENTRY __stdcall | |
| 84 # if defined(FREEGLUT_EXPORTS) | |
| 85 # define FGAPI __declspec(dllexport) | |
| 86 # else | |
| 87 # define FGAPI __declspec(dllimport) | |
| 88 | |
| 89 /* Link with Win32 shared freeglut lib */ | |
| 90 # if FREEGLUT_LIB_PRAGMAS | |
| 91 # ifdef NDEBUG | |
| 92 # pragma comment (lib, "freeglut.lib") | |
| 93 # else | |
| 94 # pragma comment (lib, "freeglutd.lib") | |
| 95 # endif | |
| 96 # endif | |
| 97 | |
| 98 # endif | |
| 99 | |
| 100 # endif | |
| 101 | |
| 102 /* Drag in other Windows libraries as required by FreeGLUT */ | |
| 103 # if FREEGLUT_LIB_PRAGMAS | |
| 104 # pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */ | |
| 105 # pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */ | |
| 106 # pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */ | |
| 107 # pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */ | |
| 108 # pragma comment (lib, "user32.lib") /* link Windows user lib */ | |
| 109 # endif | |
| 110 | |
| 111 #else | |
| 112 | |
| 113 /* Non-Windows definition of FGAPI and FGAPIENTRY */ | |
| 114 # define FGAPI | |
| 115 # define FGAPIENTRY | |
| 116 | |
| 117 #endif | |
| 118 | |
| 119 /* | |
| 120 * The freeglut and GLUT API versions | |
| 121 */ | |
| 122 #define FREEGLUT 1 | |
| 123 #define GLUT_API_VERSION 6 | |
| 124 #define GLUT_XLIB_IMPLEMENTATION 13 | |
| 125 /* Deprecated: | |
| 126 cf. http://sourceforge.net/mailarchive/forum.php?thread_name=CABcAi1hw7cr4xtigckaGXB5X8wddLfMcbA_rZ3NAuwMrX_zmsw%40mail.gmail.com&forum_name=freeglut-developer */ | |
| 127 #define FREEGLUT_VERSION_2_0 1 | |
| 128 | |
| 129 /* | |
| 130 * Always include OpenGL and GLU headers | |
| 131 */ | |
| 132 /* Note: FREEGLUT_GLES is only used to cleanly bootstrap headers | |
| 133 inclusion here; use GLES constants directly | |
| 134 (e.g. GL_ES_VERSION_2_0) for all other needs */ | |
| 135 #ifdef FREEGLUT_GLES | |
| 136 # include <EGL/egl.h> | |
| 137 # include <GLES/gl.h> | |
| 138 # include <GLES2/gl2.h> | |
| 139 #elif __APPLE__ | |
| 140 # include <OpenGL/gl.h> | |
| 141 # include <OpenGL/glu.h> | |
| 142 #else | |
| 143 # include <GL/gl.h> | |
| 144 # include <GL/glu.h> | |
| 145 #endif | |
| 146 | |
| 147 /* | |
| 148 * GLUT API macro definitions -- the special key codes: | |
| 149 */ | |
| 150 #define GLUT_KEY_F1 0x0001 | |
| 151 #define GLUT_KEY_F2 0x0002 | |
| 152 #define GLUT_KEY_F3 0x0003 | |
| 153 #define GLUT_KEY_F4 0x0004 | |
| 154 #define GLUT_KEY_F5 0x0005 | |
| 155 #define GLUT_KEY_F6 0x0006 | |
| 156 #define GLUT_KEY_F7 0x0007 | |
| 157 #define GLUT_KEY_F8 0x0008 | |
| 158 #define GLUT_KEY_F9 0x0009 | |
| 159 #define GLUT_KEY_F10 0x000A | |
| 160 #define GLUT_KEY_F11 0x000B | |
| 161 #define GLUT_KEY_F12 0x000C | |
| 162 #define GLUT_KEY_LEFT 0x0064 | |
| 163 #define GLUT_KEY_UP 0x0065 | |
| 164 #define GLUT_KEY_RIGHT 0x0066 | |
| 165 #define GLUT_KEY_DOWN 0x0067 | |
| 166 #define GLUT_KEY_PAGE_UP 0x0068 | |
| 167 #define GLUT_KEY_PAGE_DOWN 0x0069 | |
| 168 #define GLUT_KEY_HOME 0x006A | |
| 169 #define GLUT_KEY_END 0x006B | |
| 170 #define GLUT_KEY_INSERT 0x006C | |
| 171 | |
| 172 /* | |
| 173 * GLUT API macro definitions -- mouse state definitions | |
| 174 */ | |
| 175 #define GLUT_LEFT_BUTTON 0x0000 | |
| 176 #define GLUT_MIDDLE_BUTTON 0x0001 | |
| 177 #define GLUT_RIGHT_BUTTON 0x0002 | |
| 178 #define GLUT_DOWN 0x0000 | |
| 179 #define GLUT_UP 0x0001 | |
| 180 #define GLUT_LEFT 0x0000 | |
| 181 #define GLUT_ENTERED 0x0001 | |
| 182 | |
| 183 /* | |
| 184 * GLUT API macro definitions -- the display mode definitions | |
| 185 */ | |
| 186 #define GLUT_RGB 0x0000 | |
| 187 #define GLUT_RGBA 0x0000 | |
| 188 #define GLUT_INDEX 0x0001 | |
| 189 #define GLUT_SINGLE 0x0000 | |
| 190 #define GLUT_DOUBLE 0x0002 | |
| 191 #define GLUT_ACCUM 0x0004 | |
| 192 #define GLUT_ALPHA 0x0008 | |
| 193 #define GLUT_DEPTH 0x0010 | |
| 194 #define GLUT_STENCIL 0x0020 | |
| 195 #define GLUT_MULTISAMPLE 0x0080 | |
| 196 #define GLUT_STEREO 0x0100 | |
| 197 #define GLUT_LUMINANCE 0x0200 | |
| 198 | |
| 199 /* | |
| 200 * GLUT API macro definitions -- windows and menu related definitions | |
| 201 */ | |
| 202 #define GLUT_MENU_NOT_IN_USE 0x0000 | |
| 203 #define GLUT_MENU_IN_USE 0x0001 | |
| 204 #define GLUT_NOT_VISIBLE 0x0000 | |
| 205 #define GLUT_VISIBLE 0x0001 | |
| 206 #define GLUT_HIDDEN 0x0000 | |
| 207 #define GLUT_FULLY_RETAINED 0x0001 | |
| 208 #define GLUT_PARTIALLY_RETAINED 0x0002 | |
| 209 #define GLUT_FULLY_COVERED 0x0003 | |
| 210 | |
| 211 /* | |
| 212 * GLUT API macro definitions -- fonts definitions | |
| 213 * | |
| 214 * Steve Baker suggested to make it binary compatible with GLUT: | |
| 215 */ | |
| 216 #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__WATCOMC__) | |
| 217 # define GLUT_STROKE_ROMAN ((void *)0x0000) | |
| 218 # define GLUT_STROKE_MONO_ROMAN ((void *)0x0001) | |
| 219 # define GLUT_BITMAP_9_BY_15 ((void *)0x0002) | |
| 220 # define GLUT_BITMAP_8_BY_13 ((void *)0x0003) | |
| 221 # define GLUT_BITMAP_TIMES_ROMAN_10 ((void *)0x0004) | |
| 222 # define GLUT_BITMAP_TIMES_ROMAN_24 ((void *)0x0005) | |
| 223 # define GLUT_BITMAP_HELVETICA_10 ((void *)0x0006) | |
| 224 # define GLUT_BITMAP_HELVETICA_12 ((void *)0x0007) | |
| 225 # define GLUT_BITMAP_HELVETICA_18 ((void *)0x0008) | |
| 226 #else | |
| 227 /* | |
| 228 * I don't really know if it's a good idea... But here it goes: | |
| 229 */ | |
| 230 extern void* glutStrokeRoman; | |
| 231 extern void* glutStrokeMonoRoman; | |
| 232 extern void* glutBitmap9By15; | |
| 233 extern void* glutBitmap8By13; | |
| 234 extern void* glutBitmapTimesRoman10; | |
| 235 extern void* glutBitmapTimesRoman24; | |
| 236 extern void* glutBitmapHelvetica10; | |
| 237 extern void* glutBitmapHelvetica12; | |
| 238 extern void* glutBitmapHelvetica18; | |
| 239 | |
| 240 /* | |
| 241 * Those pointers will be used by following definitions: | |
| 242 */ | |
| 243 # define GLUT_STROKE_ROMAN ((void *) &glutStrokeRoman) | |
| 244 # define GLUT_STROKE_MONO_ROMAN ((void *) &glutStrokeMonoRoman) | |
| 245 # define GLUT_BITMAP_9_BY_15 ((void *) &glutBitmap9By15) | |
| 246 # define GLUT_BITMAP_8_BY_13 ((void *) &glutBitmap8By13) | |
| 247 # define GLUT_BITMAP_TIMES_ROMAN_10 ((void *) &glutBitmapTimesRoman10) | |
| 248 # define GLUT_BITMAP_TIMES_ROMAN_24 ((void *) &glutBitmapTimesRoman24) | |
| 249 # define GLUT_BITMAP_HELVETICA_10 ((void *) &glutBitmapHelvetica10) | |
| 250 # define GLUT_BITMAP_HELVETICA_12 ((void *) &glutBitmapHelvetica12) | |
| 251 # define GLUT_BITMAP_HELVETICA_18 ((void *) &glutBitmapHelvetica18) | |
| 252 #endif | |
| 253 | |
| 254 /* | |
| 255 * GLUT API macro definitions -- the glutGet parameters | |
| 256 */ | |
| 257 #define GLUT_WINDOW_X 0x0064 | |
| 258 #define GLUT_WINDOW_Y 0x0065 | |
| 259 #define GLUT_WINDOW_WIDTH 0x0066 | |
| 260 #define GLUT_WINDOW_HEIGHT 0x0067 | |
| 261 #define GLUT_WINDOW_BUFFER_SIZE 0x0068 | |
| 262 #define GLUT_WINDOW_STENCIL_SIZE 0x0069 | |
| 263 #define GLUT_WINDOW_DEPTH_SIZE 0x006A | |
| 264 #define GLUT_WINDOW_RED_SIZE 0x006B | |
| 265 #define GLUT_WINDOW_GREEN_SIZE 0x006C | |
| 266 #define GLUT_WINDOW_BLUE_SIZE 0x006D | |
| 267 #define GLUT_WINDOW_ALPHA_SIZE 0x006E | |
| 268 #define GLUT_WINDOW_ACCUM_RED_SIZE 0x006F | |
| 269 #define GLUT_WINDOW_ACCUM_GREEN_SIZE 0x0070 | |
| 270 #define GLUT_WINDOW_ACCUM_BLUE_SIZE 0x0071 | |
| 271 #define GLUT_WINDOW_ACCUM_ALPHA_SIZE 0x0072 | |
| 272 #define GLUT_WINDOW_DOUBLEBUFFER 0x0073 | |
| 273 #define GLUT_WINDOW_RGBA 0x0074 | |
| 274 #define GLUT_WINDOW_PARENT 0x0075 | |
| 275 #define GLUT_WINDOW_NUM_CHILDREN 0x0076 | |
| 276 #define GLUT_WINDOW_COLORMAP_SIZE 0x0077 | |
| 277 #define GLUT_WINDOW_NUM_SAMPLES 0x0078 | |
| 278 #define GLUT_WINDOW_STEREO 0x0079 | |
| 279 #define GLUT_WINDOW_CURSOR 0x007A | |
| 280 | |
| 281 #define GLUT_SCREEN_WIDTH 0x00C8 | |
| 282 #define GLUT_SCREEN_HEIGHT 0x00C9 | |
| 283 #define GLUT_SCREEN_WIDTH_MM 0x00CA | |
| 284 #define GLUT_SCREEN_HEIGHT_MM 0x00CB | |
| 285 #define GLUT_MENU_NUM_ITEMS 0x012C | |
| 286 #define GLUT_DISPLAY_MODE_POSSIBLE 0x0190 | |
| 287 #define GLUT_INIT_WINDOW_X 0x01F4 | |
| 288 #define GLUT_INIT_WINDOW_Y 0x01F5 | |
| 289 #define GLUT_INIT_WINDOW_WIDTH 0x01F6 | |
| 290 #define GLUT_INIT_WINDOW_HEIGHT 0x01F7 | |
| 291 #define GLUT_INIT_DISPLAY_MODE 0x01F8 | |
| 292 #define GLUT_ELAPSED_TIME 0x02BC | |
| 293 #define GLUT_WINDOW_FORMAT_ID 0x007B | |
| 294 | |
| 295 /* | |
| 296 * GLUT API macro definitions -- the glutDeviceGet parameters | |
| 297 */ | |
| 298 #define GLUT_HAS_KEYBOARD 0x0258 | |
| 299 #define GLUT_HAS_MOUSE 0x0259 | |
| 300 #define GLUT_HAS_SPACEBALL 0x025A | |
| 301 #define GLUT_HAS_DIAL_AND_BUTTON_BOX 0x025B | |
| 302 #define GLUT_HAS_TABLET 0x025C | |
| 303 #define GLUT_NUM_MOUSE_BUTTONS 0x025D | |
| 304 #define GLUT_NUM_SPACEBALL_BUTTONS 0x025E | |
| 305 #define GLUT_NUM_BUTTON_BOX_BUTTONS 0x025F | |
| 306 #define GLUT_NUM_DIALS 0x0260 | |
| 307 #define GLUT_NUM_TABLET_BUTTONS 0x0261 | |
| 308 #define GLUT_DEVICE_IGNORE_KEY_REPEAT 0x0262 | |
| 309 #define GLUT_DEVICE_KEY_REPEAT 0x0263 | |
| 310 #define GLUT_HAS_JOYSTICK 0x0264 | |
| 311 #define GLUT_OWNS_JOYSTICK 0x0265 | |
| 312 #define GLUT_JOYSTICK_BUTTONS 0x0266 | |
| 313 #define GLUT_JOYSTICK_AXES 0x0267 | |
| 314 #define GLUT_JOYSTICK_POLL_RATE 0x0268 | |
| 315 | |
| 316 /* | |
| 317 * GLUT API macro definitions -- the glutLayerGet parameters | |
| 318 */ | |
| 319 #define GLUT_OVERLAY_POSSIBLE 0x0320 | |
| 320 #define GLUT_LAYER_IN_USE 0x0321 | |
| 321 #define GLUT_HAS_OVERLAY 0x0322 | |
| 322 #define GLUT_TRANSPARENT_INDEX 0x0323 | |
| 323 #define GLUT_NORMAL_DAMAGED 0x0324 | |
| 324 #define GLUT_OVERLAY_DAMAGED 0x0325 | |
| 325 | |
| 326 /* | |
| 327 * GLUT API macro definitions -- the glutVideoResizeGet parameters | |
| 328 */ | |
| 329 #define GLUT_VIDEO_RESIZE_POSSIBLE 0x0384 | |
| 330 #define GLUT_VIDEO_RESIZE_IN_USE 0x0385 | |
| 331 #define GLUT_VIDEO_RESIZE_X_DELTA 0x0386 | |
| 332 #define GLUT_VIDEO_RESIZE_Y_DELTA 0x0387 | |
| 333 #define GLUT_VIDEO_RESIZE_WIDTH_DELTA 0x0388 | |
| 334 #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 0x0389 | |
| 335 #define GLUT_VIDEO_RESIZE_X 0x038A | |
| 336 #define GLUT_VIDEO_RESIZE_Y 0x038B | |
| 337 #define GLUT_VIDEO_RESIZE_WIDTH 0x038C | |
| 338 #define GLUT_VIDEO_RESIZE_HEIGHT 0x038D | |
| 339 | |
| 340 /* | |
| 341 * GLUT API macro definitions -- the glutUseLayer parameters | |
| 342 */ | |
| 343 #define GLUT_NORMAL 0x0000 | |
| 344 #define GLUT_OVERLAY 0x0001 | |
| 345 | |
| 346 /* | |
| 347 * GLUT API macro definitions -- the glutGetModifiers parameters | |
| 348 */ | |
| 349 #define GLUT_ACTIVE_SHIFT 0x0001 | |
| 350 #define GLUT_ACTIVE_CTRL 0x0002 | |
| 351 #define GLUT_ACTIVE_ALT 0x0004 | |
| 352 | |
| 353 /* | |
| 354 * GLUT API macro definitions -- the glutSetCursor parameters | |
| 355 */ | |
| 356 #define GLUT_CURSOR_RIGHT_ARROW 0x0000 | |
| 357 #define GLUT_CURSOR_LEFT_ARROW 0x0001 | |
| 358 #define GLUT_CURSOR_INFO 0x0002 | |
| 359 #define GLUT_CURSOR_DESTROY 0x0003 | |
| 360 #define GLUT_CURSOR_HELP 0x0004 | |
| 361 #define GLUT_CURSOR_CYCLE 0x0005 | |
| 362 #define GLUT_CURSOR_SPRAY 0x0006 | |
| 363 #define GLUT_CURSOR_WAIT 0x0007 | |
| 364 #define GLUT_CURSOR_TEXT 0x0008 | |
| 365 #define GLUT_CURSOR_CROSSHAIR 0x0009 | |
| 366 #define GLUT_CURSOR_UP_DOWN 0x000A | |
| 367 #define GLUT_CURSOR_LEFT_RIGHT 0x000B | |
| 368 #define GLUT_CURSOR_TOP_SIDE 0x000C | |
| 369 #define GLUT_CURSOR_BOTTOM_SIDE 0x000D | |
| 370 #define GLUT_CURSOR_LEFT_SIDE 0x000E | |
| 371 #define GLUT_CURSOR_RIGHT_SIDE 0x000F | |
| 372 #define GLUT_CURSOR_TOP_LEFT_CORNER 0x0010 | |
| 373 #define GLUT_CURSOR_TOP_RIGHT_CORNER 0x0011 | |
| 374 #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 0x0012 | |
| 375 #define GLUT_CURSOR_BOTTOM_LEFT_CORNER 0x0013 | |
| 376 #define GLUT_CURSOR_INHERIT 0x0064 | |
| 377 #define GLUT_CURSOR_NONE 0x0065 | |
| 378 #define GLUT_CURSOR_FULL_CROSSHAIR 0x0066 | |
| 379 | |
| 380 /* | |
| 381 * GLUT API macro definitions -- RGB color component specification definitions | |
| 382 */ | |
| 383 #define GLUT_RED 0x0000 | |
| 384 #define GLUT_GREEN 0x0001 | |
| 385 #define GLUT_BLUE 0x0002 | |
| 386 | |
| 387 /* | |
| 388 * GLUT API macro definitions -- additional keyboard and joystick definitions | |
| 389 */ | |
| 390 #define GLUT_KEY_REPEAT_OFF 0x0000 | |
| 391 #define GLUT_KEY_REPEAT_ON 0x0001 | |
| 392 #define GLUT_KEY_REPEAT_DEFAULT 0x0002 | |
| 393 | |
| 394 #define GLUT_JOYSTICK_BUTTON_A 0x0001 | |
| 395 #define GLUT_JOYSTICK_BUTTON_B 0x0002 | |
| 396 #define GLUT_JOYSTICK_BUTTON_C 0x0004 | |
| 397 #define GLUT_JOYSTICK_BUTTON_D 0x0008 | |
| 398 | |
| 399 /* | |
| 400 * GLUT API macro definitions -- game mode definitions | |
| 401 */ | |
| 402 #define GLUT_GAME_MODE_ACTIVE 0x0000 | |
| 403 #define GLUT_GAME_MODE_POSSIBLE 0x0001 | |
| 404 #define GLUT_GAME_MODE_WIDTH 0x0002 | |
| 405 #define GLUT_GAME_MODE_HEIGHT 0x0003 | |
| 406 #define GLUT_GAME_MODE_PIXEL_DEPTH 0x0004 | |
| 407 #define GLUT_GAME_MODE_REFRESH_RATE 0x0005 | |
| 408 #define GLUT_GAME_MODE_DISPLAY_CHANGED 0x0006 | |
| 409 | |
| 410 /* | |
| 411 * Initialization functions, see fglut_init.c | |
| 412 */ | |
| 413 FGAPI void FGAPIENTRY glutInit( int* pargc, char** argv ); | |
| 414 FGAPI void FGAPIENTRY glutInitWindowPosition( int x, int y ); | |
| 415 FGAPI void FGAPIENTRY glutInitWindowSize( int width, int height ); | |
| 416 FGAPI void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode ); | |
| 417 FGAPI void FGAPIENTRY glutInitDisplayString( const char* displayMode ); | |
| 418 | |
| 419 /* | |
| 420 * Process loop function, see fg_main.c | |
| 421 */ | |
| 422 FGAPI void FGAPIENTRY glutMainLoop( void ); | |
| 423 | |
| 424 /* | |
| 425 * Window management functions, see fg_window.c | |
| 426 */ | |
| 427 FGAPI int FGAPIENTRY glutCreateWindow( const char* title ); | |
| 428 FGAPI int FGAPIENTRY glutCreateSubWindow( int window, int x, int y, int width, int height ); | |
| 429 FGAPI void FGAPIENTRY glutDestroyWindow( int window ); | |
| 430 FGAPI void FGAPIENTRY glutSetWindow( int window ); | |
| 431 FGAPI int FGAPIENTRY glutGetWindow( void ); | |
| 432 FGAPI void FGAPIENTRY glutSetWindowTitle( const char* title ); | |
| 433 FGAPI void FGAPIENTRY glutSetIconTitle( const char* title ); | |
| 434 FGAPI void FGAPIENTRY glutReshapeWindow( int width, int height ); | |
| 435 FGAPI void FGAPIENTRY glutPositionWindow( int x, int y ); | |
| 436 FGAPI void FGAPIENTRY glutShowWindow( void ); | |
| 437 FGAPI void FGAPIENTRY glutHideWindow( void ); | |
| 438 FGAPI void FGAPIENTRY glutIconifyWindow( void ); | |
| 439 FGAPI void FGAPIENTRY glutPushWindow( void ); | |
| 440 FGAPI void FGAPIENTRY glutPopWindow( void ); | |
| 441 FGAPI void FGAPIENTRY glutFullScreen( void ); | |
| 442 | |
| 443 /* | |
| 444 * Display-related functions, see fg_display.c | |
| 445 */ | |
| 446 FGAPI void FGAPIENTRY glutPostWindowRedisplay( int window ); | |
| 447 FGAPI void FGAPIENTRY glutPostRedisplay( void ); | |
| 448 FGAPI void FGAPIENTRY glutSwapBuffers( void ); | |
| 449 | |
| 450 /* | |
| 451 * Mouse cursor functions, see fg_cursor.c | |
| 452 */ | |
| 453 FGAPI void FGAPIENTRY glutWarpPointer( int x, int y ); | |
| 454 FGAPI void FGAPIENTRY glutSetCursor( int cursor ); | |
| 455 | |
| 456 /* | |
| 457 * Overlay stuff, see fg_overlay.c | |
| 458 */ | |
| 459 FGAPI void FGAPIENTRY glutEstablishOverlay( void ); | |
| 460 FGAPI void FGAPIENTRY glutRemoveOverlay( void ); | |
| 461 FGAPI void FGAPIENTRY glutUseLayer( GLenum layer ); | |
| 462 FGAPI void FGAPIENTRY glutPostOverlayRedisplay( void ); | |
| 463 FGAPI void FGAPIENTRY glutPostWindowOverlayRedisplay( int window ); | |
| 464 FGAPI void FGAPIENTRY glutShowOverlay( void ); | |
| 465 FGAPI void FGAPIENTRY glutHideOverlay( void ); | |
| 466 | |
| 467 /* | |
| 468 * Menu stuff, see fg_menu.c | |
| 469 */ | |
| 470 FGAPI int FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) ); | |
| 471 FGAPI void FGAPIENTRY glutDestroyMenu( int menu ); | |
| 472 FGAPI int FGAPIENTRY glutGetMenu( void ); | |
| 473 FGAPI void FGAPIENTRY glutSetMenu( int menu ); | |
| 474 FGAPI void FGAPIENTRY glutAddMenuEntry( const char* label, int value ); | |
| 475 FGAPI void FGAPIENTRY glutAddSubMenu( const char* label, int subMenu ); | |
| 476 FGAPI void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value ); | |
| 477 FGAPI void FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value ); | |
| 478 FGAPI void FGAPIENTRY glutRemoveMenuItem( int item ); | |
| 479 FGAPI void FGAPIENTRY glutAttachMenu( int button ); | |
| 480 FGAPI void FGAPIENTRY glutDetachMenu( int button ); | |
| 481 | |
| 482 /* | |
| 483 * Global callback functions, see fg_callbacks.c | |
| 484 */ | |
| 485 FGAPI void FGAPIENTRY glutTimerFunc( unsigned int time, void (* callback)( int ), int value ); | |
| 486 FGAPI void FGAPIENTRY glutIdleFunc( void (* callback)( void ) ); | |
| 487 | |
| 488 /* | |
| 489 * Window-specific callback functions, see fg_callbacks.c | |
| 490 */ | |
| 491 FGAPI void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) ); | |
| 492 FGAPI void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) ); | |
| 493 FGAPI void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) ); | |
| 494 FGAPI void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ); | |
| 495 FGAPI void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ); | |
| 496 FGAPI void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) ); | |
| 497 FGAPI void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) ); | |
| 498 FGAPI void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) ); | |
| 499 FGAPI void FGAPIENTRY glutEntryFunc( void (* callback)( int ) ); | |
| 500 | |
| 501 FGAPI void FGAPIENTRY glutKeyboardDownFunc( void (* callback)( unsigned char, int, int ) ); | |
| 502 FGAPI void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) ); | |
| 503 FGAPI void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) ); | |
| 504 FGAPI void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval ); | |
| 505 FGAPI void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) ); | |
| 506 FGAPI void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) ); | |
| 507 FGAPI void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) ); | |
| 508 FGAPI void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) ); | |
| 509 | |
| 510 FGAPI void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) ); | |
| 511 FGAPI void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) ); | |
| 512 FGAPI void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) ); | |
| 513 FGAPI void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) ); | |
| 514 FGAPI void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) ); | |
| 515 FGAPI void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) ); | |
| 516 FGAPI void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) ); | |
| 517 | |
| 518 /* | |
| 519 * State setting and retrieval functions, see fg_state.c | |
| 520 */ | |
| 521 FGAPI int FGAPIENTRY glutGet( GLenum query ); | |
| 522 FGAPI int FGAPIENTRY glutDeviceGet( GLenum query ); | |
| 523 FGAPI int FGAPIENTRY glutGetModifiers( void ); | |
| 524 FGAPI int FGAPIENTRY glutLayerGet( GLenum query ); | |
| 525 | |
| 526 /* | |
| 527 * Font stuff, see fg_font.c | |
| 528 */ | |
| 529 FGAPI void FGAPIENTRY glutBitmapCharacter( void* font, int character ); | |
| 530 FGAPI int FGAPIENTRY glutBitmapWidth( void* font, int character ); | |
| 531 FGAPI void FGAPIENTRY glutStrokeCharacter( void* font, int character ); | |
| 532 FGAPI int FGAPIENTRY glutStrokeWidth( void* font, int character ); | |
| 533 FGAPI GLfloat FGAPIENTRY glutStrokeWidthf( void* font, int character ); /* GLUT 3.8 */ | |
| 534 FGAPI int FGAPIENTRY glutBitmapLength( void* font, const unsigned char* string ); | |
| 535 FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* string ); | |
| 536 FGAPI GLfloat FGAPIENTRY glutStrokeLengthf( void* font, const unsigned char *string ); /* GLUT 3.8 */ | |
| 537 | |
| 538 /* | |
| 539 * Geometry functions, see fg_geometry.c | |
| 540 */ | |
| 541 | |
| 542 FGAPI void FGAPIENTRY glutWireCube( double size ); | |
| 543 FGAPI void FGAPIENTRY glutSolidCube( double size ); | |
| 544 FGAPI void FGAPIENTRY glutWireSphere( double radius, GLint slices, GLint stacks ); | |
| 545 FGAPI void FGAPIENTRY glutSolidSphere( double radius, GLint slices, GLint stacks ); | |
| 546 FGAPI void FGAPIENTRY glutWireCone( double base, double height, GLint slices, GLint stacks ); | |
| 547 FGAPI void FGAPIENTRY glutSolidCone( double base, double height, GLint slices, GLint stacks ); | |
| 548 FGAPI void FGAPIENTRY glutWireTorus( double innerRadius, double outerRadius, GLint sides, GLint rings ); | |
| 549 FGAPI void FGAPIENTRY glutSolidTorus( double innerRadius, double outerRadius, GLint sides, GLint rings ); | |
| 550 FGAPI void FGAPIENTRY glutWireDodecahedron( void ); | |
| 551 FGAPI void FGAPIENTRY glutSolidDodecahedron( void ); | |
| 552 FGAPI void FGAPIENTRY glutWireOctahedron( void ); | |
| 553 FGAPI void FGAPIENTRY glutSolidOctahedron( void ); | |
| 554 FGAPI void FGAPIENTRY glutWireTetrahedron( void ); | |
| 555 FGAPI void FGAPIENTRY glutSolidTetrahedron( void ); | |
| 556 FGAPI void FGAPIENTRY glutWireIcosahedron( void ); | |
| 557 FGAPI void FGAPIENTRY glutSolidIcosahedron( void ); | |
| 558 | |
| 559 /* | |
| 560 * Teapot rendering functions, found in fg_teapot.c | |
| 561 * NB: front facing polygons have clockwise winding, not counter clockwise | |
| 562 */ | |
| 563 FGAPI void FGAPIENTRY glutWireTeapot( double size ); | |
| 564 FGAPI void FGAPIENTRY glutSolidTeapot( double size ); | |
| 565 | |
| 566 /* | |
| 567 * Game mode functions, see fg_gamemode.c | |
| 568 */ | |
| 569 FGAPI void FGAPIENTRY glutGameModeString( const char* string ); | |
| 570 FGAPI int FGAPIENTRY glutEnterGameMode( void ); | |
| 571 FGAPI void FGAPIENTRY glutLeaveGameMode( void ); | |
| 572 FGAPI int FGAPIENTRY glutGameModeGet( GLenum query ); | |
| 573 | |
| 574 /* | |
| 575 * Video resize functions, see fg_videoresize.c | |
| 576 */ | |
| 577 FGAPI int FGAPIENTRY glutVideoResizeGet( GLenum query ); | |
| 578 FGAPI void FGAPIENTRY glutSetupVideoResizing( void ); | |
| 579 FGAPI void FGAPIENTRY glutStopVideoResizing( void ); | |
| 580 FGAPI void FGAPIENTRY glutVideoResize( int x, int y, int width, int height ); | |
| 581 FGAPI void FGAPIENTRY glutVideoPan( int x, int y, int width, int height ); | |
| 582 | |
| 583 /* | |
| 584 * Colormap functions, see fg_misc.c | |
| 585 */ | |
| 586 FGAPI void FGAPIENTRY glutSetColor( int color, GLfloat red, GLfloat green, GLfloat blue ); | |
| 587 FGAPI GLfloat FGAPIENTRY glutGetColor( int color, int component ); | |
| 588 FGAPI void FGAPIENTRY glutCopyColormap( int window ); | |
| 589 | |
| 590 /* | |
| 591 * Misc keyboard and joystick functions, see fg_misc.c | |
| 592 */ | |
| 593 FGAPI void FGAPIENTRY glutIgnoreKeyRepeat( int ignore ); | |
| 594 FGAPI void FGAPIENTRY glutSetKeyRepeat( int repeatMode ); | |
| 595 FGAPI void FGAPIENTRY glutForceJoystickFunc( void ); | |
| 596 | |
| 597 /* | |
| 598 * Misc functions, see fg_misc.c | |
| 599 */ | |
| 600 FGAPI int FGAPIENTRY glutExtensionSupported( const char* extension ); | |
| 601 FGAPI void FGAPIENTRY glutReportErrors( void ); | |
| 602 | |
| 603 /* Comment from glut.h of classic GLUT: | |
| 604 | |
| 605 Win32 has an annoying issue where there are multiple C run-time | |
| 606 libraries (CRTs). If the executable is linked with a different CRT | |
| 607 from the GLUT DLL, the GLUT DLL will not share the same CRT static | |
| 608 data seen by the executable. In particular, atexit callbacks registered | |
| 609 in the executable will not be called if GLUT calls its (different) | |
| 610 exit routine). GLUT is typically built with the | |
| 611 "/MD" option (the CRT with multithreading DLL support), but the Visual | |
| 612 C++ linker default is "/ML" (the single threaded CRT). | |
| 613 | |
| 614 One workaround to this issue is requiring users to always link with | |
| 615 the same CRT as GLUT is compiled with. That requires users supply a | |
| 616 non-standard option. GLUT 3.7 has its own built-in workaround where | |
| 617 the executable's "exit" function pointer is covertly passed to GLUT. | |
| 618 GLUT then calls the executable's exit function pointer to ensure that | |
| 619 any "atexit" calls registered by the application are called if GLUT | |
| 620 needs to exit. | |
| 621 | |
| 622 Note that the __glut*WithExit routines should NEVER be called directly. | |
| 623 To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ | |
| 624 | |
| 625 /* to get the prototype for exit() */ | |
| 626 #include <stdlib.h> | |
| 627 | |
| 628 #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) && !defined(__WATCOMC__) | |
| 629 FGAPI void FGAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); | |
| 630 FGAPI int FGAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); | |
| 631 FGAPI int FGAPIENTRY __glutCreateMenuWithExit(void (* func)(int), void (__cdecl *exitfunc)(int)); | |
| 632 #ifndef FREEGLUT_BUILDING_LIB | |
| 633 #if defined(__GNUC__) | |
| 634 #define FGUNUSED __attribute__((unused)) | |
| 635 #else | |
| 636 #define FGUNUSED | |
| 637 #endif | |
| 638 static void FGAPIENTRY FGUNUSED glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } | |
| 639 #define glutInit glutInit_ATEXIT_HACK | |
| 640 static int FGAPIENTRY FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } | |
| 641 #define glutCreateWindow glutCreateWindow_ATEXIT_HACK | |
| 642 static int FGAPIENTRY FGUNUSED glutCreateMenu_ATEXIT_HACK(void (* func)(int)) { return __glutCreateMenuWithExit(func, exit); } | |
| 643 #define glutCreateMenu glutCreateMenu_ATEXIT_HACK | |
| 644 #endif | |
| 645 #endif | |
| 646 | |
| 647 #ifdef __cplusplus | |
| 648 } | |
| 649 #endif | |
| 650 | |
| 651 /*** END OF FILE ***/ | |
| 652 | |
| 653 #endif /* __FREEGLUT_STD_H__ */ | |
| 654 |
