76 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)) 85 #define APIENTRY __stdcall 93 #if !defined(WINGDIAPI) && defined(_WIN32) 94 #define WINGDIAPI __declspec(dllimport) 95 #define GLFW_WINGDIAPI_DEFINED 100 #if !defined(CALLBACK) && defined(_WIN32) 101 #define CALLBACK __stdcall 102 #define GLFW_CALLBACK_DEFINED 108 #if !defined(GLFW_INCLUDE_NONE) 114 #if defined(__APPLE_CC__) 115 #if defined(GLFW_INCLUDE_GLCOREARB) 116 #include <OpenGL/gl3.h> 117 #if defined(GLFW_INCLUDE_GLEXT) 118 #include <OpenGL/gl3ext.h> 120 #elif !defined(GLFW_INCLUDE_NONE) 121 #if !defined(GLFW_INCLUDE_GLEXT) 122 #define GL_GLEXT_LEGACY 124 #include <OpenGL/gl.h> 126 #if defined(GLFW_INCLUDE_GLU) 127 #include <OpenGL/glu.h> 130 #if defined(GLFW_INCLUDE_GLCOREARB) 131 #include <GL/glcorearb.h> 132 #elif defined(GLFW_INCLUDE_ES1) 134 #if defined(GLFW_INCLUDE_GLEXT) 135 #include <GLES/glext.h> 137 #elif defined(GLFW_INCLUDE_ES2) 138 #include <GLES2/gl2.h> 139 #if defined(GLFW_INCLUDE_GLEXT) 140 #include <GLES2/gl2ext.h> 142 #elif defined(GLFW_INCLUDE_ES3) 143 #include <GLES3/gl3.h> 144 #if defined(GLFW_INCLUDE_GLEXT) 145 #include <GLES3/gl2ext.h> 147 #elif defined(GLFW_INCLUDE_ES31) 148 #include <GLES3/gl31.h> 149 #if defined(GLFW_INCLUDE_GLEXT) 150 #include <GLES3/gl2ext.h> 152 #elif !defined(GLFW_INCLUDE_NONE) 154 #if defined(GLFW_INCLUDE_GLEXT) 155 #include <GL/glext.h> 158 #if defined(GLFW_INCLUDE_GLU) 163 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL) 168 #error "You may not have both GLFW_DLL and _GLFW_BUILD_DLL defined" 174 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL) 176 #define GLFWAPI __declspec(dllexport) 177 #elif defined(_WIN32) && defined(GLFW_DLL) 179 #define GLFWAPI __declspec(dllimport) 180 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL) 182 #define GLFWAPI __attribute__((visibility("default"))) 200 #define GLFW_VERSION_MAJOR 3 207 #define GLFW_VERSION_MINOR 2 214 #define GLFW_VERSION_REVISION 0 243 #define GLFW_RELEASE 0 257 #define GLFW_REPEAT 2 284 #define GLFW_KEY_UNKNOWN -1 287 #define GLFW_KEY_SPACE 32 288 #define GLFW_KEY_APOSTROPHE 39 289 #define GLFW_KEY_COMMA 44 290 #define GLFW_KEY_MINUS 45 291 #define GLFW_KEY_PERIOD 46 292 #define GLFW_KEY_SLASH 47 293 #define GLFW_KEY_0 48 294 #define GLFW_KEY_1 49 295 #define GLFW_KEY_2 50 296 #define GLFW_KEY_3 51 297 #define GLFW_KEY_4 52 298 #define GLFW_KEY_5 53 299 #define GLFW_KEY_6 54 300 #define GLFW_KEY_7 55 301 #define GLFW_KEY_8 56 302 #define GLFW_KEY_9 57 303 #define GLFW_KEY_SEMICOLON 59 304 #define GLFW_KEY_EQUAL 61 305 #define GLFW_KEY_A 65 306 #define GLFW_KEY_B 66 307 #define GLFW_KEY_C 67 308 #define GLFW_KEY_D 68 309 #define GLFW_KEY_E 69 310 #define GLFW_KEY_F 70 311 #define GLFW_KEY_G 71 312 #define GLFW_KEY_H 72 313 #define GLFW_KEY_I 73 314 #define GLFW_KEY_J 74 315 #define GLFW_KEY_K 75 316 #define GLFW_KEY_L 76 317 #define GLFW_KEY_M 77 318 #define GLFW_KEY_N 78 319 #define GLFW_KEY_O 79 320 #define GLFW_KEY_P 80 321 #define GLFW_KEY_Q 81 322 #define GLFW_KEY_R 82 323 #define GLFW_KEY_S 83 324 #define GLFW_KEY_T 84 325 #define GLFW_KEY_U 85 326 #define GLFW_KEY_V 86 327 #define GLFW_KEY_W 87 328 #define GLFW_KEY_X 88 329 #define GLFW_KEY_Y 89 330 #define GLFW_KEY_Z 90 331 #define GLFW_KEY_LEFT_BRACKET 91 332 #define GLFW_KEY_BACKSLASH 92 333 #define GLFW_KEY_RIGHT_BRACKET 93 334 #define GLFW_KEY_GRAVE_ACCENT 96 335 #define GLFW_KEY_WORLD_1 161 336 #define GLFW_KEY_WORLD_2 162 339 #define GLFW_KEY_ESCAPE 256 340 #define GLFW_KEY_ENTER 257 341 #define GLFW_KEY_TAB 258 342 #define GLFW_KEY_BACKSPACE 259 343 #define GLFW_KEY_INSERT 260 344 #define GLFW_KEY_DELETE 261 345 #define GLFW_KEY_RIGHT 262 346 #define GLFW_KEY_LEFT 263 347 #define GLFW_KEY_DOWN 264 348 #define GLFW_KEY_UP 265 349 #define GLFW_KEY_PAGE_UP 266 350 #define GLFW_KEY_PAGE_DOWN 267 351 #define GLFW_KEY_HOME 268 352 #define GLFW_KEY_END 269 353 #define GLFW_KEY_CAPS_LOCK 280 354 #define GLFW_KEY_SCROLL_LOCK 281 355 #define GLFW_KEY_NUM_LOCK 282 356 #define GLFW_KEY_PRINT_SCREEN 283 357 #define GLFW_KEY_PAUSE 284 358 #define GLFW_KEY_F1 290 359 #define GLFW_KEY_F2 291 360 #define GLFW_KEY_F3 292 361 #define GLFW_KEY_F4 293 362 #define GLFW_KEY_F5 294 363 #define GLFW_KEY_F6 295 364 #define GLFW_KEY_F7 296 365 #define GLFW_KEY_F8 297 366 #define GLFW_KEY_F9 298 367 #define GLFW_KEY_F10 299 368 #define GLFW_KEY_F11 300 369 #define GLFW_KEY_F12 301 370 #define GLFW_KEY_F13 302 371 #define GLFW_KEY_F14 303 372 #define GLFW_KEY_F15 304 373 #define GLFW_KEY_F16 305 374 #define GLFW_KEY_F17 306 375 #define GLFW_KEY_F18 307 376 #define GLFW_KEY_F19 308 377 #define GLFW_KEY_F20 309 378 #define GLFW_KEY_F21 310 379 #define GLFW_KEY_F22 311 380 #define GLFW_KEY_F23 312 381 #define GLFW_KEY_F24 313 382 #define GLFW_KEY_F25 314 383 #define GLFW_KEY_KP_0 320 384 #define GLFW_KEY_KP_1 321 385 #define GLFW_KEY_KP_2 322 386 #define GLFW_KEY_KP_3 323 387 #define GLFW_KEY_KP_4 324 388 #define GLFW_KEY_KP_5 325 389 #define GLFW_KEY_KP_6 326 390 #define GLFW_KEY_KP_7 327 391 #define GLFW_KEY_KP_8 328 392 #define GLFW_KEY_KP_9 329 393 #define GLFW_KEY_KP_DECIMAL 330 394 #define GLFW_KEY_KP_DIVIDE 331 395 #define GLFW_KEY_KP_MULTIPLY 332 396 #define GLFW_KEY_KP_SUBTRACT 333 397 #define GLFW_KEY_KP_ADD 334 398 #define GLFW_KEY_KP_ENTER 335 399 #define GLFW_KEY_KP_EQUAL 336 400 #define GLFW_KEY_LEFT_SHIFT 340 401 #define GLFW_KEY_LEFT_CONTROL 341 402 #define GLFW_KEY_LEFT_ALT 342 403 #define GLFW_KEY_LEFT_SUPER 343 404 #define GLFW_KEY_RIGHT_SHIFT 344 405 #define GLFW_KEY_RIGHT_CONTROL 345 406 #define GLFW_KEY_RIGHT_ALT 346 407 #define GLFW_KEY_RIGHT_SUPER 347 408 #define GLFW_KEY_MENU 348 409 #define GLFW_KEY_LAST GLFW_KEY_MENU 422 #define GLFW_MOD_SHIFT 0x0001 425 #define GLFW_MOD_CONTROL 0x0002 428 #define GLFW_MOD_ALT 0x0004 431 #define GLFW_MOD_SUPER 0x0008 441 #define GLFW_MOUSE_BUTTON_1 0 442 #define GLFW_MOUSE_BUTTON_2 1 443 #define GLFW_MOUSE_BUTTON_3 2 444 #define GLFW_MOUSE_BUTTON_4 3 445 #define GLFW_MOUSE_BUTTON_5 4 446 #define GLFW_MOUSE_BUTTON_6 5 447 #define GLFW_MOUSE_BUTTON_7 6 448 #define GLFW_MOUSE_BUTTON_8 7 449 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8 450 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1 451 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2 452 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3 461 #define GLFW_JOYSTICK_1 0 462 #define GLFW_JOYSTICK_2 1 463 #define GLFW_JOYSTICK_3 2 464 #define GLFW_JOYSTICK_4 3 465 #define GLFW_JOYSTICK_5 4 466 #define GLFW_JOYSTICK_6 5 467 #define GLFW_JOYSTICK_7 6 468 #define GLFW_JOYSTICK_8 7 469 #define GLFW_JOYSTICK_9 8 470 #define GLFW_JOYSTICK_10 9 471 #define GLFW_JOYSTICK_11 10 472 #define GLFW_JOYSTICK_12 11 473 #define GLFW_JOYSTICK_13 12 474 #define GLFW_JOYSTICK_14 13 475 #define GLFW_JOYSTICK_15 14 476 #define GLFW_JOYSTICK_16 15 477 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16 495 #define GLFW_NOT_INITIALIZED 0x00010001 506 #define GLFW_NO_CURRENT_CONTEXT 0x00010002 516 #define GLFW_INVALID_ENUM 0x00010003 528 #define GLFW_INVALID_VALUE 0x00010004 537 #define GLFW_OUT_OF_MEMORY 0x00010005 557 #define GLFW_API_UNAVAILABLE 0x00010006 575 #define GLFW_VERSION_UNAVAILABLE 0x00010007 587 #define GLFW_PLATFORM_ERROR 0x00010008 607 #define GLFW_FORMAT_UNAVAILABLE 0x00010009 610 #define GLFW_FOCUSED 0x00020001 611 #define GLFW_ICONIFIED 0x00020002 612 #define GLFW_RESIZABLE 0x00020003 613 #define GLFW_VISIBLE 0x00020004 614 #define GLFW_DECORATED 0x00020005 615 #define GLFW_AUTO_ICONIFY 0x00020006 616 #define GLFW_FLOATING 0x00020007 618 #define GLFW_RED_BITS 0x00021001 619 #define GLFW_GREEN_BITS 0x00021002 620 #define GLFW_BLUE_BITS 0x00021003 621 #define GLFW_ALPHA_BITS 0x00021004 622 #define GLFW_DEPTH_BITS 0x00021005 623 #define GLFW_STENCIL_BITS 0x00021006 624 #define GLFW_ACCUM_RED_BITS 0x00021007 625 #define GLFW_ACCUM_GREEN_BITS 0x00021008 626 #define GLFW_ACCUM_BLUE_BITS 0x00021009 627 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A 628 #define GLFW_AUX_BUFFERS 0x0002100B 629 #define GLFW_STEREO 0x0002100C 630 #define GLFW_SAMPLES 0x0002100D 631 #define GLFW_SRGB_CAPABLE 0x0002100E 632 #define GLFW_REFRESH_RATE 0x0002100F 633 #define GLFW_DOUBLEBUFFER 0x00021010 635 #define GLFW_CLIENT_API 0x00022001 636 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002 637 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003 638 #define GLFW_CONTEXT_REVISION 0x00022004 639 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005 640 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006 641 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007 642 #define GLFW_OPENGL_PROFILE 0x00022008 643 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009 645 #define GLFW_OPENGL_API 0x00030001 646 #define GLFW_OPENGL_ES_API 0x00030002 648 #define GLFW_NO_ROBUSTNESS 0 649 #define GLFW_NO_RESET_NOTIFICATION 0x00031001 650 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002 652 #define GLFW_OPENGL_ANY_PROFILE 0 653 #define GLFW_OPENGL_CORE_PROFILE 0x00032001 654 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002 656 #define GLFW_CURSOR 0x00033001 657 #define GLFW_STICKY_KEYS 0x00033002 658 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003 660 #define GLFW_CURSOR_NORMAL 0x00034001 661 #define GLFW_CURSOR_HIDDEN 0x00034002 662 #define GLFW_CURSOR_DISABLED 0x00034003 664 #define GLFW_ANY_RELEASE_BEHAVIOR 0 665 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001 666 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002 679 #define GLFW_ARROW_CURSOR 0x00036001 684 #define GLFW_IBEAM_CURSOR 0x00036002 689 #define GLFW_CROSSHAIR_CURSOR 0x00036003 694 #define GLFW_HAND_CURSOR 0x00036004 699 #define GLFW_HRESIZE_CURSOR 0x00036005 704 #define GLFW_VRESIZE_CURSOR 0x00036006 707 #define GLFW_CONNECTED 0x00040001 708 #define GLFW_DISCONNECTED 0x00040002 710 #define GLFW_DONT_CARE -1 3431 #ifdef GLFW_WINGDIAPI_DEFINED 3433 #undef GLFW_WINGDIAPI_DEFINED 3436 #ifdef GLFW_CALLBACK_DEFINED 3438 #undef GLFW_CALLBACK_DEFINED void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
int redBits
Definition: glfw3.h:1011
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the client area of the specified window.
void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
Definition: glfw3.h:844
int height
Definition: glfw3.h:1008
GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun cbfun)
Sets the refresh callback for the specified window.
GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun cbfun)
Sets the position callback for the specified window.
void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the client area of the specified window.
int blueBits
Definition: glfw3.h:1017
unsigned char * pixels
Definition: glfw3.h:1059
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function signature for monitor configuration callbacks.
Definition: glfw3.h:993
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition: glfw3.h:748
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
Sets the error callback.
GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun cbfun)
Sets the iconify callback for the specified window.
int width
Definition: glfw3.h:1005
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun cbfun)
Sets the size callback for the specified window.
void glfwWaitEvents(void)
Waits until events are queued and processes them.
int height
Definition: glfw3.h:1056
GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
int refreshRate
Definition: glfw3.h:1020
unsigned short * red
Definition: glfw3.h:1035
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
unsigned short * green
Definition: glfw3.h:1038
void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:732
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:740
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the client area of the specified window.
int greenBits
Definition: glfw3.h:1014
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function signature for window resize callbacks.
Definition: glfw3.h:791
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
unsigned int size
Definition: glfw3.h:1044
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun cbfun)
Sets the framebuffer resize callback for the specified window.
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function signature for framebuffer resize callbacks.
Definition: glfw3.h:859
void glfwWindowHint(int target, int hint)
Sets the specified window hint to the desired value.
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function signature for window position callbacks.
Definition: glfw3.h:777
void glfwPollEvents(void)
Processes all pending events.
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
int width
Definition: glfw3.h:1053
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
Gamma ramp.
Definition: glfw3.h:1031
GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun cbfun)
Sets the close callback for the specified window.
unsigned short * blue
Definition: glfw3.h:1041
Video mode type.
Definition: glfw3.h:1001
void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the client area of the specified window.
int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
void(* GLFWwindowclosefun)(GLFWwindow *)
The function signature for window close callbacks.
Definition: glfw3.h:803
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
int glfwInit(void)
Initializes the GLFW library.
Image data.
Definition: glfw3.h:1049
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
struct GLFWvidmode GLFWvidmode
Video mode type.
void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun cbfun)
Sets the focus callback for the specified window.
void glfwTerminate(void)
Terminates the GLFW library.
struct GLFWimage GLFWimage
Image data.
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun)
Sets the monitor configuration callback.
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function signature for window content refresh callbacks.
Definition: glfw3.h:815
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:724
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
Definition: glfw3.h:761
void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
Definition: glfw3.h:829