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) 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 1 214 #define GLFW_VERSION_REVISION 2 225 #define GLFW_RELEASE 0 239 #define GLFW_REPEAT 2 266 #define GLFW_KEY_UNKNOWN -1 269 #define GLFW_KEY_SPACE 32 270 #define GLFW_KEY_APOSTROPHE 39 271 #define GLFW_KEY_COMMA 44 272 #define GLFW_KEY_MINUS 45 273 #define GLFW_KEY_PERIOD 46 274 #define GLFW_KEY_SLASH 47 275 #define GLFW_KEY_0 48 276 #define GLFW_KEY_1 49 277 #define GLFW_KEY_2 50 278 #define GLFW_KEY_3 51 279 #define GLFW_KEY_4 52 280 #define GLFW_KEY_5 53 281 #define GLFW_KEY_6 54 282 #define GLFW_KEY_7 55 283 #define GLFW_KEY_8 56 284 #define GLFW_KEY_9 57 285 #define GLFW_KEY_SEMICOLON 59 286 #define GLFW_KEY_EQUAL 61 287 #define GLFW_KEY_A 65 288 #define GLFW_KEY_B 66 289 #define GLFW_KEY_C 67 290 #define GLFW_KEY_D 68 291 #define GLFW_KEY_E 69 292 #define GLFW_KEY_F 70 293 #define GLFW_KEY_G 71 294 #define GLFW_KEY_H 72 295 #define GLFW_KEY_I 73 296 #define GLFW_KEY_J 74 297 #define GLFW_KEY_K 75 298 #define GLFW_KEY_L 76 299 #define GLFW_KEY_M 77 300 #define GLFW_KEY_N 78 301 #define GLFW_KEY_O 79 302 #define GLFW_KEY_P 80 303 #define GLFW_KEY_Q 81 304 #define GLFW_KEY_R 82 305 #define GLFW_KEY_S 83 306 #define GLFW_KEY_T 84 307 #define GLFW_KEY_U 85 308 #define GLFW_KEY_V 86 309 #define GLFW_KEY_W 87 310 #define GLFW_KEY_X 88 311 #define GLFW_KEY_Y 89 312 #define GLFW_KEY_Z 90 313 #define GLFW_KEY_LEFT_BRACKET 91 314 #define GLFW_KEY_BACKSLASH 92 315 #define GLFW_KEY_RIGHT_BRACKET 93 316 #define GLFW_KEY_GRAVE_ACCENT 96 317 #define GLFW_KEY_WORLD_1 161 318 #define GLFW_KEY_WORLD_2 162 321 #define GLFW_KEY_ESCAPE 256 322 #define GLFW_KEY_ENTER 257 323 #define GLFW_KEY_TAB 258 324 #define GLFW_KEY_BACKSPACE 259 325 #define GLFW_KEY_INSERT 260 326 #define GLFW_KEY_DELETE 261 327 #define GLFW_KEY_RIGHT 262 328 #define GLFW_KEY_LEFT 263 329 #define GLFW_KEY_DOWN 264 330 #define GLFW_KEY_UP 265 331 #define GLFW_KEY_PAGE_UP 266 332 #define GLFW_KEY_PAGE_DOWN 267 333 #define GLFW_KEY_HOME 268 334 #define GLFW_KEY_END 269 335 #define GLFW_KEY_CAPS_LOCK 280 336 #define GLFW_KEY_SCROLL_LOCK 281 337 #define GLFW_KEY_NUM_LOCK 282 338 #define GLFW_KEY_PRINT_SCREEN 283 339 #define GLFW_KEY_PAUSE 284 340 #define GLFW_KEY_F1 290 341 #define GLFW_KEY_F2 291 342 #define GLFW_KEY_F3 292 343 #define GLFW_KEY_F4 293 344 #define GLFW_KEY_F5 294 345 #define GLFW_KEY_F6 295 346 #define GLFW_KEY_F7 296 347 #define GLFW_KEY_F8 297 348 #define GLFW_KEY_F9 298 349 #define GLFW_KEY_F10 299 350 #define GLFW_KEY_F11 300 351 #define GLFW_KEY_F12 301 352 #define GLFW_KEY_F13 302 353 #define GLFW_KEY_F14 303 354 #define GLFW_KEY_F15 304 355 #define GLFW_KEY_F16 305 356 #define GLFW_KEY_F17 306 357 #define GLFW_KEY_F18 307 358 #define GLFW_KEY_F19 308 359 #define GLFW_KEY_F20 309 360 #define GLFW_KEY_F21 310 361 #define GLFW_KEY_F22 311 362 #define GLFW_KEY_F23 312 363 #define GLFW_KEY_F24 313 364 #define GLFW_KEY_F25 314 365 #define GLFW_KEY_KP_0 320 366 #define GLFW_KEY_KP_1 321 367 #define GLFW_KEY_KP_2 322 368 #define GLFW_KEY_KP_3 323 369 #define GLFW_KEY_KP_4 324 370 #define GLFW_KEY_KP_5 325 371 #define GLFW_KEY_KP_6 326 372 #define GLFW_KEY_KP_7 327 373 #define GLFW_KEY_KP_8 328 374 #define GLFW_KEY_KP_9 329 375 #define GLFW_KEY_KP_DECIMAL 330 376 #define GLFW_KEY_KP_DIVIDE 331 377 #define GLFW_KEY_KP_MULTIPLY 332 378 #define GLFW_KEY_KP_SUBTRACT 333 379 #define GLFW_KEY_KP_ADD 334 380 #define GLFW_KEY_KP_ENTER 335 381 #define GLFW_KEY_KP_EQUAL 336 382 #define GLFW_KEY_LEFT_SHIFT 340 383 #define GLFW_KEY_LEFT_CONTROL 341 384 #define GLFW_KEY_LEFT_ALT 342 385 #define GLFW_KEY_LEFT_SUPER 343 386 #define GLFW_KEY_RIGHT_SHIFT 344 387 #define GLFW_KEY_RIGHT_CONTROL 345 388 #define GLFW_KEY_RIGHT_ALT 346 389 #define GLFW_KEY_RIGHT_SUPER 347 390 #define GLFW_KEY_MENU 348 391 #define GLFW_KEY_LAST GLFW_KEY_MENU 404 #define GLFW_MOD_SHIFT 0x0001 407 #define GLFW_MOD_CONTROL 0x0002 410 #define GLFW_MOD_ALT 0x0004 413 #define GLFW_MOD_SUPER 0x0008 423 #define GLFW_MOUSE_BUTTON_1 0 424 #define GLFW_MOUSE_BUTTON_2 1 425 #define GLFW_MOUSE_BUTTON_3 2 426 #define GLFW_MOUSE_BUTTON_4 3 427 #define GLFW_MOUSE_BUTTON_5 4 428 #define GLFW_MOUSE_BUTTON_6 5 429 #define GLFW_MOUSE_BUTTON_7 6 430 #define GLFW_MOUSE_BUTTON_8 7 431 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8 432 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1 433 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2 434 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3 443 #define GLFW_JOYSTICK_1 0 444 #define GLFW_JOYSTICK_2 1 445 #define GLFW_JOYSTICK_3 2 446 #define GLFW_JOYSTICK_4 3 447 #define GLFW_JOYSTICK_5 4 448 #define GLFW_JOYSTICK_6 5 449 #define GLFW_JOYSTICK_7 6 450 #define GLFW_JOYSTICK_8 7 451 #define GLFW_JOYSTICK_9 8 452 #define GLFW_JOYSTICK_10 9 453 #define GLFW_JOYSTICK_11 10 454 #define GLFW_JOYSTICK_12 11 455 #define GLFW_JOYSTICK_13 12 456 #define GLFW_JOYSTICK_14 13 457 #define GLFW_JOYSTICK_15 14 458 #define GLFW_JOYSTICK_16 15 459 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16 477 #define GLFW_NOT_INITIALIZED 0x00010001 488 #define GLFW_NO_CURRENT_CONTEXT 0x00010002 498 #define GLFW_INVALID_ENUM 0x00010003 510 #define GLFW_INVALID_VALUE 0x00010004 519 #define GLFW_OUT_OF_MEMORY 0x00010005 539 #define GLFW_API_UNAVAILABLE 0x00010006 557 #define GLFW_VERSION_UNAVAILABLE 0x00010007 569 #define GLFW_PLATFORM_ERROR 0x00010008 589 #define GLFW_FORMAT_UNAVAILABLE 0x00010009 592 #define GLFW_FOCUSED 0x00020001 593 #define GLFW_ICONIFIED 0x00020002 594 #define GLFW_RESIZABLE 0x00020003 595 #define GLFW_VISIBLE 0x00020004 596 #define GLFW_DECORATED 0x00020005 597 #define GLFW_AUTO_ICONIFY 0x00020006 598 #define GLFW_FLOATING 0x00020007 600 #define GLFW_RED_BITS 0x00021001 601 #define GLFW_GREEN_BITS 0x00021002 602 #define GLFW_BLUE_BITS 0x00021003 603 #define GLFW_ALPHA_BITS 0x00021004 604 #define GLFW_DEPTH_BITS 0x00021005 605 #define GLFW_STENCIL_BITS 0x00021006 606 #define GLFW_ACCUM_RED_BITS 0x00021007 607 #define GLFW_ACCUM_GREEN_BITS 0x00021008 608 #define GLFW_ACCUM_BLUE_BITS 0x00021009 609 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A 610 #define GLFW_AUX_BUFFERS 0x0002100B 611 #define GLFW_STEREO 0x0002100C 612 #define GLFW_SAMPLES 0x0002100D 613 #define GLFW_SRGB_CAPABLE 0x0002100E 614 #define GLFW_REFRESH_RATE 0x0002100F 615 #define GLFW_DOUBLEBUFFER 0x00021010 617 #define GLFW_CLIENT_API 0x00022001 618 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002 619 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003 620 #define GLFW_CONTEXT_REVISION 0x00022004 621 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005 622 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006 623 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007 624 #define GLFW_OPENGL_PROFILE 0x00022008 625 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009 627 #define GLFW_OPENGL_API 0x00030001 628 #define GLFW_OPENGL_ES_API 0x00030002 630 #define GLFW_NO_ROBUSTNESS 0 631 #define GLFW_NO_RESET_NOTIFICATION 0x00031001 632 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002 634 #define GLFW_OPENGL_ANY_PROFILE 0 635 #define GLFW_OPENGL_CORE_PROFILE 0x00032001 636 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002 638 #define GLFW_CURSOR 0x00033001 639 #define GLFW_STICKY_KEYS 0x00033002 640 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003 642 #define GLFW_CURSOR_NORMAL 0x00034001 643 #define GLFW_CURSOR_HIDDEN 0x00034002 644 #define GLFW_CURSOR_DISABLED 0x00034003 646 #define GLFW_ANY_RELEASE_BEHAVIOR 0 647 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001 648 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002 661 #define GLFW_ARROW_CURSOR 0x00036001 666 #define GLFW_IBEAM_CURSOR 0x00036002 671 #define GLFW_CROSSHAIR_CURSOR 0x00036003 676 #define GLFW_HAND_CURSOR 0x00036004 681 #define GLFW_HRESIZE_CURSOR 0x00036005 686 #define GLFW_VRESIZE_CURSOR 0x00036006 689 #define GLFW_CONNECTED 0x00040001 690 #define GLFW_DISCONNECTED 0x00040002 692 #define GLFW_DONT_CARE -1 3340 #ifdef GLFW_WINGDIAPI_DEFINED 3342 #undef GLFW_WINGDIAPI_DEFINED 3345 #ifdef GLFW_CALLBACK_DEFINED 3347 #undef GLFW_CALLBACK_DEFINED
GLsizei const void * pointer
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
GLFWAPI void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the client area of the specified window.
GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun)
Sets the monitor configuration callback.
GLFWAPI void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
GLFWAPI int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
GLFWAPI void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun cbfun)
Sets the size callback for the specified window.
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function signature for monitor configuration callbacks.
GLFWAPI GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
struct GLFWcursor GLFWcursor
Opaque cursor object.
GLint GLint GLsizei GLsizei height
GLFWAPI void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
GLFWAPI const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
GLFWAPI void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
GLenum GLenum GLsizei void * image
GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
Sets the error callback.
GLFWAPI void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun cbfun)
Sets the framebuffer resize callback for the specified window.
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
struct GLFWwindow GLFWwindow
Opaque window object.
GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun cbfun)
Sets the iconify callback for the specified window.
GLFWAPI int glfwInit(void)
Initializes the GLFW library.
GLFWAPI GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
GLFWAPI void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
GLFWAPI const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun cbfun)
Sets the refresh callback for the specified window.
GLuint GLuint GLsizei count
GLFWAPI void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
GLFWAPI const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun cbfun)
Sets the position callback for the specified window.
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function signature for window resize callbacks.
GLFWAPI void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
GLFWAPI void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
typedef int(WINAPI *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer
GLFWAPI void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
GLFWAPI void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
GLFWAPI void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
GLFWAPI void glfwWindowHint(int target, int hint)
Sets the specified window hint to the desired value.
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
GLFWAPI void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
GLFWAPI const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function signature for framebuffer resize callbacks.
GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun cbfun)
Sets the focus callback for the specified window.
GLsizei const GLfloat * value
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function signature for window position callbacks.
GLFWAPI GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
GLFWAPI void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the client area of the specified window.
GLFWAPI void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the client area of the specified window.
GLFWAPI void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
GLFWAPI void glfwWaitEvents(void)
Waits until events are queued and processes them.
typedef void(APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode
GLFWAPI GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
GLFWAPI void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
GLFWAPI void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the client area of the specified window.
GLint GLint GLsizei width
GLFWAPI const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
GLFWAPI GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
GLFWAPI void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
GLFWAPI void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
GLFWAPI void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun cbfun)
Sets the close callback for the specified window.
GLFWAPI void glfwTerminate(void)
Terminates the GLFW library.
void(* GLFWwindowclosefun)(GLFWwindow *)
The function signature for window close callbacks.
GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
GLFWAPI void glfwPollEvents(void)
Processes all pending events.
GLFWAPI int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
struct GLFWvidmode GLFWvidmode
Video mode type.
GLdouble GLdouble GLdouble GLdouble top
GLFWAPI void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
struct GLFWimage GLFWimage
Image data.
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function signature for window content refresh callbacks.
GLFWAPI GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
void(* GLFWglproc)(void)
Client API function pointer type.
GLFWAPI void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
GLFWAPI int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.