glfw3.h
Go to the documentation of this file.
1 /*************************************************************************
2  * GLFW 3.3 - www.glfw.org
3  * A library for OpenGL, window and input
4  *------------------------------------------------------------------------
5  * Copyright (c) 2002-2006 Marcus Geelnard
6  * Copyright (c) 2006-2019 Camilla Löwy <elmindreda@glfw.org>
7  *
8  * This software is provided 'as-is', without any express or implied
9  * warranty. In no event will the authors be held liable for any damages
10  * arising from the use of this software.
11  *
12  * Permission is granted to anyone to use this software for any purpose,
13  * including commercial applications, and to alter it and redistribute it
14  * freely, subject to the following restrictions:
15  *
16  * 1. The origin of this software must not be misrepresented; you must not
17  * claim that you wrote the original software. If you use this software
18  * in a product, an acknowledgment in the product documentation would
19  * be appreciated but is not required.
20  *
21  * 2. Altered source versions must be plainly marked as such, and must not
22  * be misrepresented as being the original software.
23  *
24  * 3. This notice may not be removed or altered from any source
25  * distribution.
26  *
27  *************************************************************************/
28 
29 #ifndef _glfw3_h_
30 #define _glfw3_h_
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 
37 /*************************************************************************
38  * Doxygen documentation
39  *************************************************************************/
40 
89 /*************************************************************************
90  * Compiler- and platform-specific preprocessor work
91  *************************************************************************/
92 
93 /* If we are we on Windows, we want a single define for it.
94  */
95 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
96  #define _WIN32
97 #endif /* _WIN32 */
98 
99 /* Include because most Windows GLU headers need wchar_t and
100  * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h.
101  * Include it unconditionally to avoid surprising side-effects.
102  */
103 #include <stddef.h>
104 
105 /* Include because it is needed by Vulkan and related functions.
106  * Include it unconditionally to avoid surprising side-effects.
107  */
108 #include <stdint.h>
109 
110 #if defined(GLFW_INCLUDE_VULKAN)
111  #include <vulkan/vulkan.h>
112 #endif /* Vulkan header */
113 
114 /* The Vulkan header may have indirectly included windows.h (because of
115  * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it.
116  */
117 
118 /* It is customary to use APIENTRY for OpenGL function pointer declarations on
119  * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
120  */
121 #if !defined(APIENTRY)
122  #if defined(_WIN32)
123  #define APIENTRY __stdcall
124  #else
125  #define APIENTRY
126  #endif
127  #define GLFW_APIENTRY_DEFINED
128 #endif /* APIENTRY */
129 
130 /* Some Windows OpenGL headers need this.
131  */
132 #if !defined(WINGDIAPI) && defined(_WIN32)
133  #define WINGDIAPI __declspec(dllimport)
134  #define GLFW_WINGDIAPI_DEFINED
135 #endif /* WINGDIAPI */
136 
137 /* Some Windows GLU headers need this.
138  */
139 #if !defined(CALLBACK) && defined(_WIN32)
140  #define CALLBACK __stdcall
141  #define GLFW_CALLBACK_DEFINED
142 #endif /* CALLBACK */
143 
144 /* Include the chosen OpenGL or OpenGL ES headers.
145  */
146 #if defined(GLFW_INCLUDE_ES1)
147 
148  #include <GLES/gl.h>
149  #if defined(GLFW_INCLUDE_GLEXT)
150  #include <GLES/glext.h>
151  #endif
152 
153 #elif defined(GLFW_INCLUDE_ES2)
154 
155  #include <GLES2/gl2.h>
156  #if defined(GLFW_INCLUDE_GLEXT)
157  #include <GLES2/gl2ext.h>
158  #endif
159 
160 #elif defined(GLFW_INCLUDE_ES3)
161 
162  #include <GLES3/gl3.h>
163  #if defined(GLFW_INCLUDE_GLEXT)
164  #include <GLES2/gl2ext.h>
165  #endif
166 
167 #elif defined(GLFW_INCLUDE_ES31)
168 
169  #include <GLES3/gl31.h>
170  #if defined(GLFW_INCLUDE_GLEXT)
171  #include <GLES2/gl2ext.h>
172  #endif
173 
174 #elif defined(GLFW_INCLUDE_ES32)
175 
176  #include <GLES3/gl32.h>
177  #if defined(GLFW_INCLUDE_GLEXT)
178  #include <GLES2/gl2ext.h>
179  #endif
180 
181 #elif defined(GLFW_INCLUDE_GLCOREARB)
182 
183  #if defined(__APPLE__)
184 
185  #include <OpenGL/gl3.h>
186  #if defined(GLFW_INCLUDE_GLEXT)
187  #include <OpenGL/gl3ext.h>
188  #endif /*GLFW_INCLUDE_GLEXT*/
189 
190  #else /*__APPLE__*/
191 
192  #include <GL/glcorearb.h>
193  #if defined(GLFW_INCLUDE_GLEXT)
194  #include <GL/glext.h>
195  #endif
196 
197  #endif /*__APPLE__*/
198 
199 #elif defined(GLFW_INCLUDE_GLU)
200 
201  #if defined(__APPLE__)
202 
203  #if defined(GLFW_INCLUDE_GLU)
204  #include <OpenGL/glu.h>
205  #endif
206 
207  #else /*__APPLE__*/
208 
209  #if defined(GLFW_INCLUDE_GLU)
210  #include <GL/glu.h>
211  #endif
212 
213  #endif /*__APPLE__*/
214 
215 #elif !defined(GLFW_INCLUDE_NONE) && \
216  !defined(__gl_h_) && \
217  !defined(__gles1_gl_h_) && \
218  !defined(__gles2_gl2_h_) && \
219  !defined(__gles2_gl3_h_) && \
220  !defined(__gles2_gl31_h_) && \
221  !defined(__gles2_gl32_h_) && \
222  !defined(__gl_glcorearb_h_) && \
223  !defined(__gl2_h_) /*legacy*/ && \
224  !defined(__gl3_h_) /*legacy*/ && \
225  !defined(__gl31_h_) /*legacy*/ && \
226  !defined(__gl32_h_) /*legacy*/ && \
227  !defined(__glcorearb_h_) /*legacy*/ && \
228  !defined(__GL_H__) /*non-standard*/ && \
229  !defined(__gltypes_h_) /*non-standard*/ && \
230  !defined(__glee_h_) /*non-standard*/
231 
232  #if defined(__APPLE__)
233 
234  #if !defined(GLFW_INCLUDE_GLEXT)
235  #define GL_GLEXT_LEGACY
236  #endif
237  #include <OpenGL/gl.h>
238 
239  #else /*__APPLE__*/
240 
241  #include <GL/gl.h>
242  #if defined(GLFW_INCLUDE_GLEXT)
243  #include <GL/glext.h>
244  #endif
245 
246  #endif /*__APPLE__*/
247 
248 #endif /* OpenGL and OpenGL ES headers */
249 
250 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
251  /* GLFW_DLL must be defined by applications that are linking against the DLL
252  * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
253  * configuration header when compiling the DLL version of the library.
254  */
255  #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
256 #endif
257 
258 /* GLFWAPI is used to declare public API functions for export
259  * from the DLL / shared library / dynamic library.
260  */
261 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
262  /* We are building GLFW as a Win32 DLL */
263  #define GLFWAPI __declspec(dllexport)
264 #elif defined(_WIN32) && defined(GLFW_DLL)
265  /* We are calling GLFW as a Win32 DLL */
266  #define GLFWAPI __declspec(dllimport)
267 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
268  /* We are building GLFW as a shared / dynamic library */
269  #define GLFWAPI __attribute__((visibility("default")))
270 #else
271  /* We are building or calling GLFW as a static library */
272  #define GLFWAPI
273 #endif
274 
275 
276 /*************************************************************************
277  * GLFW API tokens
278  *************************************************************************/
279 
288 #define GLFW_VERSION_MAJOR 3
295 #define GLFW_VERSION_MINOR 3
302 #define GLFW_VERSION_REVISION 7
313 #define GLFW_TRUE 1
322 #define GLFW_FALSE 0
323 
332 #define GLFW_RELEASE 0
339 #define GLFW_PRESS 1
346 #define GLFW_REPEAT 2
356 #define GLFW_HAT_CENTERED 0
357 #define GLFW_HAT_UP 1
358 #define GLFW_HAT_RIGHT 2
359 #define GLFW_HAT_DOWN 4
360 #define GLFW_HAT_LEFT 8
361 #define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
362 #define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
363 #define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
364 #define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
391 /* The unknown key */
392 #define GLFW_KEY_UNKNOWN -1
393 
394 /* Printable keys */
395 #define GLFW_KEY_SPACE 32
396 #define GLFW_KEY_APOSTROPHE 39 /* ' */
397 #define GLFW_KEY_COMMA 44 /* , */
398 #define GLFW_KEY_MINUS 45 /* - */
399 #define GLFW_KEY_PERIOD 46 /* . */
400 #define GLFW_KEY_SLASH 47 /* / */
401 #define GLFW_KEY_0 48
402 #define GLFW_KEY_1 49
403 #define GLFW_KEY_2 50
404 #define GLFW_KEY_3 51
405 #define GLFW_KEY_4 52
406 #define GLFW_KEY_5 53
407 #define GLFW_KEY_6 54
408 #define GLFW_KEY_7 55
409 #define GLFW_KEY_8 56
410 #define GLFW_KEY_9 57
411 #define GLFW_KEY_SEMICOLON 59 /* ; */
412 #define GLFW_KEY_EQUAL 61 /* = */
413 #define GLFW_KEY_A 65
414 #define GLFW_KEY_B 66
415 #define GLFW_KEY_C 67
416 #define GLFW_KEY_D 68
417 #define GLFW_KEY_E 69
418 #define GLFW_KEY_F 70
419 #define GLFW_KEY_G 71
420 #define GLFW_KEY_H 72
421 #define GLFW_KEY_I 73
422 #define GLFW_KEY_J 74
423 #define GLFW_KEY_K 75
424 #define GLFW_KEY_L 76
425 #define GLFW_KEY_M 77
426 #define GLFW_KEY_N 78
427 #define GLFW_KEY_O 79
428 #define GLFW_KEY_P 80
429 #define GLFW_KEY_Q 81
430 #define GLFW_KEY_R 82
431 #define GLFW_KEY_S 83
432 #define GLFW_KEY_T 84
433 #define GLFW_KEY_U 85
434 #define GLFW_KEY_V 86
435 #define GLFW_KEY_W 87
436 #define GLFW_KEY_X 88
437 #define GLFW_KEY_Y 89
438 #define GLFW_KEY_Z 90
439 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
440 #define GLFW_KEY_BACKSLASH 92 /* \ */
441 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
442 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
443 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
444 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
445 
446 /* Function keys */
447 #define GLFW_KEY_ESCAPE 256
448 #define GLFW_KEY_ENTER 257
449 #define GLFW_KEY_TAB 258
450 #define GLFW_KEY_BACKSPACE 259
451 #define GLFW_KEY_INSERT 260
452 #define GLFW_KEY_DELETE 261
453 #define GLFW_KEY_RIGHT 262
454 #define GLFW_KEY_LEFT 263
455 #define GLFW_KEY_DOWN 264
456 #define GLFW_KEY_UP 265
457 #define GLFW_KEY_PAGE_UP 266
458 #define GLFW_KEY_PAGE_DOWN 267
459 #define GLFW_KEY_HOME 268
460 #define GLFW_KEY_END 269
461 #define GLFW_KEY_CAPS_LOCK 280
462 #define GLFW_KEY_SCROLL_LOCK 281
463 #define GLFW_KEY_NUM_LOCK 282
464 #define GLFW_KEY_PRINT_SCREEN 283
465 #define GLFW_KEY_PAUSE 284
466 #define GLFW_KEY_F1 290
467 #define GLFW_KEY_F2 291
468 #define GLFW_KEY_F3 292
469 #define GLFW_KEY_F4 293
470 #define GLFW_KEY_F5 294
471 #define GLFW_KEY_F6 295
472 #define GLFW_KEY_F7 296
473 #define GLFW_KEY_F8 297
474 #define GLFW_KEY_F9 298
475 #define GLFW_KEY_F10 299
476 #define GLFW_KEY_F11 300
477 #define GLFW_KEY_F12 301
478 #define GLFW_KEY_F13 302
479 #define GLFW_KEY_F14 303
480 #define GLFW_KEY_F15 304
481 #define GLFW_KEY_F16 305
482 #define GLFW_KEY_F17 306
483 #define GLFW_KEY_F18 307
484 #define GLFW_KEY_F19 308
485 #define GLFW_KEY_F20 309
486 #define GLFW_KEY_F21 310
487 #define GLFW_KEY_F22 311
488 #define GLFW_KEY_F23 312
489 #define GLFW_KEY_F24 313
490 #define GLFW_KEY_F25 314
491 #define GLFW_KEY_KP_0 320
492 #define GLFW_KEY_KP_1 321
493 #define GLFW_KEY_KP_2 322
494 #define GLFW_KEY_KP_3 323
495 #define GLFW_KEY_KP_4 324
496 #define GLFW_KEY_KP_5 325
497 #define GLFW_KEY_KP_6 326
498 #define GLFW_KEY_KP_7 327
499 #define GLFW_KEY_KP_8 328
500 #define GLFW_KEY_KP_9 329
501 #define GLFW_KEY_KP_DECIMAL 330
502 #define GLFW_KEY_KP_DIVIDE 331
503 #define GLFW_KEY_KP_MULTIPLY 332
504 #define GLFW_KEY_KP_SUBTRACT 333
505 #define GLFW_KEY_KP_ADD 334
506 #define GLFW_KEY_KP_ENTER 335
507 #define GLFW_KEY_KP_EQUAL 336
508 #define GLFW_KEY_LEFT_SHIFT 340
509 #define GLFW_KEY_LEFT_CONTROL 341
510 #define GLFW_KEY_LEFT_ALT 342
511 #define GLFW_KEY_LEFT_SUPER 343
512 #define GLFW_KEY_RIGHT_SHIFT 344
513 #define GLFW_KEY_RIGHT_CONTROL 345
514 #define GLFW_KEY_RIGHT_ALT 346
515 #define GLFW_KEY_RIGHT_SUPER 347
516 #define GLFW_KEY_MENU 348
517 
518 #define GLFW_KEY_LAST GLFW_KEY_MENU
519 
534 #define GLFW_MOD_SHIFT 0x0001
539 #define GLFW_MOD_CONTROL 0x0002
544 #define GLFW_MOD_ALT 0x0004
549 #define GLFW_MOD_SUPER 0x0008
555 #define GLFW_MOD_CAPS_LOCK 0x0010
561 #define GLFW_MOD_NUM_LOCK 0x0020
562 
572 #define GLFW_MOUSE_BUTTON_1 0
573 #define GLFW_MOUSE_BUTTON_2 1
574 #define GLFW_MOUSE_BUTTON_3 2
575 #define GLFW_MOUSE_BUTTON_4 3
576 #define GLFW_MOUSE_BUTTON_5 4
577 #define GLFW_MOUSE_BUTTON_6 5
578 #define GLFW_MOUSE_BUTTON_7 6
579 #define GLFW_MOUSE_BUTTON_8 7
580 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
581 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
582 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
583 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
593 #define GLFW_JOYSTICK_1 0
594 #define GLFW_JOYSTICK_2 1
595 #define GLFW_JOYSTICK_3 2
596 #define GLFW_JOYSTICK_4 3
597 #define GLFW_JOYSTICK_5 4
598 #define GLFW_JOYSTICK_6 5
599 #define GLFW_JOYSTICK_7 6
600 #define GLFW_JOYSTICK_8 7
601 #define GLFW_JOYSTICK_9 8
602 #define GLFW_JOYSTICK_10 9
603 #define GLFW_JOYSTICK_11 10
604 #define GLFW_JOYSTICK_12 11
605 #define GLFW_JOYSTICK_13 12
606 #define GLFW_JOYSTICK_14 13
607 #define GLFW_JOYSTICK_15 14
608 #define GLFW_JOYSTICK_16 15
609 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
619 #define GLFW_GAMEPAD_BUTTON_A 0
620 #define GLFW_GAMEPAD_BUTTON_B 1
621 #define GLFW_GAMEPAD_BUTTON_X 2
622 #define GLFW_GAMEPAD_BUTTON_Y 3
623 #define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
624 #define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
625 #define GLFW_GAMEPAD_BUTTON_BACK 6
626 #define GLFW_GAMEPAD_BUTTON_START 7
627 #define GLFW_GAMEPAD_BUTTON_GUIDE 8
628 #define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
629 #define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
630 #define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
631 #define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
632 #define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
633 #define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
634 #define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
635 
636 #define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
637 #define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
638 #define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
639 #define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
649 #define GLFW_GAMEPAD_AXIS_LEFT_X 0
650 #define GLFW_GAMEPAD_AXIS_LEFT_Y 1
651 #define GLFW_GAMEPAD_AXIS_RIGHT_X 2
652 #define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
653 #define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
654 #define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
655 #define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
671 #define GLFW_NO_ERROR 0
680 #define GLFW_NOT_INITIALIZED 0x00010001
690 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
698 #define GLFW_INVALID_ENUM 0x00010003
709 #define GLFW_INVALID_VALUE 0x00010004
717 #define GLFW_OUT_OF_MEMORY 0x00010005
733 #define GLFW_API_UNAVAILABLE 0x00010006
750 #define GLFW_VERSION_UNAVAILABLE 0x00010007
761 #define GLFW_PLATFORM_ERROR 0x00010008
780 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
788 #define GLFW_NO_WINDOW_CONTEXT 0x0001000A
798 #define GLFW_FOCUSED 0x00020001
803 #define GLFW_ICONIFIED 0x00020002
809 #define GLFW_RESIZABLE 0x00020003
815 #define GLFW_VISIBLE 0x00020004
821 #define GLFW_DECORATED 0x00020005
827 #define GLFW_AUTO_ICONIFY 0x00020006
833 #define GLFW_FLOATING 0x00020007
839 #define GLFW_MAXIMIZED 0x00020008
844 #define GLFW_CENTER_CURSOR 0x00020009
851 #define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
856 #define GLFW_HOVERED 0x0002000B
862 #define GLFW_FOCUS_ON_SHOW 0x0002000C
863 
868 #define GLFW_RED_BITS 0x00021001
873 #define GLFW_GREEN_BITS 0x00021002
878 #define GLFW_BLUE_BITS 0x00021003
883 #define GLFW_ALPHA_BITS 0x00021004
888 #define GLFW_DEPTH_BITS 0x00021005
893 #define GLFW_STENCIL_BITS 0x00021006
898 #define GLFW_ACCUM_RED_BITS 0x00021007
903 #define GLFW_ACCUM_GREEN_BITS 0x00021008
908 #define GLFW_ACCUM_BLUE_BITS 0x00021009
913 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
918 #define GLFW_AUX_BUFFERS 0x0002100B
923 #define GLFW_STEREO 0x0002100C
928 #define GLFW_SAMPLES 0x0002100D
933 #define GLFW_SRGB_CAPABLE 0x0002100E
938 #define GLFW_REFRESH_RATE 0x0002100F
943 #define GLFW_DOUBLEBUFFER 0x00021010
944 
950 #define GLFW_CLIENT_API 0x00022001
956 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
962 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
968 #define GLFW_CONTEXT_REVISION 0x00022004
974 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
980 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
986 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
992 #define GLFW_OPENGL_PROFILE 0x00022008
998 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
1004 #define GLFW_CONTEXT_NO_ERROR 0x0002200A
1010 #define GLFW_CONTEXT_CREATION_API 0x0002200B
1014 #define GLFW_SCALE_TO_MONITOR 0x0002200C
1018 #define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
1022 #define GLFW_COCOA_FRAME_NAME 0x00023002
1026 #define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
1030 #define GLFW_X11_CLASS_NAME 0x00024001
1034 #define GLFW_X11_INSTANCE_NAME 0x00024002
1037 #define GLFW_NO_API 0
1038 #define GLFW_OPENGL_API 0x00030001
1039 #define GLFW_OPENGL_ES_API 0x00030002
1040 
1041 #define GLFW_NO_ROBUSTNESS 0
1042 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
1043 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
1044 
1045 #define GLFW_OPENGL_ANY_PROFILE 0
1046 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
1047 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
1048 
1049 #define GLFW_CURSOR 0x00033001
1050 #define GLFW_STICKY_KEYS 0x00033002
1051 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
1052 #define GLFW_LOCK_KEY_MODS 0x00033004
1053 #define GLFW_RAW_MOUSE_MOTION 0x00033005
1054 
1055 #define GLFW_CURSOR_NORMAL 0x00034001
1056 #define GLFW_CURSOR_HIDDEN 0x00034002
1057 #define GLFW_CURSOR_DISABLED 0x00034003
1058 
1059 #define GLFW_ANY_RELEASE_BEHAVIOR 0
1060 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
1061 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
1062 
1063 #define GLFW_NATIVE_CONTEXT_API 0x00036001
1064 #define GLFW_EGL_CONTEXT_API 0x00036002
1065 #define GLFW_OSMESA_CONTEXT_API 0x00036003
1066 
1079 #define GLFW_ARROW_CURSOR 0x00036001
1084 #define GLFW_IBEAM_CURSOR 0x00036002
1089 #define GLFW_CROSSHAIR_CURSOR 0x00036003
1094 #define GLFW_HAND_CURSOR 0x00036004
1099 #define GLFW_HRESIZE_CURSOR 0x00036005
1104 #define GLFW_VRESIZE_CURSOR 0x00036006
1107 #define GLFW_CONNECTED 0x00040001
1108 #define GLFW_DISCONNECTED 0x00040002
1109 
1116 #define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
1121 #define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
1126 #define GLFW_COCOA_MENUBAR 0x00051002
1129 #define GLFW_DONT_CARE -1
1130 
1131 
1132 /*************************************************************************
1133  * GLFW API types
1134  *************************************************************************/
1135 
1148 typedef void (*GLFWglproc)(void);
1149 
1162 typedef void (*GLFWvkproc)(void);
1163 
1174 typedef struct GLFWmonitor GLFWmonitor;
1175 
1186 typedef struct GLFWwindow GLFWwindow;
1187 
1198 typedef struct GLFWcursor GLFWcursor;
1199 
1222 typedef void (* GLFWerrorfun)(int error_code, const char* description);
1223 
1245 typedef void (* GLFWwindowposfun)(GLFWwindow* window, int xpos, int ypos);
1246 
1267 typedef void (* GLFWwindowsizefun)(GLFWwindow* window, int width, int height);
1268 
1287 typedef void (* GLFWwindowclosefun)(GLFWwindow* window);
1288 
1307 typedef void (* GLFWwindowrefreshfun)(GLFWwindow* window);
1308 
1328 typedef void (* GLFWwindowfocusfun)(GLFWwindow* window, int focused);
1329 
1349 typedef void (* GLFWwindowiconifyfun)(GLFWwindow* window, int iconified);
1350 
1370 typedef void (* GLFWwindowmaximizefun)(GLFWwindow* window, int maximized);
1371 
1391 typedef void (* GLFWframebuffersizefun)(GLFWwindow* window, int width, int height);
1392 
1412 typedef void (* GLFWwindowcontentscalefun)(GLFWwindow* window, float xscale, float yscale);
1413 
1438 typedef void (* GLFWmousebuttonfun)(GLFWwindow* window, int button, int action, int mods);
1439 
1461 typedef void (* GLFWcursorposfun)(GLFWwindow* window, double xpos, double ypos);
1462 
1482 typedef void (* GLFWcursorenterfun)(GLFWwindow* window, int entered);
1483 
1503 typedef void (* GLFWscrollfun)(GLFWwindow* window, double xoffset, double yoffset);
1504 
1529 typedef void (* GLFWkeyfun)(GLFWwindow* window, int key, int scancode, int action, int mods);
1530 
1550 typedef void (* GLFWcharfun)(GLFWwindow* window, unsigned int codepoint);
1551 
1577 typedef void (* GLFWcharmodsfun)(GLFWwindow* window, unsigned int codepoint, int mods);
1578 
1601 typedef void (* GLFWdropfun)(GLFWwindow* window, int path_count, const char* paths[]);
1602 
1622 typedef void (* GLFWmonitorfun)(GLFWmonitor* monitor, int event);
1623 
1643 typedef void (* GLFWjoystickfun)(int jid, int event);
1644 
1658 typedef struct GLFWvidmode
1659 {
1662  int width;
1665  int height;
1668  int redBits;
1679 
1692 typedef struct GLFWgammaramp
1693 {
1696  unsigned short* red;
1699  unsigned short* green;
1702  unsigned short* blue;
1705  unsigned int size;
1707 
1721 typedef struct GLFWimage
1722 {
1725  int width;
1728  int height;
1731  unsigned char* pixels;
1733 
1745 typedef struct GLFWgamepadstate
1746 {
1750  unsigned char buttons[15];
1754  float axes[6];
1756 
1757 
1758 /*************************************************************************
1759  * GLFW API functions
1760  *************************************************************************/
1761 
1798 GLFWAPI int glfwInit(void);
1799 
1832 GLFWAPI void glfwTerminate(void);
1833 
1864 GLFWAPI void glfwInitHint(int hint, int value);
1865 
1891 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1892 
1922 GLFWAPI const char* glfwGetVersionString(void);
1923 
1953 GLFWAPI int glfwGetError(const char** description);
1954 
2000 
2028 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
2029 
2053 
2077 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
2078 
2108 GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
2109 
2142 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
2143 
2174 GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
2175 
2200 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
2201 
2226 GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
2227 
2250 GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
2251 
2281 
2314 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
2315 
2342 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
2343 
2375 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
2376 
2405 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
2406 
2446 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
2447 
2465 GLFWAPI void glfwDefaultWindowHints(void);
2466 
2500 GLFWAPI void glfwWindowHint(int hint, int value);
2501 
2538 GLFWAPI void glfwWindowHintString(int hint, const char* value);
2539 
2692 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
2693 
2721 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
2722 
2741 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
2742 
2763 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
2764 
2788 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
2789 
2835 GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
2836 
2867 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
2868 
2902 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
2903 
2932 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
2933 
2975 GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
2976 
3018 GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
3019 
3059 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
3060 
3088 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
3089 
3125 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
3126 
3158 GLFWAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
3159 
3185 GLFWAPI float glfwGetWindowOpacity(GLFWwindow* window);
3186 
3214 GLFWAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
3215 
3245 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
3246 
3272 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
3273 
3297 GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
3298 
3329 GLFWAPI void glfwShowWindow(GLFWwindow* window);
3330 
3351 GLFWAPI void glfwHideWindow(GLFWwindow* window);
3352 
3390 GLFWAPI void glfwFocusWindow(GLFWwindow* window);
3391 
3418 
3440 
3498 GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
3499 
3532 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
3533 
3569 GLFWAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
3570 
3592 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
3593 
3613 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
3614 
3649 
3681 
3721 
3757 
3792 
3825 
3855 
3885 
3916 
3953 GLFWAPI void glfwPollEvents(void);
3954 
3998 GLFWAPI void glfwWaitEvents(void);
3999 
4047 GLFWAPI void glfwWaitEventsTimeout(double timeout);
4048 
4067 GLFWAPI void glfwPostEmptyEvent(void);
4068 
4092 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
4093 
4154 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
4155 
4184 
4251 GLFWAPI const char* glfwGetKeyName(int key, int scancode);
4252 
4275 GLFWAPI int glfwGetKeyScancode(int key);
4276 
4315 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
4316 
4344 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
4345 
4382 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
4383 
4422 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
4423 
4460 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
4461 
4484 
4510 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
4511 
4537 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
4538 
4588 
4631 
4673 
4710 
4742 
4773 
4807 
4844 
4867 GLFWAPI int glfwJoystickPresent(int jid);
4868 
4900 GLFWAPI const float* glfwGetJoystickAxes(int jid, int* count);
4901 
4941 GLFWAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
4942 
4998 GLFWAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
4999 
5029 GLFWAPI const char* glfwGetJoystickName(int jid);
5030 
5070 GLFWAPI const char* glfwGetJoystickGUID(int jid);
5071 
5096 GLFWAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
5097 
5120 GLFWAPI void* glfwGetJoystickUserPointer(int jid);
5121 
5148 GLFWAPI int glfwJoystickIsGamepad(int jid);
5149 
5185 
5218 GLFWAPI int glfwUpdateGamepadMappings(const char* string);
5219 
5250 GLFWAPI const char* glfwGetGamepadName(int jid);
5251 
5288 GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
5289 
5313 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
5314 
5343 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
5344 
5373 GLFWAPI double glfwGetTime(void);
5374 
5403 GLFWAPI void glfwSetTime(double time);
5404 
5425 GLFWAPI uint64_t glfwGetTimerValue(void);
5426 
5445 GLFWAPI uint64_t glfwGetTimerFrequency(void);
5446 
5483 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
5484 
5505 
5538 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
5539 
5584 GLFWAPI void glfwSwapInterval(int interval);
5585 
5622 GLFWAPI int glfwExtensionSupported(const char* extension);
5623 
5664 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
5665 
5690 GLFWAPI int glfwVulkanSupported(void);
5691 
5734 GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
5735 
5736 #if defined(VK_VERSION_1_0)
5737 
5777 GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
5778 
5814 GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
5815 
5877 GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
5878 
5879 #endif /*VK_VERSION_1_0*/
5880 
5881 
5882 /*************************************************************************
5883  * Global definition cleanup
5884  *************************************************************************/
5885 
5886 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
5887 
5888 #ifdef GLFW_WINGDIAPI_DEFINED
5889  #undef WINGDIAPI
5890  #undef GLFW_WINGDIAPI_DEFINED
5891 #endif
5892 
5893 #ifdef GLFW_CALLBACK_DEFINED
5894  #undef CALLBACK
5895  #undef GLFW_CALLBACK_DEFINED
5896 #endif
5897 
5898 /* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
5899  * defined by some gl.h variants (OpenBSD) so define it after if needed.
5900  */
5901 #ifndef GLAPIENTRY
5902  #define GLAPIENTRY APIENTRY
5903 #endif
5904 
5905 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
5906 
5907 
5908 #ifdef __cplusplus
5909 }
5910 #endif
5911 
5912 #endif /* _glfw3_h_ */
5913 
void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:1148
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
int glfwInit(void)
Initializes the GLFW library.
void(* GLFWerrorfun)(int error_code, const char *description)
The function pointer type for error callbacks.
Definition: glfw3.h:1222
int glfwGetError(const char **description)
Returns and clears the last error for the calling thread.
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
void glfwTerminate(void)
Terminates the GLFW library.
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
void(* GLFWmousebuttonfun)(GLFWwindow *window, int button, int action, int mods)
The function pointer type for mouse button callbacks.
Definition: glfw3.h:1438
void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)
Retrieves the position of the cursor relative to the content area of the window.
void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)
Sets the position of the cursor, relative to the content area of the window.
void * glfwGetJoystickUserPointer(int jid)
Returns the user pointer of the specified joystick.
uint64_t glfwGetTimerValue(void)
Returns the current value of the raw timer.
GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun callback)
Sets the Unicode character with modifiers callback.
void(* GLFWcharfun)(GLFWwindow *window, unsigned int codepoint)
The function pointer type for Unicode character callbacks.
Definition: glfw3.h:1550
GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)
Sets the key callback.
const char * glfwGetKeyName(int key, int scancode)
Returns the layout-specific name of the specified printable key.
const unsigned char * glfwGetJoystickHats(int jid, int *count)
Returns the state of all hats of the specified joystick.
GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)
Sets the joystick configuration callback.
uint64_t glfwGetTimerFrequency(void)
Returns the frequency, in Hz, of the raw timer.
GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)
Sets the scroll callback.
const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
void(* GLFWkeyfun)(GLFWwindow *window, int key, int scancode, int action, int mods)
The function pointer type for keyboard key callbacks.
Definition: glfw3.h:1529
const char * glfwGetGamepadName(int jid)
Returns the human-readable gamepad name for the specified joystick.
struct GLFWgamepadstate GLFWgamepadstate
Gamepad input state.
int glfwGetKeyScancode(int key)
Returns the platform-specific scancode of the specified key.
GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun callback)
Sets the mouse button callback.
void glfwSetJoystickUserPointer(int jid, void *pointer)
Sets the user pointer of the specified joystick.
void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition: glfw3.h:1198
void(* GLFWjoystickfun)(int jid, int event)
The function pointer type for joystick configuration callbacks.
Definition: glfw3.h:1643
GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
double glfwGetTime(void)
Returns the GLFW time.
const float * glfwGetJoystickAxes(int jid, int *count)
Returns the values of all axes of the specified joystick.
void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
void(* GLFWcursorenterfun)(GLFWwindow *window, int entered)
The function pointer type for cursor enter/leave callbacks.
Definition: glfw3.h:1482
void(* GLFWdropfun)(GLFWwindow *window, int path_count, const char *paths[])
The function pointer type for path drop callbacks.
Definition: glfw3.h:1601
GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun callback)
Sets the Unicode character callback.
GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)
Sets the path drop callback.
void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
int glfwGetMouseButton(GLFWwindow *window, int button)
Returns the last reported state of a mouse button for the specified window.
GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)
Sets the cursor position callback.
void(* GLFWcharmodsfun)(GLFWwindow *window, unsigned int codepoint, int mods)
The function pointer type for Unicode character with modifiers callbacks.
Definition: glfw3.h:1577
int glfwJoystickIsGamepad(int jid)
Returns whether the specified joystick has a gamepad mapping.
GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun callback)
Sets the cursor enter/leave callback.
void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)
Sets the cursor for the window.
void(* GLFWcursorposfun)(GLFWwindow *window, double xpos, double ypos)
The function pointer type for cursor position callbacks.
Definition: glfw3.h:1461
const unsigned char * glfwGetJoystickButtons(int jid, int *count)
Returns the state of all buttons of the specified joystick.
int glfwGetGamepadState(int jid, GLFWgamepadstate *state)
Retrieves the state of the specified joystick remapped as a gamepad.
int glfwGetKey(GLFWwindow *window, int key)
Returns the last reported state of a keyboard key for the specified window.
const char * glfwGetJoystickGUID(int jid)
Returns the SDL compatible GUID of the specified joystick.
int glfwRawMouseMotionSupported(void)
Returns whether raw mouse motion is supported.
int glfwJoystickPresent(int jid)
Returns whether the specified joystick is present.
int glfwUpdateGamepadMappings(const char *string)
Adds the specified SDL_GameControllerDB gamepad mappings.
void glfwSetTime(double time)
Sets the GLFW time.
int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
void(* GLFWscrollfun)(GLFWwindow *window, double xoffset, double yoffset)
The function pointer type for scroll callbacks.
Definition: glfw3.h:1503
const char * glfwGetJoystickName(int jid)
Returns the name of the specified joystick.
GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer of the specified monitor.
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:1174
struct GLFWvidmode GLFWvidmode
Video mode type.
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)
The function pointer type for monitor configuration callbacks.
Definition: glfw3.h:1622
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for the specified monitor.
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)
Creates a Vulkan surface for the specified window.
const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
int glfwVulkanSupported(void)
Returns whether the Vulkan loader and an ICD have been found.
void(* GLFWvkproc)(void)
Vulkan API function pointer type.
Definition: glfw3.h:1162
GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char *procname)
Returns the address of the specified Vulkan instance function.
int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)
Returns whether the specified queue family can present images.
GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)
Sets the position callback for the specified window.
void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the content area of the specified window.
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
void glfwRequestWindowAttention(GLFWwindow *window)
Requests user attention to the specified window.
void(* GLFWwindowmaximizefun)(GLFWwindow *window, int maximized)
The function pointer type for window maximize callbacks.
Definition: glfw3.h:1370
void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)
The function pointer type for window iconify callbacks.
Definition: glfw3.h:1349
void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the content area of the specified window.
void glfwPollEvents(void)
Processes all pending events.
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:1186
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
void(* GLFWwindowrefreshfun)(GLFWwindow *window)
The function pointer type for window content refresh callbacks.
Definition: glfw3.h:1307
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
void glfwWaitEvents(void)
Waits until events are queued and processes them.
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
void glfwWaitEventsTimeout(double timeout)
Waits with timeout until events are queued and processes them.
void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the content area of the specified window.
void(* GLFWwindowcontentscalefun)(GLFWwindow *window, float xscale, float yscale)
The function pointer type for window content scale callbacks.
Definition: glfw3.h:1412
struct GLFWimage GLFWimage
Image data.
void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
void glfwSetWindowMonitor(GLFWwindow *window, GLFWmonitor *monitor, int xpos, int ypos, int width, int height, int refreshRate)
Sets the mode, monitor, video mode and placement of a window.
void glfwFocusWindow(GLFWwindow *window)
Brings the specified window to front and sets input focus.
void glfwWindowHintString(int hint, const char *value)
Sets the specified window hint to the desired value.
void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)
Sets the framebuffer resize callback for the specified window.
void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
void(* GLFWwindowfocusfun)(GLFWwindow *window, int focused)
The function pointer type for window focus callbacks.
Definition: glfw3.h:1328
void(* GLFWwindowposfun)(GLFWwindow *window, int xpos, int ypos)
The function pointer type for window position callbacks.
Definition: glfw3.h:1245
void(* GLFWwindowclosefun)(GLFWwindow *window)
The function pointer type for window close callbacks.
Definition: glfw3.h:1287
GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)
Sets the focus callback for the specified window.
void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
void glfwSetWindowOpacity(GLFWwindow *window, float opacity)
Sets the opacity of the whole window.
GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)
Sets the iconify callback for the specified window.
GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)
Sets the maximize callback for the specified window.
int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)
Sets an attribute of the specified window.
float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)
Sets the size callback for the specified window.
GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)
Sets the close callback for the specified window.
void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)
Sets the icon for the specified window.
void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)
The function pointer type for framebuffer size callbacks.
Definition: glfw3.h:1391
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)
The function pointer type for window size callbacks.
Definition: glfw3.h:1267
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the content area of the specified window.
GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)
Sets the window content scale callback for the specified window.
void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)
Retrieves the content scale for the specified window.
Gamepad input state.
Definition: glfw3.h:1746
unsigned char buttons[15]
Definition: glfw3.h:1750
float axes[6]
Definition: glfw3.h:1754
Gamma ramp.
Definition: glfw3.h:1693
unsigned short * red
Definition: glfw3.h:1696
unsigned short * blue
Definition: glfw3.h:1702
unsigned int size
Definition: glfw3.h:1705
unsigned short * green
Definition: glfw3.h:1699
Image data.
Definition: glfw3.h:1722
int height
Definition: glfw3.h:1728
unsigned char * pixels
Definition: glfw3.h:1731
int width
Definition: glfw3.h:1725
Video mode type.
Definition: glfw3.h:1659
int greenBits
Definition: glfw3.h:1671
int redBits
Definition: glfw3.h:1668
int width
Definition: glfw3.h:1662
int refreshRate
Definition: glfw3.h:1677
int height
Definition: glfw3.h:1665
int blueBits
Definition: glfw3.h:1674