raygui-widget
glfw3.h
1 /*************************************************************************
2  * GLFW 3.4 - 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 a GLFW Win32 DLL */
266  #define GLFWAPI __declspec(dllimport)
267 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
268  /* We are building GLFW as a Unix shared library */
269  #define GLFWAPI __attribute__((visibility("default")))
270 #else
271  #define GLFWAPI
272 #endif
273 
274 
275 /*************************************************************************
276  * GLFW API tokens
277  *************************************************************************/
278 
287 #define GLFW_VERSION_MAJOR 3
288 
294 #define GLFW_VERSION_MINOR 4
295 
301 #define GLFW_VERSION_REVISION 0
302 
312 #define GLFW_TRUE 1
313 
321 #define GLFW_FALSE 0
322 
331 #define GLFW_RELEASE 0
332 
338 #define GLFW_PRESS 1
339 
345 #define GLFW_REPEAT 2
346 
355 #define GLFW_HAT_CENTERED 0
356 #define GLFW_HAT_UP 1
357 #define GLFW_HAT_RIGHT 2
358 #define GLFW_HAT_DOWN 4
359 #define GLFW_HAT_LEFT 8
360 #define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
361 #define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
362 #define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
363 #define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
364 
367 #define GLFW_KEY_UNKNOWN -1
368 
395 /* Printable keys */
396 #define GLFW_KEY_SPACE 32
397 #define GLFW_KEY_APOSTROPHE 39 /* ' */
398 #define GLFW_KEY_COMMA 44 /* , */
399 #define GLFW_KEY_MINUS 45 /* - */
400 #define GLFW_KEY_PERIOD 46 /* . */
401 #define GLFW_KEY_SLASH 47 /* / */
402 #define GLFW_KEY_0 48
403 #define GLFW_KEY_1 49
404 #define GLFW_KEY_2 50
405 #define GLFW_KEY_3 51
406 #define GLFW_KEY_4 52
407 #define GLFW_KEY_5 53
408 #define GLFW_KEY_6 54
409 #define GLFW_KEY_7 55
410 #define GLFW_KEY_8 56
411 #define GLFW_KEY_9 57
412 #define GLFW_KEY_SEMICOLON 59 /* ; */
413 #define GLFW_KEY_EQUAL 61 /* = */
414 #define GLFW_KEY_A 65
415 #define GLFW_KEY_B 66
416 #define GLFW_KEY_C 67
417 #define GLFW_KEY_D 68
418 #define GLFW_KEY_E 69
419 #define GLFW_KEY_F 70
420 #define GLFW_KEY_G 71
421 #define GLFW_KEY_H 72
422 #define GLFW_KEY_I 73
423 #define GLFW_KEY_J 74
424 #define GLFW_KEY_K 75
425 #define GLFW_KEY_L 76
426 #define GLFW_KEY_M 77
427 #define GLFW_KEY_N 78
428 #define GLFW_KEY_O 79
429 #define GLFW_KEY_P 80
430 #define GLFW_KEY_Q 81
431 #define GLFW_KEY_R 82
432 #define GLFW_KEY_S 83
433 #define GLFW_KEY_T 84
434 #define GLFW_KEY_U 85
435 #define GLFW_KEY_V 86
436 #define GLFW_KEY_W 87
437 #define GLFW_KEY_X 88
438 #define GLFW_KEY_Y 89
439 #define GLFW_KEY_Z 90
440 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
441 #define GLFW_KEY_BACKSLASH 92 /* \ */
442 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
443 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
444 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
445 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
446 
447 /* Function keys */
448 #define GLFW_KEY_ESCAPE 256
449 #define GLFW_KEY_ENTER 257
450 #define GLFW_KEY_TAB 258
451 #define GLFW_KEY_BACKSPACE 259
452 #define GLFW_KEY_INSERT 260
453 #define GLFW_KEY_DELETE 261
454 #define GLFW_KEY_RIGHT 262
455 #define GLFW_KEY_LEFT 263
456 #define GLFW_KEY_DOWN 264
457 #define GLFW_KEY_UP 265
458 #define GLFW_KEY_PAGE_UP 266
459 #define GLFW_KEY_PAGE_DOWN 267
460 #define GLFW_KEY_HOME 268
461 #define GLFW_KEY_END 269
462 #define GLFW_KEY_CAPS_LOCK 280
463 #define GLFW_KEY_SCROLL_LOCK 281
464 #define GLFW_KEY_NUM_LOCK 282
465 #define GLFW_KEY_PRINT_SCREEN 283
466 #define GLFW_KEY_PAUSE 284
467 #define GLFW_KEY_F1 290
468 #define GLFW_KEY_F2 291
469 #define GLFW_KEY_F3 292
470 #define GLFW_KEY_F4 293
471 #define GLFW_KEY_F5 294
472 #define GLFW_KEY_F6 295
473 #define GLFW_KEY_F7 296
474 #define GLFW_KEY_F8 297
475 #define GLFW_KEY_F9 298
476 #define GLFW_KEY_F10 299
477 #define GLFW_KEY_F11 300
478 #define GLFW_KEY_F12 301
479 #define GLFW_KEY_F13 302
480 #define GLFW_KEY_F14 303
481 #define GLFW_KEY_F15 304
482 #define GLFW_KEY_F16 305
483 #define GLFW_KEY_F17 306
484 #define GLFW_KEY_F18 307
485 #define GLFW_KEY_F19 308
486 #define GLFW_KEY_F20 309
487 #define GLFW_KEY_F21 310
488 #define GLFW_KEY_F22 311
489 #define GLFW_KEY_F23 312
490 #define GLFW_KEY_F24 313
491 #define GLFW_KEY_F25 314
492 #define GLFW_KEY_KP_0 320
493 #define GLFW_KEY_KP_1 321
494 #define GLFW_KEY_KP_2 322
495 #define GLFW_KEY_KP_3 323
496 #define GLFW_KEY_KP_4 324
497 #define GLFW_KEY_KP_5 325
498 #define GLFW_KEY_KP_6 326
499 #define GLFW_KEY_KP_7 327
500 #define GLFW_KEY_KP_8 328
501 #define GLFW_KEY_KP_9 329
502 #define GLFW_KEY_KP_DECIMAL 330
503 #define GLFW_KEY_KP_DIVIDE 331
504 #define GLFW_KEY_KP_MULTIPLY 332
505 #define GLFW_KEY_KP_SUBTRACT 333
506 #define GLFW_KEY_KP_ADD 334
507 #define GLFW_KEY_KP_ENTER 335
508 #define GLFW_KEY_KP_EQUAL 336
509 #define GLFW_KEY_LEFT_SHIFT 340
510 #define GLFW_KEY_LEFT_CONTROL 341
511 #define GLFW_KEY_LEFT_ALT 342
512 #define GLFW_KEY_LEFT_SUPER 343
513 #define GLFW_KEY_RIGHT_SHIFT 344
514 #define GLFW_KEY_RIGHT_CONTROL 345
515 #define GLFW_KEY_RIGHT_ALT 346
516 #define GLFW_KEY_RIGHT_SUPER 347
517 #define GLFW_KEY_MENU 348
518 
519 #define GLFW_KEY_LAST GLFW_KEY_MENU
520 
535 #define GLFW_MOD_SHIFT 0x0001
536 
540 #define GLFW_MOD_CONTROL 0x0002
541 
545 #define GLFW_MOD_ALT 0x0004
546 
550 #define GLFW_MOD_SUPER 0x0008
551 
556 #define GLFW_MOD_CAPS_LOCK 0x0010
557 
562 #define GLFW_MOD_NUM_LOCK 0x0020
563 
573 #define GLFW_MOUSE_BUTTON_1 0
574 #define GLFW_MOUSE_BUTTON_2 1
575 #define GLFW_MOUSE_BUTTON_3 2
576 #define GLFW_MOUSE_BUTTON_4 3
577 #define GLFW_MOUSE_BUTTON_5 4
578 #define GLFW_MOUSE_BUTTON_6 5
579 #define GLFW_MOUSE_BUTTON_7 6
580 #define GLFW_MOUSE_BUTTON_8 7
581 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
582 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
583 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
584 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
585 
594 #define GLFW_JOYSTICK_1 0
595 #define GLFW_JOYSTICK_2 1
596 #define GLFW_JOYSTICK_3 2
597 #define GLFW_JOYSTICK_4 3
598 #define GLFW_JOYSTICK_5 4
599 #define GLFW_JOYSTICK_6 5
600 #define GLFW_JOYSTICK_7 6
601 #define GLFW_JOYSTICK_8 7
602 #define GLFW_JOYSTICK_9 8
603 #define GLFW_JOYSTICK_10 9
604 #define GLFW_JOYSTICK_11 10
605 #define GLFW_JOYSTICK_12 11
606 #define GLFW_JOYSTICK_13 12
607 #define GLFW_JOYSTICK_14 13
608 #define GLFW_JOYSTICK_15 14
609 #define GLFW_JOYSTICK_16 15
610 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
611 
620 #define GLFW_GAMEPAD_BUTTON_A 0
621 #define GLFW_GAMEPAD_BUTTON_B 1
622 #define GLFW_GAMEPAD_BUTTON_X 2
623 #define GLFW_GAMEPAD_BUTTON_Y 3
624 #define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
625 #define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
626 #define GLFW_GAMEPAD_BUTTON_BACK 6
627 #define GLFW_GAMEPAD_BUTTON_START 7
628 #define GLFW_GAMEPAD_BUTTON_GUIDE 8
629 #define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
630 #define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
631 #define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
632 #define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
633 #define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
634 #define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
635 #define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
636 
637 #define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
638 #define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
639 #define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
640 #define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
641 
650 #define GLFW_GAMEPAD_AXIS_LEFT_X 0
651 #define GLFW_GAMEPAD_AXIS_LEFT_Y 1
652 #define GLFW_GAMEPAD_AXIS_RIGHT_X 2
653 #define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
654 #define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
655 #define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
656 #define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
657 
672 #define GLFW_NO_ERROR 0
673 
681 #define GLFW_NOT_INITIALIZED 0x00010001
682 
691 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
692 
699 #define GLFW_INVALID_ENUM 0x00010003
700 
710 #define GLFW_INVALID_VALUE 0x00010004
711 
718 #define GLFW_OUT_OF_MEMORY 0x00010005
719 
734 #define GLFW_API_UNAVAILABLE 0x00010006
735 
751 #define GLFW_VERSION_UNAVAILABLE 0x00010007
752 
762 #define GLFW_PLATFORM_ERROR 0x00010008
763 
781 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
782 
789 #define GLFW_NO_WINDOW_CONTEXT 0x0001000A
790 
800 #define GLFW_CURSOR_UNAVAILABLE 0x0001000B
801 
814 #define GLFW_FEATURE_UNAVAILABLE 0x0001000C
815 
827 #define GLFW_FEATURE_UNIMPLEMENTED 0x0001000D
828 
849 #define GLFW_PLATFORM_UNAVAILABLE 0x0001000E
850 
859 #define GLFW_FOCUSED 0x00020001
860 
864 #define GLFW_ICONIFIED 0x00020002
865 
870 #define GLFW_RESIZABLE 0x00020003
871 
876 #define GLFW_VISIBLE 0x00020004
877 
882 #define GLFW_DECORATED 0x00020005
883 
888 #define GLFW_AUTO_ICONIFY 0x00020006
889 
894 #define GLFW_FLOATING 0x00020007
895 
900 #define GLFW_MAXIMIZED 0x00020008
901 
905 #define GLFW_CENTER_CURSOR 0x00020009
906 
912 #define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
913 
917 #define GLFW_HOVERED 0x0002000B
918 
923 #define GLFW_FOCUS_ON_SHOW 0x0002000C
924 
930 #define GLFW_MOUSE_PASSTHROUGH 0x0002000D
931 
936 #define GLFW_POSITION_X 0x0002000E
937 
942 #define GLFW_POSITION_Y 0x0002000F
943 
948 #define GLFW_RED_BITS 0x00021001
949 
953 #define GLFW_GREEN_BITS 0x00021002
954 
958 #define GLFW_BLUE_BITS 0x00021003
959 
963 #define GLFW_ALPHA_BITS 0x00021004
964 
968 #define GLFW_DEPTH_BITS 0x00021005
969 
973 #define GLFW_STENCIL_BITS 0x00021006
974 
978 #define GLFW_ACCUM_RED_BITS 0x00021007
979 
983 #define GLFW_ACCUM_GREEN_BITS 0x00021008
984 
988 #define GLFW_ACCUM_BLUE_BITS 0x00021009
989 
993 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
994 
998 #define GLFW_AUX_BUFFERS 0x0002100B
999 
1003 #define GLFW_STEREO 0x0002100C
1004 
1008 #define GLFW_SAMPLES 0x0002100D
1009 
1013 #define GLFW_SRGB_CAPABLE 0x0002100E
1014 
1018 #define GLFW_REFRESH_RATE 0x0002100F
1019 
1024 #define GLFW_DOUBLEBUFFER 0x00021010
1025 
1031 #define GLFW_CLIENT_API 0x00022001
1032 
1037 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
1038 
1043 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
1044 
1049 #define GLFW_CONTEXT_REVISION 0x00022004
1050 
1055 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
1056 
1061 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
1062 
1067 #define GLFW_CONTEXT_DEBUG 0x00022007
1068 
1072 #define GLFW_OPENGL_DEBUG_CONTEXT GLFW_CONTEXT_DEBUG
1073 
1078 #define GLFW_OPENGL_PROFILE 0x00022008
1079 
1084 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
1085 
1090 #define GLFW_CONTEXT_NO_ERROR 0x0002200A
1091 
1096 #define GLFW_CONTEXT_CREATION_API 0x0002200B
1097 
1100 #define GLFW_SCALE_TO_MONITOR 0x0002200C
1101 
1104 #define GLFW_SCALE_FRAMEBUFFER 0x0002200D
1105 
1111 #define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
1112 
1115 #define GLFW_COCOA_FRAME_NAME 0x00023002
1116 
1119 #define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
1120 
1123 #define GLFW_X11_CLASS_NAME 0x00024001
1124 
1127 #define GLFW_X11_INSTANCE_NAME 0x00024002
1128 #define GLFW_WIN32_KEYBOARD_MENU 0x00025001
1129 
1131 #define GLFW_WIN32_SHOWDEFAULT 0x00025002
1132 
1137 #define GLFW_WAYLAND_APP_ID 0x00026001
1138 
1140 #define GLFW_NO_API 0
1141 #define GLFW_OPENGL_API 0x00030001
1142 #define GLFW_OPENGL_ES_API 0x00030002
1143 
1144 #define GLFW_NO_ROBUSTNESS 0
1145 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
1146 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
1147 
1148 #define GLFW_OPENGL_ANY_PROFILE 0
1149 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
1150 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
1151 
1152 #define GLFW_CURSOR 0x00033001
1153 #define GLFW_STICKY_KEYS 0x00033002
1154 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
1155 #define GLFW_LOCK_KEY_MODS 0x00033004
1156 #define GLFW_RAW_MOUSE_MOTION 0x00033005
1157 
1158 #define GLFW_CURSOR_NORMAL 0x00034001
1159 #define GLFW_CURSOR_HIDDEN 0x00034002
1160 #define GLFW_CURSOR_DISABLED 0x00034003
1161 #define GLFW_CURSOR_CAPTURED 0x00034004
1162 
1163 #define GLFW_ANY_RELEASE_BEHAVIOR 0
1164 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
1165 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
1166 
1167 #define GLFW_NATIVE_CONTEXT_API 0x00036001
1168 #define GLFW_EGL_CONTEXT_API 0x00036002
1169 #define GLFW_OSMESA_CONTEXT_API 0x00036003
1170 
1171 #define GLFW_ANGLE_PLATFORM_TYPE_NONE 0x00037001
1172 #define GLFW_ANGLE_PLATFORM_TYPE_OPENGL 0x00037002
1173 #define GLFW_ANGLE_PLATFORM_TYPE_OPENGLES 0x00037003
1174 #define GLFW_ANGLE_PLATFORM_TYPE_D3D9 0x00037004
1175 #define GLFW_ANGLE_PLATFORM_TYPE_D3D11 0x00037005
1176 #define GLFW_ANGLE_PLATFORM_TYPE_VULKAN 0x00037007
1177 #define GLFW_ANGLE_PLATFORM_TYPE_METAL 0x00037008
1178 
1179 #define GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001
1180 #define GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002
1181 
1182 #define GLFW_ANY_POSITION 0x80000000
1183 
1197 #define GLFW_ARROW_CURSOR 0x00036001
1198 
1202 #define GLFW_IBEAM_CURSOR 0x00036002
1203 
1207 #define GLFW_CROSSHAIR_CURSOR 0x00036003
1208 
1212 #define GLFW_POINTING_HAND_CURSOR 0x00036004
1213 
1218 #define GLFW_RESIZE_EW_CURSOR 0x00036005
1219 
1224 #define GLFW_RESIZE_NS_CURSOR 0x00036006
1225 
1239 #define GLFW_RESIZE_NWSE_CURSOR 0x00036007
1240 
1254 #define GLFW_RESIZE_NESW_CURSOR 0x00036008
1255 
1260 #define GLFW_RESIZE_ALL_CURSOR 0x00036009
1261 
1272 #define GLFW_NOT_ALLOWED_CURSOR 0x0003600A
1273 
1277 #define GLFW_HRESIZE_CURSOR GLFW_RESIZE_EW_CURSOR
1278 
1282 #define GLFW_VRESIZE_CURSOR GLFW_RESIZE_NS_CURSOR
1283 
1287 #define GLFW_HAND_CURSOR GLFW_POINTING_HAND_CURSOR
1288 
1290 #define GLFW_CONNECTED 0x00040001
1291 #define GLFW_DISCONNECTED 0x00040002
1292 
1299 #define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
1300 
1304 #define GLFW_ANGLE_PLATFORM_TYPE 0x00050002
1305 
1309 #define GLFW_PLATFORM 0x00050003
1310 
1314 #define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
1315 
1319 #define GLFW_COCOA_MENUBAR 0x00051002
1320 
1324 #define GLFW_X11_XCB_VULKAN_SURFACE 0x00052001
1325 
1329 #define GLFW_WAYLAND_LIBDECOR 0x00053001
1330 
1338 #define GLFW_ANY_PLATFORM 0x00060000
1339 #define GLFW_PLATFORM_WIN32 0x00060001
1340 #define GLFW_PLATFORM_COCOA 0x00060002
1341 #define GLFW_PLATFORM_WAYLAND 0x00060003
1342 #define GLFW_PLATFORM_X11 0x00060004
1343 #define GLFW_PLATFORM_NULL 0x00060005
1344 
1346 #define GLFW_DONT_CARE -1
1347 
1348 
1349 /*************************************************************************
1350  * GLFW API types
1351  *************************************************************************/
1352 
1365 typedef void (*GLFWglproc)(void);
1366 
1379 typedef void (*GLFWvkproc)(void);
1380 
1391 typedef struct GLFWmonitor GLFWmonitor;
1392 
1403 typedef struct GLFWwindow GLFWwindow;
1404 
1415 typedef struct GLFWcursor GLFWcursor;
1416 
1468 typedef void* (* GLFWallocatefun)(size_t size, void* user);
1469 
1524 typedef void* (* GLFWreallocatefun)(void* block, size_t size, void* user);
1525 
1566 typedef void (* GLFWdeallocatefun)(void* block, void* user);
1567 
1590 typedef void (* GLFWerrorfun)(int error_code, const char* description);
1591 
1613 typedef void (* GLFWwindowposfun)(GLFWwindow* window, int xpos, int ypos);
1614 
1635 typedef void (* GLFWwindowsizefun)(GLFWwindow* window, int width, int height);
1636 
1655 typedef void (* GLFWwindowclosefun)(GLFWwindow* window);
1656 
1675 typedef void (* GLFWwindowrefreshfun)(GLFWwindow* window);
1676 
1696 typedef void (* GLFWwindowfocusfun)(GLFWwindow* window, int focused);
1697 
1717 typedef void (* GLFWwindowiconifyfun)(GLFWwindow* window, int iconified);
1718 
1738 typedef void (* GLFWwindowmaximizefun)(GLFWwindow* window, int maximized);
1739 
1759 typedef void (* GLFWframebuffersizefun)(GLFWwindow* window, int width, int height);
1760 
1780 typedef void (* GLFWwindowcontentscalefun)(GLFWwindow* window, float xscale, float yscale);
1781 
1806 typedef void (* GLFWmousebuttonfun)(GLFWwindow* window, int button, int action, int mods);
1807 
1829 typedef void (* GLFWcursorposfun)(GLFWwindow* window, double xpos, double ypos);
1830 
1850 typedef void (* GLFWcursorenterfun)(GLFWwindow* window, int entered);
1851 
1871 typedef void (* GLFWscrollfun)(GLFWwindow* window, double xoffset, double yoffset);
1872 
1897 typedef void (* GLFWkeyfun)(GLFWwindow* window, int key, int scancode, int action, int mods);
1898 
1918 typedef void (* GLFWcharfun)(GLFWwindow* window, unsigned int codepoint);
1919 
1945 typedef void (* GLFWcharmodsfun)(GLFWwindow* window, unsigned int codepoint, int mods);
1946 
1969 typedef void (* GLFWdropfun)(GLFWwindow* window, int path_count, const char* paths[]);
1970 
1990 typedef void (* GLFWmonitorfun)(GLFWmonitor* monitor, int event);
1991 
2011 typedef void (* GLFWjoystickfun)(int jid, int event);
2012 
2026 typedef struct GLFWvidmode
2027 {
2030  int width;
2033  int height;
2036  int redBits;
2039  int greenBits;
2042  int blueBits;
2045  int refreshRate;
2046 } GLFWvidmode;
2047 
2060 typedef struct GLFWgammaramp
2061 {
2064  unsigned short* red;
2067  unsigned short* green;
2070  unsigned short* blue;
2073  unsigned int size;
2074 } GLFWgammaramp;
2075 
2089 typedef struct GLFWimage
2090 {
2093  int width;
2096  int height;
2099  unsigned char* pixels;
2100 } GLFWimage;
2101 
2113 typedef struct GLFWgamepadstate
2114 {
2118  unsigned char buttons[15];
2122  float axes[6];
2124 
2137 typedef struct GLFWallocator
2138 {
2154  void* user;
2155 } GLFWallocator;
2156 
2157 
2158 /*************************************************************************
2159  * GLFW API functions
2160  *************************************************************************/
2161 
2220 GLFWAPI int glfwInit(void);
2221 
2254 GLFWAPI void glfwTerminate(void);
2255 
2286 GLFWAPI void glfwInitHint(int hint, int value);
2287 
2317 GLFWAPI void glfwInitAllocator(const GLFWallocator* allocator);
2318 
2319 #if defined(VK_VERSION_1_0)
2320 
2363 GLFWAPI void glfwInitVulkanLoader(PFN_vkGetInstanceProcAddr loader);
2364 
2365 #endif /*VK_VERSION_1_0*/
2366 
2392 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
2393 
2426 GLFWAPI const char* glfwGetVersionString(void);
2427 
2457 GLFWAPI int glfwGetError(const char** description);
2458 
2504 
2524 GLFWAPI int glfwGetPlatform(void);
2525 
2548 GLFWAPI int glfwPlatformSupported(int platform);
2549 
2577 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
2578 
2601 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
2602 
2626 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
2627 
2657 GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
2658 
2692 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
2693 
2727 GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
2728 
2753 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
2754 
2779 GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
2780 
2803 GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
2804 
2834 
2867 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
2868 
2895 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
2896 
2928 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
2929 
2958 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
2959 
2999 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
3000 
3018 GLFWAPI void glfwDefaultWindowHints(void);
3019 
3053 GLFWAPI void glfwWindowHint(int hint, int value);
3054 
3091 GLFWAPI void glfwWindowHintString(int hint, const char* value);
3092 
3235 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
3236 
3264 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
3265 
3284 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
3285 
3306 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
3307 
3338 GLFWAPI const char* glfwGetWindowTitle(GLFWwindow* window);
3339 
3364 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
3365 
3413 GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
3414 
3445 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
3446 
3480 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
3481 
3510 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
3511 
3553 GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
3554 
3596 GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
3597 
3634 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
3635 
3663 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
3664 
3700 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
3701 
3733 GLFWAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
3734 
3760 GLFWAPI float glfwGetWindowOpacity(GLFWwindow* window);
3761 
3792 GLFWAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
3793 
3824 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
3825 
3851 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
3852 
3876 GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
3877 
3908 GLFWAPI void glfwShowWindow(GLFWwindow* window);
3909 
3930 GLFWAPI void glfwHideWindow(GLFWwindow* window);
3931 
3969 GLFWAPI void glfwFocusWindow(GLFWwindow* window);
3970 
3996 GLFWAPI void glfwRequestWindowAttention(GLFWwindow* window);
3997 
4018 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
4019 
4074 GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
4075 
4111 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
4112 
4153 GLFWAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
4154 
4176 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
4177 
4197 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
4198 
4233 
4265 
4305 
4341 
4376 
4406 
4436 
4466 
4497 
4534 GLFWAPI void glfwPollEvents(void);
4535 
4579 GLFWAPI void glfwWaitEvents(void);
4580 
4628 GLFWAPI void glfwWaitEventsTimeout(double timeout);
4629 
4648 GLFWAPI void glfwPostEmptyEvent(void);
4649 
4673 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
4674 
4738 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
4739 
4767 GLFWAPI int glfwRawMouseMotionSupported(void);
4768 
4835 GLFWAPI const char* glfwGetKeyName(int key, int scancode);
4836 
4862 GLFWAPI int glfwGetKeyScancode(int key);
4863 
4901 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
4902 
4930 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
4931 
4968 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
4969 
5008 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
5009 
5046 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
5047 
5094 GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
5095 
5121 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
5122 
5148 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
5149 
5198 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
5199 
5241 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback);
5242 
5284 
5321 
5353 
5384 
5417 GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
5418 
5452 GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback);
5453 
5476 GLFWAPI int glfwJoystickPresent(int jid);
5477 
5509 GLFWAPI const float* glfwGetJoystickAxes(int jid, int* count);
5510 
5550 GLFWAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
5551 
5607 GLFWAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
5608 
5638 GLFWAPI const char* glfwGetJoystickName(int jid);
5639 
5679 GLFWAPI const char* glfwGetJoystickGUID(int jid);
5680 
5705 GLFWAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
5706 
5729 GLFWAPI void* glfwGetJoystickUserPointer(int jid);
5730 
5757 GLFWAPI int glfwJoystickIsGamepad(int jid);
5758 
5794 
5827 GLFWAPI int glfwUpdateGamepadMappings(const char* string);
5828 
5859 GLFWAPI const char* glfwGetGamepadName(int jid);
5860 
5897 GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
5898 
5927 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
5928 
5962 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
5963 
5992 GLFWAPI double glfwGetTime(void);
5993 
6022 GLFWAPI void glfwSetTime(double time);
6023 
6044 GLFWAPI uint64_t glfwGetTimerValue(void);
6045 
6064 GLFWAPI uint64_t glfwGetTimerFrequency(void);
6065 
6109 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
6110 
6130 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
6131 
6164 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
6165 
6210 GLFWAPI void glfwSwapInterval(int interval);
6211 
6248 GLFWAPI int glfwExtensionSupported(const char* extension);
6249 
6290 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
6291 
6316 GLFWAPI int glfwVulkanSupported(void);
6317 
6360 GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
6361 
6362 #if defined(VK_VERSION_1_0)
6363 
6403 GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
6404 
6440 GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
6441 
6510 GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
6511 
6512 #endif /*VK_VERSION_1_0*/
6513 
6514 
6515 /*************************************************************************
6516  * Global definition cleanup
6517  *************************************************************************/
6518 
6519 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
6520 
6521 #ifdef GLFW_WINGDIAPI_DEFINED
6522  #undef WINGDIAPI
6523  #undef GLFW_WINGDIAPI_DEFINED
6524 #endif
6525 
6526 #ifdef GLFW_CALLBACK_DEFINED
6527  #undef CALLBACK
6528  #undef GLFW_CALLBACK_DEFINED
6529 #endif
6530 
6531 /* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
6532  * defined by some gl.h variants (OpenBSD) so define it after if needed.
6533  */
6534 #ifndef GLAPIENTRY
6535  #define GLAPIENTRY APIENTRY
6536  #define GLFW_GLAPIENTRY_DEFINED
6537 #endif
6538 
6539 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
6540 
6541 
6542 #ifdef __cplusplus
6543 }
6544 #endif
6545 
6546 #endif /* _glfw3_h_ */
6547 
GLFWAPI const char * glfwGetJoystickGUID(int jid)
Returns the SDL compatible GUID of the specified joystick.
Definition: input.c:1183
Gamepad input state.
Definition: glfw3.h:1744
GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
Definition: window.c:679
int redBits
Definition: glfw3.h:1667
GLFWAPI void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
Definition: input.c:585
GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun callback)
Sets the cursor enter/leave callback.
Definition: input.c:998
int height
Definition: glfw3.h:1664
GLFWAPI void glfwFocusWindow(GLFWwindow *window)
Brings the specified window to front and sets input focus.
Definition: window.c:855
void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)
The function pointer type for window size callbacks.
Definition: glfw3.h:1266
GLFWAPI void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the content area of the specified window.
Definition: window.c:605
int blueBits
Definition: glfw3.h:1673
GLFWAPI void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)
Sets the position of the cursor, relative to the content area of the window.
Definition: input.c:804
GLFWAPI const float * glfwGetJoystickAxes(int jid, int *count)
Returns the values of all axes of the specified joystick.
Definition: input.c:1055
GLFWAPI int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
Definition: input.c:560
GLFWAPI void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
Definition: monitor.c:459
GLFWAPI int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
Definition: window.c:865
GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)
Sets the cursor position callback.
Definition: input.c:987
GLFWAPI void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
Definition: window.c:530
GLFWAPI GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
Definition: monitor.c:304
GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
Definition: monitor.c:341
GLFWAPI GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
Definition: context.c:748
GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)
Sets the framebuffer resize callback for the specified window.
Definition: window.c:1117
void(* GLFWmousebuttonfun)(GLFWwindow *window, int button, int action, int mods)
The function pointer type for mouse button callbacks.
Definition: glfw3.h:1437
GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
Definition: window.c:634
void(* GLFWcursorposfun)(GLFWwindow *window, double xpos, double ypos)
The function pointer type for cursor position callbacks.
Definition: glfw3.h:1460
GLFWAPI void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
Definition: window.c:842
GLFWAPI int glfwJoystickPresent(int jid)
Returns whether the specified joystick is present.
Definition: input.c:1030
GLFWAPI uint64_t glfwGetTimerFrequency(void)
Returns the frequency, in Hz, of the raw timer.
Definition: input.c:1500
GLFWAPI GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
Definition: monitor.c:316
void(* GLFWcharmodsfun)(GLFWwindow *window, unsigned int codepoint, int mods)
The function pointer type for Unicode character with modifiers callbacks.
Definition: glfw3.h:1576
int width
Definition: glfw3.h:1661
GLFWAPI void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)
Sets an attribute of the specified window.
Definition: window.c:928
GLFWAPI const char * glfwGetGamepadName(int jid)
Returns the human-readable gamepad name for the specified joystick.
Definition: input.c:1342
GLFWAPI int glfwVulkanSupported(void)
Returns whether the Vulkan loader and an ICD have been found.
Definition: vulkan.c:222
GLFWAPI GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
Definition: window.c:974
struct GLFWallocator GLFWallocator
Custom heap memory allocator.
GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
Definition: window.c:1073
struct GLFWimage GLFWimage
Image data.
GLFWAPI float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
Definition: window.c:757
GLFWAPI const char * glfwGetWindowTitle(GLFWwindow *window)
Returns the title of the specified window.
Definition: window.c:520
void(* GLFWjoystickfun)(int jid, int event)
The function pointer type for joystick configuration callbacks.
Definition: glfw3.h:1642
GLFWAPI int glfwGetPlatform(void)
Returns the currently selected platform.
Definition: platform.c:127
GLFWAPI void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
Definition: window.c:1167
GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)
Sets the close callback for the specified window.
Definition: window.c:1062
void(* GLFWwindowfocusfun)(GLFWwindow *window, int focused)
The function pointer type for window focus callbacks.
Definition: glfw3.h:1327
int refreshRate
Definition: glfw3.h:1676
GLFWAPI GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
Definition: input.c:836
Definition: vulkan.h:2070
GLFWAPI uint64_t glfwGetTimerValue(void)
Returns the current value of the raw timer.
Definition: input.c:1494
void(* GLFWerrorfun)(int error_code, const char *description)
The function pointer type for error callbacks.
Definition: glfw3.h:1221
GLFWAPI int glfwGetError(const char **description)
Returns and clears the last error for the calling thread.
Definition: init.c:499
GLFWallocatefun allocate
Definition: glfw3.h:2142
void(* GLFWwindowposfun)(GLFWwindow *window, int xpos, int ypos)
The function pointer type for window position callbacks.
Definition: glfw3.h:1244
GLFWAPI int glfwGetMouseButton(GLFWwindow *window, int button)
Returns the last reported state of a mouse button for the specified window.
Definition: input.c:758
GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for the specified monitor.
Definition: monitor.c:380
GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)
Sets the path drop callback.
Definition: input.c:1020
void(* GLFWvkproc)(void)
Vulkan API function pointer type.
Definition: glfw3.h:1161
GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun callback)
Sets the Unicode character callback.
Definition: input.c:956
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:1173
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:1185
int greenBits
Definition: glfw3.h:1670
GLFWAPI void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
Definition: window.c:1031
GLFWAPI const char * glfwGetJoystickName(int jid)
Returns the name of the specified joystick.
Definition: input.c:1155
GLFWAPI int glfwInit(void)
Initializes the GLFW library.
Definition: init.c:386
GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
Definition: init.c:523
GLFWAPI void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
Definition: window.c:1022
GLFWAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)
Sets the window content scale callback for the specified window.
Definition: window.c:1128
GLFWAPI GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
Definition: window.c:180
void(* GLFWcharfun)(GLFWwindow *window, unsigned int codepoint)
The function pointer type for Unicode character callbacks.
Definition: glfw3.h:1549
GLFWAPI const unsigned char * glfwGetJoystickButtons(int jid, int *count)
Returns the state of all buttons of the specified joystick.
Definition: input.c:1087
GLFWAPI void glfwInitAllocator(const GLFWallocator *allocator)
Sets the init allocator to the desired value.
Definition: init.c:471
GLFWAPI const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
Definition: monitor.c:446
void(* GLFWcursorenterfun)(GLFWwindow *window, int entered)
The function pointer type for cursor enter/leave callbacks.
Definition: glfw3.h:1481
GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate *state)
Retrieves the state of the specified joystick remapped as a gamepad.
Definition: input.c:1373
GLFWAPI void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
Definition: context.c:665
GLFWAPI int glfwUpdateGamepadMappings(const char *string)
Adds the specified SDL_GameControllerDB gamepad mappings.
Definition: input.c:1254
GLFWAPI void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
Definition: window.c:785
void(* GLFWwindowclosefun)(GLFWwindow *window)
The function pointer type for window close callbacks.
Definition: glfw3.h:1286
GLFWAPI void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
Definition: init.c:489
GLFWAPI void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)
Retrieves the content scale for the specified window.
Definition: window.c:742
void(* GLFWkeyfun)(GLFWwindow *window, int key, int scancode, int action, int mods)
The function pointer type for keyboard key callbacks.
Definition: glfw3.h:1528
GLFWAPI void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
Definition: window.c:256
GLFWAPI void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
Definition: context.c:648
GLFWAPI void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
Definition: context.c:616
GLFWAPI int glfwRawMouseMotionSupported(void)
Returns whether raw mouse motion is supported.
Definition: input.c:691
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
GLFWAPI void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
Definition: window.c:722
GLFWAPI void * glfwGetJoystickUserPointer(int jid)
Returns the user pointer of the specified joystick.
Definition: input.c:1227
GLFWAPI void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
Definition: window.c:803
GLFWAPI int glfwPlatformSupported(int platform)
Returns whether the library includes support for the specified platform.
Definition: platform.c:133
GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)
Sets the maximize callback for the specified window.
Definition: window.c:1106
void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)
The function pointer type for window iconify callbacks.
Definition: glfw3.h:1348
void(* GLFWdropfun)(GLFWwindow *window, int path_count, const char *paths[])
The function pointer type for path drop callbacks.
Definition: glfw3.h:1600
GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun callback)
Sets the mouse button callback.
Definition: input.c:976
GLFWAPI const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
Definition: monitor.c:429
void * user
Definition: glfw3.h:2154
void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)
The function pointer type for monitor configuration callbacks.
Definition: glfw3.h:1621
GLFWAPI const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
Definition: vulkan.c:228
GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)
Sets the size callback for the specified window.
Definition: window.c:1051
GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)
Sets the position callback for the specified window.
Definition: window.c:1040
GLFWAPI void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the content area of the specified window.
Definition: window.c:619
GLFWAPI void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the content area of the specified window.
Definition: window.c:592
struct GLFWgamepadstate GLFWgamepadstate
Gamepad input state.
GLFWAPI void glfwSetJoystickUserPointer(int jid, void *pointer)
Sets the user pointer of the specified joystick.
Definition: input.c:1211
GLFWAPI void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
Definition: window.c:511
GLFWAPI void glfwWaitEvents(void)
Waits until events are queued and processes them.
Definition: window.c:1145
GLFWAPI void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
Definition: input.c:1459
GLFWAPI void glfwSetTime(double time)
Sets the GLFW time.
Definition: input.c:1480
GLFWAPI GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
Definition: context.c:642
GLFWAPI 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.
Definition: window.c:983
GLFWAPI void glfwWaitEventsTimeout(double timeout)
Waits with timeout until events are queued and processes them.
Definition: window.c:1151
GLFWAPI void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor&#39;s viewport on the virtual screen.
Definition: monitor.c:326
GLFWAPI void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)
Sets the cursor for the window.
Definition: input.c:933
Custom heap memory allocator.
Definition: glfw3.h:2137
GLFWAPI void glfwSetWindowOpacity(GLFWwindow *window, float opacity)
Sets the opacity of the whole window.
Definition: window.c:766
GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)
Sets the key callback.
Definition: input.c:946
GLFWAPI void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)
Retrieves the position of the cursor relative to the content area of the window.
Definition: input.c:781
void(* GLFWwindowcontentscalefun)(GLFWwindow *window, float xscale, float yscale)
The function pointer type for window content scale callbacks.
Definition: glfw3.h:1411
GLFWAPI double glfwGetTime(void)
Returns the GLFW time.
Definition: input.c:1473
Gamma ramp.
Definition: glfw3.h:1691
GLFWAPI const char * glfwGetKeyName(int key, int scancode)
Returns the layout-specific name of the specified printable key.
Definition: input.c:697
GLFWAPI void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
Definition: input.c:898
Video mode type.
Definition: glfw3.h:1657
GLFWAPI void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the content area of the specified window.
Definition: window.c:578
GLFWAPI void glfwRequestWindowAttention(GLFWwindow *window)
Requests user attention to the specified window.
Definition: window.c:832
void *(* GLFWreallocatefun)(void *block, size_t size, void *user)
The function pointer type for memory reallocation callbacks.
Definition: glfw3.h:1524
GLFWAPI const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
Definition: input.c:1467
void(* GLFWwindowrefreshfun)(GLFWwindow *window)
The function pointer type for window content refresh callbacks.
Definition: glfw3.h:1306
void(* GLFWwindowmaximizefun)(GLFWwindow *window, int maximized)
The function pointer type for window maximize callbacks.
Definition: glfw3.h:1369
GLFWAPI void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
Definition: window.c:468
GLFWAPI void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
Definition: window.c:708
GLFWAPI int glfwJoystickIsGamepad(int jid)
Returns whether the specified joystick has a gamepad mapping.
Definition: input.c:1314
GLFWAPI void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
Definition: window.c:816
GLFWAPI const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
Definition: monitor.c:506
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition: glfw3.h:1197
GLFWAPI void glfwTerminate(void)
Terminates the GLFW library.
Definition: init.c:432
void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)
The function pointer type for framebuffer size callbacks.
Definition: glfw3.h:1390
GLFWAPI const unsigned char * glfwGetJoystickHats(int jid, int *count)
Returns the state of all hats of the specified joystick.
Definition: input.c:1123
void(* GLFWdeallocatefun)(void *block, void *user)
The function pointer type for memory deallocation callbacks.
Definition: glfw3.h:1566
GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer of the specified monitor.
Definition: monitor.c:404
GLFWdeallocatefun deallocate
Definition: glfw3.h:2150
GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
Definition: monitor.c:362
GLFWAPI GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
Definition: input.c:864
GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun callback)
Sets the Unicode character with modifiers callback.
Definition: input.c:966
GLFWAPI void glfwPollEvents(void)
Processes all pending events.
Definition: window.c:1139
void(* GLFWscrollfun)(GLFWwindow *window, double xoffset, double yoffset)
The function pointer type for scroll callbacks.
Definition: glfw3.h:1502
GLFWAPI int glfwGetKeyScancode(int key)
Returns the platform-specific scancode of the specified key.
Definition: input.c:722
GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)
Sets the joystick configuration callback.
Definition: input.c:1243
GLFWAPI int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
Definition: context.c:682
Image data.
Definition: glfw3.h:1720
GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)
Sets the scroll callback.
Definition: input.c:1009
GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)
Sets the focus callback for the specified window.
Definition: window.c:1084
GLFWAPI const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
Definition: platform.c:160
struct GLFWvidmode GLFWvidmode
Video mode type.
GLFWAPI void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
Definition: monitor.c:413
GLFWAPI void glfwWindowHintString(int hint, const char *value)
Sets the specified window hint to the desired value.
Definition: window.c:439
GLFWAPI void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
Definition: window.c:794
GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)
Sets the iconify callback for the specified window.
Definition: window.c:1095
GLFWAPI int glfwGetKey(GLFWwindow *window, int key)
Returns the last reported state of a keyboard key for the specified window.
Definition: input.c:735
GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
Definition: monitor.c:422
GLFWAPI void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
Definition: window.c:295
GLFWAPI void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)
Sets the icon for the specified window.
Definition: window.c:545
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:1147
void *(* GLFWallocatefun)(size_t size, void *user)
The function pointer type for memory allocation callbacks.
Definition: glfw3.h:1468
GLFWAPI void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
Definition: monitor.c:520
GLFWAPI const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
Definition: monitor.c:395
GLFWAPI int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
Definition: window.c:502
GLFWreallocatefun reallocate
Definition: glfw3.h:2146
GLFWAPI void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
Definition: init.c:440