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 
194  #endif /*__APPLE__*/
195 
196 #elif defined(GLFW_INCLUDE_GLU)
197 
198  #if defined(__APPLE__)
199 
200  #if defined(GLFW_INCLUDE_GLU)
201  #include <OpenGL/glu.h>
202  #endif
203 
204  #else /*__APPLE__*/
205 
206  #if defined(GLFW_INCLUDE_GLU)
207  #include <GL/glu.h>
208  #endif
209 
210  #endif /*__APPLE__*/
211 
212 #elif !defined(GLFW_INCLUDE_NONE) && \
213  !defined(__gl_h_) && \
214  !defined(__gles1_gl_h_) && \
215  !defined(__gles2_gl2_h_) && \
216  !defined(__gles2_gl3_h_) && \
217  !defined(__gles2_gl31_h_) && \
218  !defined(__gles2_gl32_h_) && \
219  !defined(__gl_glcorearb_h_) && \
220  !defined(__gl2_h_) /*legacy*/ && \
221  !defined(__gl3_h_) /*legacy*/ && \
222  !defined(__gl31_h_) /*legacy*/ && \
223  !defined(__gl32_h_) /*legacy*/ && \
224  !defined(__glcorearb_h_) /*legacy*/ && \
225  !defined(__GL_H__) /*non-standard*/ && \
226  !defined(__gltypes_h_) /*non-standard*/ && \
227  !defined(__glee_h_) /*non-standard*/
228 
229  #if defined(__APPLE__)
230 
231  #if !defined(GLFW_INCLUDE_GLEXT)
232  #define GL_GLEXT_LEGACY
233  #endif
234  #include <OpenGL/gl.h>
235 
236  #else /*__APPLE__*/
237 
238  #include <GL/gl.h>
239  #if defined(GLFW_INCLUDE_GLEXT)
240  #include <GL/glext.h>
241  #endif
242 
243  #endif /*__APPLE__*/
244 
245 #endif /* OpenGL and OpenGL ES headers */
246 
247 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
248  /* GLFW_DLL must be defined by applications that are linking against the DLL
249  * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
250  * configuration header when compiling the DLL version of the library.
251  */
252  #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
253 #endif
254 
255 /* GLFWAPI is used to declare public API functions for export
256  * from the DLL / shared library / dynamic library.
257  */
258 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
259  /* We are building GLFW as a Win32 DLL */
260  #define GLFWAPI __declspec(dllexport)
261 #elif defined(_WIN32) && defined(GLFW_DLL)
262  /* We are calling GLFW as a Win32 DLL */
263  #define GLFWAPI __declspec(dllimport)
264 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
265  /* We are building GLFW as a shared / dynamic library */
266  #define GLFWAPI __attribute__((visibility("default")))
267 #else
268  /* We are building or calling GLFW as a static library */
269  #define GLFWAPI
270 #endif
271 
272 
273 /*************************************************************************
274  * GLFW API tokens
275  *************************************************************************/
276 
285 #define GLFW_VERSION_MAJOR 3
286 
292 #define GLFW_VERSION_MINOR 3
293 
299 #define GLFW_VERSION_REVISION 5
300 
310 #define GLFW_TRUE 1
311 
319 #define GLFW_FALSE 0
320 
329 #define GLFW_RELEASE 0
330 
336 #define GLFW_PRESS 1
337 
343 #define GLFW_REPEAT 2
344 
353 #define GLFW_HAT_CENTERED 0
354 #define GLFW_HAT_UP 1
355 #define GLFW_HAT_RIGHT 2
356 #define GLFW_HAT_DOWN 4
357 #define GLFW_HAT_LEFT 8
358 #define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
359 #define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
360 #define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
361 #define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
362 
388 /* The unknown key */
389 #define GLFW_KEY_UNKNOWN -1
390 
391 /* Printable keys */
392 #define GLFW_KEY_SPACE 32
393 #define GLFW_KEY_APOSTROPHE 39 /* ' */
394 #define GLFW_KEY_COMMA 44 /* , */
395 #define GLFW_KEY_MINUS 45 /* - */
396 #define GLFW_KEY_PERIOD 46 /* . */
397 #define GLFW_KEY_SLASH 47 /* / */
398 #define GLFW_KEY_0 48
399 #define GLFW_KEY_1 49
400 #define GLFW_KEY_2 50
401 #define GLFW_KEY_3 51
402 #define GLFW_KEY_4 52
403 #define GLFW_KEY_5 53
404 #define GLFW_KEY_6 54
405 #define GLFW_KEY_7 55
406 #define GLFW_KEY_8 56
407 #define GLFW_KEY_9 57
408 #define GLFW_KEY_SEMICOLON 59 /* ; */
409 #define GLFW_KEY_EQUAL 61 /* = */
410 #define GLFW_KEY_A 65
411 #define GLFW_KEY_B 66
412 #define GLFW_KEY_C 67
413 #define GLFW_KEY_D 68
414 #define GLFW_KEY_E 69
415 #define GLFW_KEY_F 70
416 #define GLFW_KEY_G 71
417 #define GLFW_KEY_H 72
418 #define GLFW_KEY_I 73
419 #define GLFW_KEY_J 74
420 #define GLFW_KEY_K 75
421 #define GLFW_KEY_L 76
422 #define GLFW_KEY_M 77
423 #define GLFW_KEY_N 78
424 #define GLFW_KEY_O 79
425 #define GLFW_KEY_P 80
426 #define GLFW_KEY_Q 81
427 #define GLFW_KEY_R 82
428 #define GLFW_KEY_S 83
429 #define GLFW_KEY_T 84
430 #define GLFW_KEY_U 85
431 #define GLFW_KEY_V 86
432 #define GLFW_KEY_W 87
433 #define GLFW_KEY_X 88
434 #define GLFW_KEY_Y 89
435 #define GLFW_KEY_Z 90
436 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
437 #define GLFW_KEY_BACKSLASH 92 /* \ */
438 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
439 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
440 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
441 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
442 
443 /* Function keys */
444 #define GLFW_KEY_ESCAPE 256
445 #define GLFW_KEY_ENTER 257
446 #define GLFW_KEY_TAB 258
447 #define GLFW_KEY_BACKSPACE 259
448 #define GLFW_KEY_INSERT 260
449 #define GLFW_KEY_DELETE 261
450 #define GLFW_KEY_RIGHT 262
451 #define GLFW_KEY_LEFT 263
452 #define GLFW_KEY_DOWN 264
453 #define GLFW_KEY_UP 265
454 #define GLFW_KEY_PAGE_UP 266
455 #define GLFW_KEY_PAGE_DOWN 267
456 #define GLFW_KEY_HOME 268
457 #define GLFW_KEY_END 269
458 #define GLFW_KEY_CAPS_LOCK 280
459 #define GLFW_KEY_SCROLL_LOCK 281
460 #define GLFW_KEY_NUM_LOCK 282
461 #define GLFW_KEY_PRINT_SCREEN 283
462 #define GLFW_KEY_PAUSE 284
463 #define GLFW_KEY_F1 290
464 #define GLFW_KEY_F2 291
465 #define GLFW_KEY_F3 292
466 #define GLFW_KEY_F4 293
467 #define GLFW_KEY_F5 294
468 #define GLFW_KEY_F6 295
469 #define GLFW_KEY_F7 296
470 #define GLFW_KEY_F8 297
471 #define GLFW_KEY_F9 298
472 #define GLFW_KEY_F10 299
473 #define GLFW_KEY_F11 300
474 #define GLFW_KEY_F12 301
475 #define GLFW_KEY_F13 302
476 #define GLFW_KEY_F14 303
477 #define GLFW_KEY_F15 304
478 #define GLFW_KEY_F16 305
479 #define GLFW_KEY_F17 306
480 #define GLFW_KEY_F18 307
481 #define GLFW_KEY_F19 308
482 #define GLFW_KEY_F20 309
483 #define GLFW_KEY_F21 310
484 #define GLFW_KEY_F22 311
485 #define GLFW_KEY_F23 312
486 #define GLFW_KEY_F24 313
487 #define GLFW_KEY_F25 314
488 #define GLFW_KEY_KP_0 320
489 #define GLFW_KEY_KP_1 321
490 #define GLFW_KEY_KP_2 322
491 #define GLFW_KEY_KP_3 323
492 #define GLFW_KEY_KP_4 324
493 #define GLFW_KEY_KP_5 325
494 #define GLFW_KEY_KP_6 326
495 #define GLFW_KEY_KP_7 327
496 #define GLFW_KEY_KP_8 328
497 #define GLFW_KEY_KP_9 329
498 #define GLFW_KEY_KP_DECIMAL 330
499 #define GLFW_KEY_KP_DIVIDE 331
500 #define GLFW_KEY_KP_MULTIPLY 332
501 #define GLFW_KEY_KP_SUBTRACT 333
502 #define GLFW_KEY_KP_ADD 334
503 #define GLFW_KEY_KP_ENTER 335
504 #define GLFW_KEY_KP_EQUAL 336
505 #define GLFW_KEY_LEFT_SHIFT 340
506 #define GLFW_KEY_LEFT_CONTROL 341
507 #define GLFW_KEY_LEFT_ALT 342
508 #define GLFW_KEY_LEFT_SUPER 343
509 #define GLFW_KEY_RIGHT_SHIFT 344
510 #define GLFW_KEY_RIGHT_CONTROL 345
511 #define GLFW_KEY_RIGHT_ALT 346
512 #define GLFW_KEY_RIGHT_SUPER 347
513 #define GLFW_KEY_MENU 348
514 
515 #define GLFW_KEY_LAST GLFW_KEY_MENU
516 
531 #define GLFW_MOD_SHIFT 0x0001
532 
536 #define GLFW_MOD_CONTROL 0x0002
537 
541 #define GLFW_MOD_ALT 0x0004
542 
546 #define GLFW_MOD_SUPER 0x0008
547 
552 #define GLFW_MOD_CAPS_LOCK 0x0010
553 
558 #define GLFW_MOD_NUM_LOCK 0x0020
559 
569 #define GLFW_MOUSE_BUTTON_1 0
570 #define GLFW_MOUSE_BUTTON_2 1
571 #define GLFW_MOUSE_BUTTON_3 2
572 #define GLFW_MOUSE_BUTTON_4 3
573 #define GLFW_MOUSE_BUTTON_5 4
574 #define GLFW_MOUSE_BUTTON_6 5
575 #define GLFW_MOUSE_BUTTON_7 6
576 #define GLFW_MOUSE_BUTTON_8 7
577 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
578 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
579 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
580 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
581 
590 #define GLFW_JOYSTICK_1 0
591 #define GLFW_JOYSTICK_2 1
592 #define GLFW_JOYSTICK_3 2
593 #define GLFW_JOYSTICK_4 3
594 #define GLFW_JOYSTICK_5 4
595 #define GLFW_JOYSTICK_6 5
596 #define GLFW_JOYSTICK_7 6
597 #define GLFW_JOYSTICK_8 7
598 #define GLFW_JOYSTICK_9 8
599 #define GLFW_JOYSTICK_10 9
600 #define GLFW_JOYSTICK_11 10
601 #define GLFW_JOYSTICK_12 11
602 #define GLFW_JOYSTICK_13 12
603 #define GLFW_JOYSTICK_14 13
604 #define GLFW_JOYSTICK_15 14
605 #define GLFW_JOYSTICK_16 15
606 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
607 
616 #define GLFW_GAMEPAD_BUTTON_A 0
617 #define GLFW_GAMEPAD_BUTTON_B 1
618 #define GLFW_GAMEPAD_BUTTON_X 2
619 #define GLFW_GAMEPAD_BUTTON_Y 3
620 #define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
621 #define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
622 #define GLFW_GAMEPAD_BUTTON_BACK 6
623 #define GLFW_GAMEPAD_BUTTON_START 7
624 #define GLFW_GAMEPAD_BUTTON_GUIDE 8
625 #define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
626 #define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
627 #define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
628 #define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
629 #define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
630 #define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
631 #define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
632 
633 #define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
634 #define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
635 #define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
636 #define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
637 
646 #define GLFW_GAMEPAD_AXIS_LEFT_X 0
647 #define GLFW_GAMEPAD_AXIS_LEFT_Y 1
648 #define GLFW_GAMEPAD_AXIS_RIGHT_X 2
649 #define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
650 #define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
651 #define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
652 #define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
653 
668 #define GLFW_NO_ERROR 0
669 
677 #define GLFW_NOT_INITIALIZED 0x00010001
678 
687 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
688 
695 #define GLFW_INVALID_ENUM 0x00010003
696 
706 #define GLFW_INVALID_VALUE 0x00010004
707 
714 #define GLFW_OUT_OF_MEMORY 0x00010005
715 
730 #define GLFW_API_UNAVAILABLE 0x00010006
731 
747 #define GLFW_VERSION_UNAVAILABLE 0x00010007
748 
758 #define GLFW_PLATFORM_ERROR 0x00010008
759 
777 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
778 
785 #define GLFW_NO_WINDOW_CONTEXT 0x0001000A
786 
795 #define GLFW_FOCUSED 0x00020001
796 
800 #define GLFW_ICONIFIED 0x00020002
801 
806 #define GLFW_RESIZABLE 0x00020003
807 
812 #define GLFW_VISIBLE 0x00020004
813 
818 #define GLFW_DECORATED 0x00020005
819 
824 #define GLFW_AUTO_ICONIFY 0x00020006
825 
830 #define GLFW_FLOATING 0x00020007
831 
836 #define GLFW_MAXIMIZED 0x00020008
837 
841 #define GLFW_CENTER_CURSOR 0x00020009
842 
848 #define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
849 
853 #define GLFW_HOVERED 0x0002000B
854 
859 #define GLFW_FOCUS_ON_SHOW 0x0002000C
860 
865 #define GLFW_RED_BITS 0x00021001
866 
870 #define GLFW_GREEN_BITS 0x00021002
871 
875 #define GLFW_BLUE_BITS 0x00021003
876 
880 #define GLFW_ALPHA_BITS 0x00021004
881 
885 #define GLFW_DEPTH_BITS 0x00021005
886 
890 #define GLFW_STENCIL_BITS 0x00021006
891 
895 #define GLFW_ACCUM_RED_BITS 0x00021007
896 
900 #define GLFW_ACCUM_GREEN_BITS 0x00021008
901 
905 #define GLFW_ACCUM_BLUE_BITS 0x00021009
906 
910 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
911 
915 #define GLFW_AUX_BUFFERS 0x0002100B
916 
920 #define GLFW_STEREO 0x0002100C
921 
925 #define GLFW_SAMPLES 0x0002100D
926 
930 #define GLFW_SRGB_CAPABLE 0x0002100E
931 
935 #define GLFW_REFRESH_RATE 0x0002100F
936 
940 #define GLFW_DOUBLEBUFFER 0x00021010
941 
947 #define GLFW_CLIENT_API 0x00022001
948 
953 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
954 
959 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
960 
965 #define GLFW_CONTEXT_REVISION 0x00022004
966 
971 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
972 
977 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
978 
983 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
984 
989 #define GLFW_OPENGL_PROFILE 0x00022008
990 
995 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
996 
1001 #define GLFW_CONTEXT_NO_ERROR 0x0002200A
1002 
1007 #define GLFW_CONTEXT_CREATION_API 0x0002200B
1008 
1011 #define GLFW_SCALE_TO_MONITOR 0x0002200C
1012 
1015 #define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
1016 
1019 #define GLFW_COCOA_FRAME_NAME 0x00023002
1020 
1023 #define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
1024 
1027 #define GLFW_X11_CLASS_NAME 0x00024001
1028 
1031 #define GLFW_X11_INSTANCE_NAME 0x00024002
1034 #define GLFW_NO_API 0
1035 #define GLFW_OPENGL_API 0x00030001
1036 #define GLFW_OPENGL_ES_API 0x00030002
1037 
1038 #define GLFW_NO_ROBUSTNESS 0
1039 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
1040 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
1041 
1042 #define GLFW_OPENGL_ANY_PROFILE 0
1043 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
1044 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
1046 #define GLFW_CURSOR 0x00033001
1047 #define GLFW_STICKY_KEYS 0x00033002
1048 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
1049 #define GLFW_LOCK_KEY_MODS 0x00033004
1050 #define GLFW_RAW_MOUSE_MOTION 0x00033005
1051 
1052 #define GLFW_CURSOR_NORMAL 0x00034001
1053 #define GLFW_CURSOR_HIDDEN 0x00034002
1054 #define GLFW_CURSOR_DISABLED 0x00034003
1055 
1056 #define GLFW_ANY_RELEASE_BEHAVIOR 0
1057 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
1058 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
1059 
1060 #define GLFW_NATIVE_CONTEXT_API 0x00036001
1061 #define GLFW_EGL_CONTEXT_API 0x00036002
1062 #define GLFW_OSMESA_CONTEXT_API 0x00036003
1063 
1076 #define GLFW_ARROW_CURSOR 0x00036001
1081 #define GLFW_IBEAM_CURSOR 0x00036002
1086 #define GLFW_CROSSHAIR_CURSOR 0x00036003
1091 #define GLFW_HAND_CURSOR 0x00036004
1096 #define GLFW_HRESIZE_CURSOR 0x00036005
1101 #define GLFW_VRESIZE_CURSOR 0x00036006
1102 
1104 #define GLFW_CONNECTED 0x00040001
1105 #define GLFW_DISCONNECTED 0x00040002
1106 
1113 #define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
1118 #define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
1123 #define GLFW_COCOA_MENUBAR 0x00051002
1124 
1126 #define GLFW_DONT_CARE -1
1127 
1128 
1129 /*************************************************************************
1130  * GLFW API types
1131  *************************************************************************/
1132 
1145 typedef void (*GLFWglproc)(void);
1146 
1159 typedef void (*GLFWvkproc)(void);
1160 
1171 typedef struct GLFWmonitor GLFWmonitor;
1172 
1183 typedef struct GLFWwindow GLFWwindow;
1184 
1195 typedef struct GLFWcursor GLFWcursor;
1196 
1219 typedef void (* GLFWerrorfun)(int,const char*);
1220 
1242 typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
1243 
1264 typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
1265 
1284 typedef void (* GLFWwindowclosefun)(GLFWwindow*);
1285 
1304 typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
1305 
1325 typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
1326 
1346 typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
1347 
1367 typedef void (* GLFWwindowmaximizefun)(GLFWwindow*,int);
1368 
1388 typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
1389 
1409 typedef void (* GLFWwindowcontentscalefun)(GLFWwindow*,float,float);
1410 
1435 typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
1436 
1458 typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
1459 
1479 typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
1480 
1500 typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
1501 
1526 typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
1527 
1547 typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
1548 
1574 typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
1575 
1598 typedef void (* GLFWdropfun)(GLFWwindow*,int,const char*[]);
1599 
1619 typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
1620 
1640 typedef void (* GLFWjoystickfun)(int,int);
1641 
1655 typedef struct GLFWvidmode
1656 {
1659  int width;
1662  int height;
1665  int redBits;
1668  int greenBits;
1671  int blueBits;
1674  int refreshRate;
1675 } GLFWvidmode;
1676 
1689 typedef struct GLFWgammaramp
1690 {
1693  unsigned short* red;
1696  unsigned short* green;
1699  unsigned short* blue;
1702  unsigned int size;
1703 } GLFWgammaramp;
1704 
1718 typedef struct GLFWimage
1719 {
1722  int width;
1725  int height;
1728  unsigned char* pixels;
1729 } GLFWimage;
1730 
1742 typedef struct GLFWgamepadstate
1743 {
1747  unsigned char buttons[15];
1751  float axes[6];
1753 
1754 
1755 /*************************************************************************
1756  * GLFW API functions
1757  *************************************************************************/
1758 
1795 GLFWAPI int glfwInit(void);
1796 
1829 GLFWAPI void glfwTerminate(void);
1830 
1861 GLFWAPI void glfwInitHint(int hint, int value);
1862 
1888 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1889 
1919 GLFWAPI const char* glfwGetVersionString(void);
1920 
1950 GLFWAPI int glfwGetError(const char** description);
1951 
1997 
2025 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
2026 
2049 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
2050 
2074 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
2075 
2105 GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
2106 
2139 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
2140 
2171 GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
2172 
2197 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
2198 
2223 GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
2224 
2247 GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
2248 
2278 
2311 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
2312 
2339 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
2340 
2372 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
2373 
2402 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
2403 
2443 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
2444 
2462 GLFWAPI void glfwDefaultWindowHints(void);
2463 
2497 GLFWAPI void glfwWindowHint(int hint, int value);
2498 
2535 GLFWAPI void glfwWindowHintString(int hint, const char* value);
2536 
2689 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
2690 
2718 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
2719 
2738 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
2739 
2760 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
2761 
2785 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
2786 
2832 GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
2833 
2864 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
2865 
2899 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
2900 
2929 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
2930 
2972 GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
2973 
3015 GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
3016 
3056 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
3057 
3085 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
3086 
3122 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
3123 
3155 GLFWAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
3156 
3182 GLFWAPI float glfwGetWindowOpacity(GLFWwindow* window);
3183 
3211 GLFWAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
3212 
3242 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
3243 
3269 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
3270 
3294 GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
3295 
3321 GLFWAPI void glfwShowWindow(GLFWwindow* window);
3322 
3343 GLFWAPI void glfwHideWindow(GLFWwindow* window);
3344 
3382 GLFWAPI void glfwFocusWindow(GLFWwindow* window);
3383 
3409 GLFWAPI void glfwRequestWindowAttention(GLFWwindow* window);
3410 
3431 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
3432 
3490 GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
3491 
3524 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
3525 
3561 GLFWAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
3562 
3584 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
3585 
3605 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
3606 
3641 
3673 
3713 
3749 
3784 
3817 
3847 
3877 
3908 
3945 GLFWAPI void glfwPollEvents(void);
3946 
3990 GLFWAPI void glfwWaitEvents(void);
3991 
4039 GLFWAPI void glfwWaitEventsTimeout(double timeout);
4040 
4059 GLFWAPI void glfwPostEmptyEvent(void);
4060 
4084 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
4085 
4146 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
4147 
4175 GLFWAPI int glfwRawMouseMotionSupported(void);
4176 
4243 GLFWAPI const char* glfwGetKeyName(int key, int scancode);
4244 
4267 GLFWAPI int glfwGetKeyScancode(int key);
4268 
4307 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
4308 
4336 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
4337 
4374 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
4375 
4414 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
4415 
4452 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
4453 
4475 GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
4476 
4502 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
4503 
4529 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
4530 
4579 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
4580 
4622 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback);
4623 
4665 
4702 
4734 
4765 
4798 GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
4799 
4835 GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback);
4836 
4859 GLFWAPI int glfwJoystickPresent(int jid);
4860 
4892 GLFWAPI const float* glfwGetJoystickAxes(int jid, int* count);
4893 
4933 GLFWAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
4934 
4990 GLFWAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
4991 
5021 GLFWAPI const char* glfwGetJoystickName(int jid);
5022 
5062 GLFWAPI const char* glfwGetJoystickGUID(int jid);
5063 
5088 GLFWAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
5089 
5112 GLFWAPI void* glfwGetJoystickUserPointer(int jid);
5113 
5140 GLFWAPI int glfwJoystickIsGamepad(int jid);
5141 
5177 
5210 GLFWAPI int glfwUpdateGamepadMappings(const char* string);
5211 
5240 GLFWAPI const char* glfwGetGamepadName(int jid);
5241 
5278 GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
5279 
5303 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
5304 
5333 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
5334 
5363 GLFWAPI double glfwGetTime(void);
5364 
5393 GLFWAPI void glfwSetTime(double time);
5394 
5415 GLFWAPI uint64_t glfwGetTimerValue(void);
5416 
5435 GLFWAPI uint64_t glfwGetTimerFrequency(void);
5436 
5473 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
5474 
5494 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
5495 
5528 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
5529 
5574 GLFWAPI void glfwSwapInterval(int interval);
5575 
5612 GLFWAPI int glfwExtensionSupported(const char* extension);
5613 
5654 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
5655 
5682 GLFWAPI int glfwVulkanSupported(void);
5683 
5729 GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
5730 
5731 #if defined(VK_VERSION_1_0)
5732 
5772 GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
5773 
5809 GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
5810 
5870 GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
5871 
5872 #endif /*VK_VERSION_1_0*/
5873 
5874 
5875 /*************************************************************************
5876  * Global definition cleanup
5877  *************************************************************************/
5878 
5879 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
5880 
5881 #ifdef GLFW_WINGDIAPI_DEFINED
5882  #undef WINGDIAPI
5883  #undef GLFW_WINGDIAPI_DEFINED
5884 #endif
5885 
5886 #ifdef GLFW_CALLBACK_DEFINED
5887  #undef CALLBACK
5888  #undef GLFW_CALLBACK_DEFINED
5889 #endif
5890 
5891 /* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
5892  * defined by some gl.h variants (OpenBSD) so define it after if needed.
5893  */
5894 #ifndef GLAPIENTRY
5895  #define GLAPIENTRY APIENTRY
5896 #endif
5897 
5898 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
5899 
5900 
5901 #ifdef __cplusplus
5902 }
5903 #endif
5904 
5905 #endif /* _glfw3_h_ */
5906 
glfwGetJoystickUserPointer
void * glfwGetJoystickUserPointer(int jid)
Returns the user pointer of the specified joystick.
glfwGetGamepadState
int glfwGetGamepadState(int jid, GLFWgamepadstate *state)
Retrieves the state of the specified joystick remapped as a gamepad.
glfwGetError
int glfwGetError(const char **description)
Returns and clears the last error for the calling thread.
glfwSetFramebufferSizeCallback
GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)
Sets the framebuffer resize callback for the specified window.
glfwSetWindowSize
void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the content area of the specified window.
GLFWwindowrefreshfun
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function pointer type for window content refresh callbacks.
Definition: glfw3.h:1299
GLFWmousebuttonfun
void(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)
The function pointer type for mouse button callbacks.
Definition: glfw3.h:1430
GLFWgammaramp
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
GLFWimage
struct GLFWimage GLFWimage
Image data.
glfwGetTime
double glfwGetTime(void)
Returns the GLFW time.
glfwSetWindowPos
void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the content area of the specified window.
glfwSetCursorPos
void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)
Sets the position of the cursor, relative to the content area of the window.
glfwUpdateGamepadMappings
int glfwUpdateGamepadMappings(const char *string)
Adds the specified SDL_GameControllerDB gamepad mappings.
glfwGetJoystickName
const char * glfwGetJoystickName(int jid)
Returns the name of the specified joystick.
GLFWcursorposfun
void(* GLFWcursorposfun)(GLFWwindow *, double, double)
The function pointer type for cursor position callbacks.
Definition: glfw3.h:1453
glfwSetWindowAttrib
void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)
Sets an attribute of the specified window.
glfwRestoreWindow
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
glfwGetMouseButton
int glfwGetMouseButton(GLFWwindow *window, int button)
Returns the last reported state of a mouse button for the specified window.
glfwGetKeyScancode
int glfwGetKeyScancode(int key)
Returns the platform-specific scancode of the specified key.
glfwGetMonitorContentScale
void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for the specified monitor.
GLFWcharmodsfun
void(* GLFWcharmodsfun)(GLFWwindow *, unsigned int, int)
The function pointer type for Unicode character with modifiers callbacks.
Definition: glfw3.h:1569
glfwCreateCursor
GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
glfwGetWindowContentScale
void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)
Retrieves the content scale for the specified window.
glfwGetKeyName
const char * glfwGetKeyName(int key, int scancode)
Returns the layout-specific name of the specified printable key.
glfwSetWindowRefreshCallback
GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
glfwSetMonitorCallback
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
GLFWimage::height
int height
Definition: glfw3.h:1720
GLFWgammaramp
Gamma ramp.
Definition: glfw3.h:1684
glfwSetInputMode
void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
GLFWerrorfun
void(* GLFWerrorfun)(int, const char *)
The function pointer type for error callbacks.
Definition: glfw3.h:1214
GLFWkeyfun
void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)
The function pointer type for keyboard key callbacks.
Definition: glfw3.h:1521
glfwSetWindowSizeCallback
GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)
Sets the size callback for the specified window.
GLFWwindowmaximizefun
void(* GLFWwindowmaximizefun)(GLFWwindow *, int)
The function pointer type for window maximize callbacks.
Definition: glfw3.h:1362
glfwGetCurrentContext
GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
glfwSetWindowMonitor
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.
glfwGetWindowPos
void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the content area of the specified window.
glfwSetWindowMaximizeCallback
GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)
Sets the maximize callback for the specified window.
GLFWcursorenterfun
void(* GLFWcursorenterfun)(GLFWwindow *, int)
The function pointer type for cursor enter/leave callbacks.
Definition: glfw3.h:1474
GLFWvkproc
void(* GLFWvkproc)(void)
Vulkan API function pointer type.
Definition: glfw3.h:1154
glfwGetInputMode
int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
glfwSetWindowTitle
void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
GLFWwindow
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:1178
glfwGetMonitorWorkarea
void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
glfwSetJoystickUserPointer
void glfwSetJoystickUserPointer(int jid, void *pointer)
Sets the user pointer of the specified joystick.
glfwTerminate
void glfwTerminate(void)
Terminates the GLFW library.
glfwExtensionSupported
int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
glfwSetMouseButtonCallback
GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun callback)
Sets the mouse button callback.
glfwSwapBuffers
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
glfwMakeContextCurrent
void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
glfwSwapInterval
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
glfwGetJoystickHats
const unsigned char * glfwGetJoystickHats(int jid, int *count)
Returns the state of all hats of the specified joystick.
GLFWvidmode::blueBits
int blueBits
Definition: glfw3.h:1666
glfwGetWindowFrameSize
void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
glfwGetGamepadName
const char * glfwGetGamepadName(int jid)
Returns the human-readable gamepad name for the specified joystick.
glfwWindowShouldClose
int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
glfwSetTime
void glfwSetTime(double time)
Sets the GLFW time.
glfwSetGammaRamp
void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
glfwGetCursorPos
void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)
Retrieves the position of the cursor relative to the content area of the window.
glfwInitHint
void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
glfwJoystickIsGamepad
int glfwJoystickIsGamepad(int jid)
Returns whether the specified joystick has a gamepad mapping.
glfwPollEvents
void glfwPollEvents(void)
Processes all pending events.
glfwWaitEvents
void glfwWaitEvents(void)
Waits until events are queued and processes them.
glfwDestroyCursor
void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
glfwGetJoystickButtons
const unsigned char * glfwGetJoystickButtons(int jid, int *count)
Returns the state of all buttons of the specified joystick.
GLFWscrollfun
void(* GLFWscrollfun)(GLFWwindow *, double, double)
The function pointer type for scroll callbacks.
Definition: glfw3.h:1495
glfwGetMonitorName
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
glfwSetCharCallback
GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun callback)
Sets the Unicode character callback.
glfwSetWindowSizeLimits
void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
glfwGetPrimaryMonitor
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
GLFWmonitorfun
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function pointer type for monitor configuration callbacks.
Definition: glfw3.h:1614
GLFWjoystickfun
void(* GLFWjoystickfun)(int, int)
The function pointer type for joystick configuration callbacks.
Definition: glfw3.h:1635
glfwGetJoystickGUID
const char * glfwGetJoystickGUID(int jid)
Returns the SDL compatible GUID of the specified joystick.
glfwSetWindowFocusCallback
GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)
Sets the focus callback for the specified window.
glfwGetRequiredInstanceExtensions
const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
glfwSetWindowCloseCallback
GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)
Sets the close callback for the specified window.
glfwFocusWindow
void glfwFocusWindow(GLFWwindow *window)
Brings the specified window to front and sets input focus.
GLFWglproc
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:1140
glfwGetClipboardString
const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
GLFWvidmode::height
int height
Definition: glfw3.h:1657
glfwSetWindowContentScaleCallback
GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)
Sets the window content scale callback for the specified window.
glfwSetWindowPosCallback
GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)
Sets the position callback for the specified window.
glfwSetCursorEnterCallback
GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun callback)
Sets the cursor enter/leave callback.
glfwSetCursor
void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)
Sets the cursor for the window.
GLFWframebuffersizefun
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function pointer type for framebuffer size callbacks.
Definition: glfw3.h:1383
glfwGetMonitors
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
glfwRawMouseMotionSupported
int glfwRawMouseMotionSupported(void)
Returns whether raw mouse motion is supported.
glfwSetMonitorUserPointer
void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer of the specified monitor.
GLFWimage::pixels
unsigned char * pixels
Definition: glfw3.h:1723
glfwGetVideoModes
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
glfwShowWindow
void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
GLFWgammaramp::green
unsigned short * green
Definition: glfw3.h:1691
GLFWgamepadstate
struct GLFWgamepadstate GLFWgamepadstate
Gamepad input state.
glfwRequestWindowAttention
void glfwRequestWindowAttention(GLFWwindow *window)
Requests user attention to the specified window.
glfwJoystickPresent
int glfwJoystickPresent(int jid)
Returns whether the specified joystick is present.
GLFWgamepadstate::buttons
unsigned char buttons[15]
Definition: glfw3.h:1742
glfwVulkanSupported
int glfwVulkanSupported(void)
Returns whether the Vulkan loader and an ICD have been found.
glfwGetMonitorPos
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
glfwHideWindow
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
GLFWvidmode::width
int width
Definition: glfw3.h:1654
glfwMaximizeWindow
void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
GLFWgammaramp::size
unsigned int size
Definition: glfw3.h:1697
glfwCreateWindowSurface
VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)
Creates a Vulkan surface for the specified window.
GLFWcharfun
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function pointer type for Unicode character callbacks.
Definition: glfw3.h:1542
GLFWwindowcontentscalefun
void(* GLFWwindowcontentscalefun)(GLFWwindow *, float, float)
The function pointer type for window content scale callbacks.
Definition: glfw3.h:1404
glfwGetTimerValue
uint64_t glfwGetTimerValue(void)
Returns the current value of the raw timer.
GLFWgammaramp::red
unsigned short * red
Definition: glfw3.h:1688
glfwDefaultWindowHints
void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
glfwSetCursorPosCallback
GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)
Sets the cursor position callback.
glfwGetTimerFrequency
uint64_t glfwGetTimerFrequency(void)
Returns the frequency, in Hz, of the raw timer.
glfwSetWindowIcon
void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)
Sets the icon for the specified window.
GLFWimage::width
int width
Definition: glfw3.h:1717
glfwCreateWindow
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
glfwSetCharModsCallback
GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun callback)
Sets the Unicode character with modifiers callback.
glfwSetWindowShouldClose
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
glfwSetWindowAspectRatio
void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
glfwGetMonitorUserPointer
void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
glfwWaitEventsTimeout
void glfwWaitEventsTimeout(double timeout)
Waits with timeout until events are queued and processes them.
GLFWvidmode::greenBits
int greenBits
Definition: glfw3.h:1663
glfwGetMonitorPhysicalSize
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
glfwSetJoystickCallback
GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)
Sets the joystick configuration callback.
GLFWwindowiconifyfun
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function pointer type for window iconify callbacks.
Definition: glfw3.h:1341
GLFWgamepadstate
Gamepad input state.
Definition: glfw3.h:1737
GLFWvidmode
struct GLFWvidmode GLFWvidmode
Video mode type.
GLFWdropfun
void(* GLFWdropfun)(GLFWwindow *, int, const char *[])
The function pointer type for path drop callbacks.
Definition: glfw3.h:1593
GLFWcursor
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition: glfw3.h:1190
glfwCreateStandardCursor
GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
glfwInit
int glfwInit(void)
Initializes the GLFW library.
GLFWgamepadstate::axes
float axes[6]
Definition: glfw3.h:1746
glfwWindowHintString
void glfwWindowHintString(int hint, const char *value)
Sets the specified window hint to the desired value.
glfwGetWindowOpacity
float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
GLFWimage
Image data.
Definition: glfw3.h:1713
glfwSetWindowOpacity
void glfwSetWindowOpacity(GLFWwindow *window, float opacity)
Sets the opacity of the whole window.
glfwGetProcAddress
GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
glfwGetGammaRamp
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
glfwSetDropCallback
GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)
Sets the path drop callback.
GLFWwindowsizefun
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function pointer type for window size callbacks.
Definition: glfw3.h:1259
GLFWgammaramp::blue
unsigned short * blue
Definition: glfw3.h:1694
glfwGetWindowMonitor
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
glfwSetKeyCallback
GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)
Sets the key callback.
glfwIconifyWindow
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
glfwGetVersionString
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
glfwSetWindowUserPointer
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
glfwPostEmptyEvent
void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
glfwGetWindowAttrib
int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
GLFWwindowfocusfun
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function pointer type for window focus callbacks.
Definition: glfw3.h:1320
glfwSetWindowIconifyCallback
GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)
Sets the iconify callback for the specified window.
glfwSetScrollCallback
GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)
Sets the scroll callback.
glfwGetKey
int glfwGetKey(GLFWwindow *window, int key)
Returns the last reported state of a keyboard key for the specified window.
glfwGetWindowSize
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the content area of the specified window.
glfwGetJoystickAxes
const float * glfwGetJoystickAxes(int jid, int *count)
Returns the values of all axes of the specified joystick.
GLFWvidmode
Video mode type.
Definition: glfw3.h:1650
glfwSetErrorCallback
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
glfwGetFramebufferSize
void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
GLFWwindowclosefun
void(* GLFWwindowclosefun)(GLFWwindow *)
The function pointer type for window close callbacks.
Definition: glfw3.h:1279
GLFWvidmode::redBits
int redBits
Definition: glfw3.h:1660
glfwWindowHint
void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
glfwGetVersion
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
glfwGetPhysicalDevicePresentationSupport
int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)
Returns whether the specified queue family can present images.
glfwSetGamma
void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
GLFWwindowposfun
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function pointer type for window position callbacks.
Definition: glfw3.h:1237
glfwGetVideoMode
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
glfwSetClipboardString
void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
glfwDestroyWindow
void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
GLFWmonitor
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:1166
GLFWvidmode::refreshRate
int refreshRate
Definition: glfw3.h:1669
glfwGetWindowUserPointer
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
glfwGetInstanceProcAddress
GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char *procname)
Returns the address of the specified Vulkan instance function.