raygui-widget
glfw3.h
1 /*************************************************************************
2  * GLFW 3.3 - www.glfw.org
3  * A library for OpenGL, window and input
4  *------------------------------------------------------------------------
5  * Copyright (c) 2002-2006 Marcus Geelnard
6  * Copyright (c) 2006-2019 Camilla Löwy <elmindreda@glfw.org>
7  *
8  * This software is provided 'as-is', without any express or implied
9  * warranty. In no event will the authors be held liable for any damages
10  * arising from the use of this software.
11  *
12  * Permission is granted to anyone to use this software for any purpose,
13  * including commercial applications, and to alter it and redistribute it
14  * freely, subject to the following restrictions:
15  *
16  * 1. The origin of this software must not be misrepresented; you must not
17  * claim that you wrote the original software. If you use this software
18  * in a product, an acknowledgment in the product documentation would
19  * be appreciated but is not required.
20  *
21  * 2. Altered source versions must be plainly marked as such, and must not
22  * be misrepresented as being the original software.
23  *
24  * 3. This notice may not be removed or altered from any source
25  * distribution.
26  *
27  *************************************************************************/
28 
29 #ifndef _glfw3_h_
30 #define _glfw3_h_
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 
37 /*************************************************************************
38  * Doxygen documentation
39  *************************************************************************/
40 
89 /*************************************************************************
90  * Compiler- and platform-specific preprocessor work
91  *************************************************************************/
92 
93 /* If we are we on Windows, we want a single define for it.
94  */
95 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
96  #define _WIN32
97 #endif /* _WIN32 */
98 
99 /* Include because most Windows GLU headers need wchar_t and
100  * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h.
101  * Include it unconditionally to avoid surprising side-effects.
102  */
103 #include <stddef.h>
104 
105 /* Include because it is needed by Vulkan and related functions.
106  * Include it unconditionally to avoid surprising side-effects.
107  */
108 #include <stdint.h>
109 
110 #if defined(GLFW_INCLUDE_VULKAN)
111  #include <vulkan/vulkan.h>
112 #endif /* Vulkan header */
113 
114 /* The Vulkan header may have indirectly included windows.h (because of
115  * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it.
116  */
117 
118 /* It is customary to use APIENTRY for OpenGL function pointer declarations on
119  * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
120  */
121 #if !defined(APIENTRY)
122  #if defined(_WIN32)
123  #define APIENTRY __stdcall
124  #else
125  #define APIENTRY
126  #endif
127  #define GLFW_APIENTRY_DEFINED
128 #endif /* APIENTRY */
129 
130 /* Some Windows OpenGL headers need this.
131  */
132 #if !defined(WINGDIAPI) && defined(_WIN32)
133  #define WINGDIAPI __declspec(dllimport)
134  #define GLFW_WINGDIAPI_DEFINED
135 #endif /* WINGDIAPI */
136 
137 /* Some Windows GLU headers need this.
138  */
139 #if !defined(CALLBACK) && defined(_WIN32)
140  #define CALLBACK __stdcall
141  #define GLFW_CALLBACK_DEFINED
142 #endif /* CALLBACK */
143 
144 /* Include the chosen OpenGL or OpenGL ES headers.
145  */
146 #if defined(GLFW_INCLUDE_ES1)
147 
148  #include <GLES/gl.h>
149  #if defined(GLFW_INCLUDE_GLEXT)
150  #include <GLES/glext.h>
151  #endif
152 
153 #elif defined(GLFW_INCLUDE_ES2)
154 
155  #include <GLES2/gl2.h>
156  #if defined(GLFW_INCLUDE_GLEXT)
157  #include <GLES2/gl2ext.h>
158  #endif
159 
160 #elif defined(GLFW_INCLUDE_ES3)
161 
162  #include <GLES3/gl3.h>
163  #if defined(GLFW_INCLUDE_GLEXT)
164  #include <GLES2/gl2ext.h>
165  #endif
166 
167 #elif defined(GLFW_INCLUDE_ES31)
168 
169  #include <GLES3/gl31.h>
170  #if defined(GLFW_INCLUDE_GLEXT)
171  #include <GLES2/gl2ext.h>
172  #endif
173 
174 #elif defined(GLFW_INCLUDE_ES32)
175 
176  #include <GLES3/gl32.h>
177  #if defined(GLFW_INCLUDE_GLEXT)
178  #include <GLES2/gl2ext.h>
179  #endif
180 
181 #elif defined(GLFW_INCLUDE_GLCOREARB)
182 
183  #if defined(__APPLE__)
184 
185  #include <OpenGL/gl3.h>
186  #if defined(GLFW_INCLUDE_GLEXT)
187  #include <OpenGL/gl3ext.h>
188  #endif /*GLFW_INCLUDE_GLEXT*/
189 
190  #else /*__APPLE__*/
191 
192  #include <GL/glcorearb.h>
193  #if defined(GLFW_INCLUDE_GLEXT)
194  #include <GL/glext.h>
195  #endif
196 
197  #endif /*__APPLE__*/
198 
199 #elif defined(GLFW_INCLUDE_GLU)
200 
201  #if defined(__APPLE__)
202 
203  #if defined(GLFW_INCLUDE_GLU)
204  #include <OpenGL/glu.h>
205  #endif
206 
207  #else /*__APPLE__*/
208 
209  #if defined(GLFW_INCLUDE_GLU)
210  #include <GL/glu.h>
211  #endif
212 
213  #endif /*__APPLE__*/
214 
215 #elif !defined(GLFW_INCLUDE_NONE) && \
216  !defined(__gl_h_) && \
217  !defined(__gles1_gl_h_) && \
218  !defined(__gles2_gl2_h_) && \
219  !defined(__gles2_gl3_h_) && \
220  !defined(__gles2_gl31_h_) && \
221  !defined(__gles2_gl32_h_) && \
222  !defined(__gl_glcorearb_h_) && \
223  !defined(__gl2_h_) /*legacy*/ && \
224  !defined(__gl3_h_) /*legacy*/ && \
225  !defined(__gl31_h_) /*legacy*/ && \
226  !defined(__gl32_h_) /*legacy*/ && \
227  !defined(__glcorearb_h_) /*legacy*/ && \
228  !defined(__GL_H__) /*non-standard*/ && \
229  !defined(__gltypes_h_) /*non-standard*/ && \
230  !defined(__glee_h_) /*non-standard*/
231 
232  #if defined(__APPLE__)
233 
234  #if !defined(GLFW_INCLUDE_GLEXT)
235  #define GL_GLEXT_LEGACY
236  #endif
237  #include <OpenGL/gl.h>
238 
239  #else /*__APPLE__*/
240 
241  #include <GL/gl.h>
242  #if defined(GLFW_INCLUDE_GLEXT)
243  #include <GL/glext.h>
244  #endif
245 
246  #endif /*__APPLE__*/
247 
248 #endif /* OpenGL and OpenGL ES headers */
249 
250 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
251  /* GLFW_DLL must be defined by applications that are linking against the DLL
252  * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
253  * configuration header when compiling the DLL version of the library.
254  */
255  #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
256 #endif
257 
258 /* GLFWAPI is used to declare public API functions for export
259  * from the DLL / shared library / dynamic library.
260  */
261 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
262  /* We are building GLFW as a Win32 DLL */
263  #define GLFWAPI __declspec(dllexport)
264 #elif defined(_WIN32) && defined(GLFW_DLL)
265  /* We are calling 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 3
295 
301 #define GLFW_VERSION_REVISION 8
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 
390 /* The unknown key */
391 #define GLFW_KEY_UNKNOWN -1
392 
393 /* Printable keys */
394 #define GLFW_KEY_SPACE 32
395 #define GLFW_KEY_APOSTROPHE 39 /* ' */
396 #define GLFW_KEY_COMMA 44 /* , */
397 #define GLFW_KEY_MINUS 45 /* - */
398 #define GLFW_KEY_PERIOD 46 /* . */
399 #define GLFW_KEY_SLASH 47 /* / */
400 #define GLFW_KEY_0 48
401 #define GLFW_KEY_1 49
402 #define GLFW_KEY_2 50
403 #define GLFW_KEY_3 51
404 #define GLFW_KEY_4 52
405 #define GLFW_KEY_5 53
406 #define GLFW_KEY_6 54
407 #define GLFW_KEY_7 55
408 #define GLFW_KEY_8 56
409 #define GLFW_KEY_9 57
410 #define GLFW_KEY_SEMICOLON 59 /* ; */
411 #define GLFW_KEY_EQUAL 61 /* = */
412 #define GLFW_KEY_A 65
413 #define GLFW_KEY_B 66
414 #define GLFW_KEY_C 67
415 #define GLFW_KEY_D 68
416 #define GLFW_KEY_E 69
417 #define GLFW_KEY_F 70
418 #define GLFW_KEY_G 71
419 #define GLFW_KEY_H 72
420 #define GLFW_KEY_I 73
421 #define GLFW_KEY_J 74
422 #define GLFW_KEY_K 75
423 #define GLFW_KEY_L 76
424 #define GLFW_KEY_M 77
425 #define GLFW_KEY_N 78
426 #define GLFW_KEY_O 79
427 #define GLFW_KEY_P 80
428 #define GLFW_KEY_Q 81
429 #define GLFW_KEY_R 82
430 #define GLFW_KEY_S 83
431 #define GLFW_KEY_T 84
432 #define GLFW_KEY_U 85
433 #define GLFW_KEY_V 86
434 #define GLFW_KEY_W 87
435 #define GLFW_KEY_X 88
436 #define GLFW_KEY_Y 89
437 #define GLFW_KEY_Z 90
438 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
439 #define GLFW_KEY_BACKSLASH 92 /* \ */
440 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
441 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
442 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
443 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
444 
445 /* Function keys */
446 #define GLFW_KEY_ESCAPE 256
447 #define GLFW_KEY_ENTER 257
448 #define GLFW_KEY_TAB 258
449 #define GLFW_KEY_BACKSPACE 259
450 #define GLFW_KEY_INSERT 260
451 #define GLFW_KEY_DELETE 261
452 #define GLFW_KEY_RIGHT 262
453 #define GLFW_KEY_LEFT 263
454 #define GLFW_KEY_DOWN 264
455 #define GLFW_KEY_UP 265
456 #define GLFW_KEY_PAGE_UP 266
457 #define GLFW_KEY_PAGE_DOWN 267
458 #define GLFW_KEY_HOME 268
459 #define GLFW_KEY_END 269
460 #define GLFW_KEY_CAPS_LOCK 280
461 #define GLFW_KEY_SCROLL_LOCK 281
462 #define GLFW_KEY_NUM_LOCK 282
463 #define GLFW_KEY_PRINT_SCREEN 283
464 #define GLFW_KEY_PAUSE 284
465 #define GLFW_KEY_F1 290
466 #define GLFW_KEY_F2 291
467 #define GLFW_KEY_F3 292
468 #define GLFW_KEY_F4 293
469 #define GLFW_KEY_F5 294
470 #define GLFW_KEY_F6 295
471 #define GLFW_KEY_F7 296
472 #define GLFW_KEY_F8 297
473 #define GLFW_KEY_F9 298
474 #define GLFW_KEY_F10 299
475 #define GLFW_KEY_F11 300
476 #define GLFW_KEY_F12 301
477 #define GLFW_KEY_F13 302
478 #define GLFW_KEY_F14 303
479 #define GLFW_KEY_F15 304
480 #define GLFW_KEY_F16 305
481 #define GLFW_KEY_F17 306
482 #define GLFW_KEY_F18 307
483 #define GLFW_KEY_F19 308
484 #define GLFW_KEY_F20 309
485 #define GLFW_KEY_F21 310
486 #define GLFW_KEY_F22 311
487 #define GLFW_KEY_F23 312
488 #define GLFW_KEY_F24 313
489 #define GLFW_KEY_F25 314
490 #define GLFW_KEY_KP_0 320
491 #define GLFW_KEY_KP_1 321
492 #define GLFW_KEY_KP_2 322
493 #define GLFW_KEY_KP_3 323
494 #define GLFW_KEY_KP_4 324
495 #define GLFW_KEY_KP_5 325
496 #define GLFW_KEY_KP_6 326
497 #define GLFW_KEY_KP_7 327
498 #define GLFW_KEY_KP_8 328
499 #define GLFW_KEY_KP_9 329
500 #define GLFW_KEY_KP_DECIMAL 330
501 #define GLFW_KEY_KP_DIVIDE 331
502 #define GLFW_KEY_KP_MULTIPLY 332
503 #define GLFW_KEY_KP_SUBTRACT 333
504 #define GLFW_KEY_KP_ADD 334
505 #define GLFW_KEY_KP_ENTER 335
506 #define GLFW_KEY_KP_EQUAL 336
507 #define GLFW_KEY_LEFT_SHIFT 340
508 #define GLFW_KEY_LEFT_CONTROL 341
509 #define GLFW_KEY_LEFT_ALT 342
510 #define GLFW_KEY_LEFT_SUPER 343
511 #define GLFW_KEY_RIGHT_SHIFT 344
512 #define GLFW_KEY_RIGHT_CONTROL 345
513 #define GLFW_KEY_RIGHT_ALT 346
514 #define GLFW_KEY_RIGHT_SUPER 347
515 #define GLFW_KEY_MENU 348
516 
517 #define GLFW_KEY_LAST GLFW_KEY_MENU
518 
533 #define GLFW_MOD_SHIFT 0x0001
534 
538 #define GLFW_MOD_CONTROL 0x0002
539 
543 #define GLFW_MOD_ALT 0x0004
544 
548 #define GLFW_MOD_SUPER 0x0008
549 
554 #define GLFW_MOD_CAPS_LOCK 0x0010
555 
560 #define GLFW_MOD_NUM_LOCK 0x0020
561 
571 #define GLFW_MOUSE_BUTTON_1 0
572 #define GLFW_MOUSE_BUTTON_2 1
573 #define GLFW_MOUSE_BUTTON_3 2
574 #define GLFW_MOUSE_BUTTON_4 3
575 #define GLFW_MOUSE_BUTTON_5 4
576 #define GLFW_MOUSE_BUTTON_6 5
577 #define GLFW_MOUSE_BUTTON_7 6
578 #define GLFW_MOUSE_BUTTON_8 7
579 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
580 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
581 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
582 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
583 
592 #define GLFW_JOYSTICK_1 0
593 #define GLFW_JOYSTICK_2 1
594 #define GLFW_JOYSTICK_3 2
595 #define GLFW_JOYSTICK_4 3
596 #define GLFW_JOYSTICK_5 4
597 #define GLFW_JOYSTICK_6 5
598 #define GLFW_JOYSTICK_7 6
599 #define GLFW_JOYSTICK_8 7
600 #define GLFW_JOYSTICK_9 8
601 #define GLFW_JOYSTICK_10 9
602 #define GLFW_JOYSTICK_11 10
603 #define GLFW_JOYSTICK_12 11
604 #define GLFW_JOYSTICK_13 12
605 #define GLFW_JOYSTICK_14 13
606 #define GLFW_JOYSTICK_15 14
607 #define GLFW_JOYSTICK_16 15
608 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
609 
618 #define GLFW_GAMEPAD_BUTTON_A 0
619 #define GLFW_GAMEPAD_BUTTON_B 1
620 #define GLFW_GAMEPAD_BUTTON_X 2
621 #define GLFW_GAMEPAD_BUTTON_Y 3
622 #define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
623 #define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
624 #define GLFW_GAMEPAD_BUTTON_BACK 6
625 #define GLFW_GAMEPAD_BUTTON_START 7
626 #define GLFW_GAMEPAD_BUTTON_GUIDE 8
627 #define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
628 #define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
629 #define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
630 #define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
631 #define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
632 #define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
633 #define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
634 
635 #define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
636 #define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
637 #define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
638 #define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
639 
648 #define GLFW_GAMEPAD_AXIS_LEFT_X 0
649 #define GLFW_GAMEPAD_AXIS_LEFT_Y 1
650 #define GLFW_GAMEPAD_AXIS_RIGHT_X 2
651 #define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
652 #define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
653 #define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
654 #define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
655 
670 #define GLFW_NO_ERROR 0
671 
679 #define GLFW_NOT_INITIALIZED 0x00010001
680 
689 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
690 
697 #define GLFW_INVALID_ENUM 0x00010003
698 
708 #define GLFW_INVALID_VALUE 0x00010004
709 
716 #define GLFW_OUT_OF_MEMORY 0x00010005
717 
732 #define GLFW_API_UNAVAILABLE 0x00010006
733 
749 #define GLFW_VERSION_UNAVAILABLE 0x00010007
750 
760 #define GLFW_PLATFORM_ERROR 0x00010008
761 
779 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
780 
787 #define GLFW_NO_WINDOW_CONTEXT 0x0001000A
788 
797 #define GLFW_FOCUSED 0x00020001
798 
802 #define GLFW_ICONIFIED 0x00020002
803 
808 #define GLFW_RESIZABLE 0x00020003
809 
814 #define GLFW_VISIBLE 0x00020004
815 
820 #define GLFW_DECORATED 0x00020005
821 
826 #define GLFW_AUTO_ICONIFY 0x00020006
827 
832 #define GLFW_FLOATING 0x00020007
833 
838 #define GLFW_MAXIMIZED 0x00020008
839 
843 #define GLFW_CENTER_CURSOR 0x00020009
844 
850 #define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
851 
855 #define GLFW_HOVERED 0x0002000B
856 
861 #define GLFW_FOCUS_ON_SHOW 0x0002000C
862 
867 #define GLFW_RED_BITS 0x00021001
868 
872 #define GLFW_GREEN_BITS 0x00021002
873 
877 #define GLFW_BLUE_BITS 0x00021003
878 
882 #define GLFW_ALPHA_BITS 0x00021004
883 
887 #define GLFW_DEPTH_BITS 0x00021005
888 
892 #define GLFW_STENCIL_BITS 0x00021006
893 
897 #define GLFW_ACCUM_RED_BITS 0x00021007
898 
902 #define GLFW_ACCUM_GREEN_BITS 0x00021008
903 
907 #define GLFW_ACCUM_BLUE_BITS 0x00021009
908 
912 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
913 
917 #define GLFW_AUX_BUFFERS 0x0002100B
918 
922 #define GLFW_STEREO 0x0002100C
923 
927 #define GLFW_SAMPLES 0x0002100D
928 
932 #define GLFW_SRGB_CAPABLE 0x0002100E
933 
937 #define GLFW_REFRESH_RATE 0x0002100F
938 
942 #define GLFW_DOUBLEBUFFER 0x00021010
943 
949 #define GLFW_CLIENT_API 0x00022001
950 
955 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
956 
961 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
962 
967 #define GLFW_CONTEXT_REVISION 0x00022004
968 
973 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
974 
979 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
980 
985 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
986 
991 #define GLFW_OPENGL_PROFILE 0x00022008
992 
997 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
998 
1003 #define GLFW_CONTEXT_NO_ERROR 0x0002200A
1004 
1009 #define GLFW_CONTEXT_CREATION_API 0x0002200B
1010 
1013 #define GLFW_SCALE_TO_MONITOR 0x0002200C
1014 
1017 #define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
1018 
1021 #define GLFW_COCOA_FRAME_NAME 0x00023002
1022 
1025 #define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
1026 
1029 #define GLFW_X11_CLASS_NAME 0x00024001
1030 
1033 #define GLFW_X11_INSTANCE_NAME 0x00024002
1034 
1036 #define GLFW_NO_API 0
1037 #define GLFW_OPENGL_API 0x00030001
1038 #define GLFW_OPENGL_ES_API 0x00030002
1039 
1040 #define GLFW_NO_ROBUSTNESS 0
1041 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
1042 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
1043 
1044 #define GLFW_OPENGL_ANY_PROFILE 0
1045 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
1046 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
1047 
1048 #define GLFW_CURSOR 0x00033001
1049 #define GLFW_STICKY_KEYS 0x00033002
1050 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
1051 #define GLFW_LOCK_KEY_MODS 0x00033004
1052 #define GLFW_RAW_MOUSE_MOTION 0x00033005
1053 
1054 #define GLFW_CURSOR_NORMAL 0x00034001
1055 #define GLFW_CURSOR_HIDDEN 0x00034002
1056 #define GLFW_CURSOR_DISABLED 0x00034003
1057 
1058 #define GLFW_ANY_RELEASE_BEHAVIOR 0
1059 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
1060 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
1061 
1062 #define GLFW_NATIVE_CONTEXT_API 0x00036001
1063 #define GLFW_EGL_CONTEXT_API 0x00036002
1064 #define GLFW_OSMESA_CONTEXT_API 0x00036003
1065 
1078 #define GLFW_ARROW_CURSOR 0x00036001
1079 
1083 #define GLFW_IBEAM_CURSOR 0x00036002
1084 
1088 #define GLFW_CROSSHAIR_CURSOR 0x00036003
1089 
1093 #define GLFW_HAND_CURSOR 0x00036004
1094 
1098 #define GLFW_HRESIZE_CURSOR 0x00036005
1099 
1103 #define GLFW_VRESIZE_CURSOR 0x00036006
1104 
1106 #define GLFW_CONNECTED 0x00040001
1107 #define GLFW_DISCONNECTED 0x00040002
1108 
1115 #define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
1116 
1120 #define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
1121 
1125 #define GLFW_COCOA_MENUBAR 0x00051002
1126 
1128 #define GLFW_DONT_CARE -1
1129 
1130 
1131 /*************************************************************************
1132  * GLFW API types
1133  *************************************************************************/
1134 
1147 typedef void (*GLFWglproc)(void);
1148 
1161 typedef void (*GLFWvkproc)(void);
1162 
1173 typedef struct GLFWmonitor GLFWmonitor;
1174 
1185 typedef struct GLFWwindow GLFWwindow;
1186 
1197 typedef struct GLFWcursor GLFWcursor;
1198 
1221 typedef void (* GLFWerrorfun)(int error_code, const char* description);
1222 
1244 typedef void (* GLFWwindowposfun)(GLFWwindow* window, int xpos, int ypos);
1245 
1266 typedef void (* GLFWwindowsizefun)(GLFWwindow* window, int width, int height);
1267 
1286 typedef void (* GLFWwindowclosefun)(GLFWwindow* window);
1287 
1306 typedef void (* GLFWwindowrefreshfun)(GLFWwindow* window);
1307 
1327 typedef void (* GLFWwindowfocusfun)(GLFWwindow* window, int focused);
1328 
1348 typedef void (* GLFWwindowiconifyfun)(GLFWwindow* window, int iconified);
1349 
1369 typedef void (* GLFWwindowmaximizefun)(GLFWwindow* window, int maximized);
1370 
1390 typedef void (* GLFWframebuffersizefun)(GLFWwindow* window, int width, int height);
1391 
1411 typedef void (* GLFWwindowcontentscalefun)(GLFWwindow* window, float xscale, float yscale);
1412 
1437 typedef void (* GLFWmousebuttonfun)(GLFWwindow* window, int button, int action, int mods);
1438 
1460 typedef void (* GLFWcursorposfun)(GLFWwindow* window, double xpos, double ypos);
1461 
1481 typedef void (* GLFWcursorenterfun)(GLFWwindow* window, int entered);
1482 
1502 typedef void (* GLFWscrollfun)(GLFWwindow* window, double xoffset, double yoffset);
1503 
1528 typedef void (* GLFWkeyfun)(GLFWwindow* window, int key, int scancode, int action, int mods);
1529 
1549 typedef void (* GLFWcharfun)(GLFWwindow* window, unsigned int codepoint);
1550 
1576 typedef void (* GLFWcharmodsfun)(GLFWwindow* window, unsigned int codepoint, int mods);
1577 
1600 typedef void (* GLFWdropfun)(GLFWwindow* window, int path_count, const char* paths[]);
1601 
1621 typedef void (* GLFWmonitorfun)(GLFWmonitor* monitor, int event);
1622 
1642 typedef void (* GLFWjoystickfun)(int jid, int event);
1643 
1657 typedef struct GLFWvidmode
1658 {
1661  int width;
1664  int height;
1667  int redBits;
1677 } GLFWvidmode;
1678 
1691 typedef struct GLFWgammaramp
1692 {
1695  unsigned short* red;
1698  unsigned short* green;
1701  unsigned short* blue;
1704  unsigned int size;
1705 } GLFWgammaramp;
1706 
1720 typedef struct GLFWimage
1721 {
1724  int width;
1727  int height;
1730  unsigned char* pixels;
1731 } GLFWimage;
1732 
1744 typedef struct GLFWgamepadstate
1745 {
1749  unsigned char buttons[15];
1753  float axes[6];
1755 
1756 
1757 /*************************************************************************
1758  * GLFW API functions
1759  *************************************************************************/
1760 
1797 GLFWAPI int glfwInit(void);
1798 
1831 GLFWAPI void glfwTerminate(void);
1832 
1863 GLFWAPI void glfwInitHint(int hint, int value);
1864 
1890 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1891 
1921 GLFWAPI const char* glfwGetVersionString(void);
1922 
1952 GLFWAPI int glfwGetError(const char** description);
1953 
1999 
2027 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
2028 
2051 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
2052 
2076 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
2077 
2107 GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
2108 
2141 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
2142 
2173 GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
2174 
2199 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
2200 
2225 GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
2226 
2249 GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
2250 
2280 
2313 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
2314 
2341 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
2342 
2374 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
2375 
2404 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
2405 
2445 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
2446 
2464 GLFWAPI void glfwDefaultWindowHints(void);
2465 
2499 GLFWAPI void glfwWindowHint(int hint, int value);
2500 
2537 GLFWAPI void glfwWindowHintString(int hint, const char* value);
2538 
2691 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
2692 
2720 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
2721 
2740 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
2741 
2762 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
2763 
2787 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
2788 
2834 GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
2835 
2866 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
2867 
2901 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
2902 
2931 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
2932 
2974 GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
2975 
3017 GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
3018 
3058 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
3059 
3087 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
3088 
3124 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
3125 
3157 GLFWAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
3158 
3184 GLFWAPI float glfwGetWindowOpacity(GLFWwindow* window);
3185 
3213 GLFWAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
3214 
3241 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
3242 
3268 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
3269 
3293 GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
3294 
3325 GLFWAPI void glfwShowWindow(GLFWwindow* window);
3326 
3347 GLFWAPI void glfwHideWindow(GLFWwindow* window);
3348 
3386 GLFWAPI void glfwFocusWindow(GLFWwindow* window);
3387 
3413 GLFWAPI void glfwRequestWindowAttention(GLFWwindow* window);
3414 
3435 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
3436 
3494 GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
3495 
3531 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
3532 
3568 GLFWAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
3569 
3591 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
3592 
3612 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
3613 
3648 
3680 
3720 
3756 
3791 
3824 
3854 
3884 
3915 
3952 GLFWAPI void glfwPollEvents(void);
3953 
3997 GLFWAPI void glfwWaitEvents(void);
3998 
4046 GLFWAPI void glfwWaitEventsTimeout(double timeout);
4047 
4066 GLFWAPI void glfwPostEmptyEvent(void);
4067 
4091 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
4092 
4153 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
4154 
4182 GLFWAPI int glfwRawMouseMotionSupported(void);
4183 
4250 GLFWAPI const char* glfwGetKeyName(int key, int scancode);
4251 
4274 GLFWAPI int glfwGetKeyScancode(int key);
4275 
4313 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
4314 
4342 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
4343 
4380 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
4381 
4420 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
4421 
4458 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
4459 
4481 GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
4482 
4508 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
4509 
4535 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
4536 
4585 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
4586 
4628 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback);
4629 
4671 
4708 
4740 
4771 
4804 GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
4805 
4841 GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback);
4842 
4865 GLFWAPI int glfwJoystickPresent(int jid);
4866 
4898 GLFWAPI const float* glfwGetJoystickAxes(int jid, int* count);
4899 
4939 GLFWAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
4940 
4996 GLFWAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
4997 
5027 GLFWAPI const char* glfwGetJoystickName(int jid);
5028 
5068 GLFWAPI const char* glfwGetJoystickGUID(int jid);
5069 
5094 GLFWAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
5095 
5118 GLFWAPI void* glfwGetJoystickUserPointer(int jid);
5119 
5146 GLFWAPI int glfwJoystickIsGamepad(int jid);
5147 
5183 
5216 GLFWAPI int glfwUpdateGamepadMappings(const char* string);
5217 
5248 GLFWAPI const char* glfwGetGamepadName(int jid);
5249 
5286 GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
5287 
5311 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
5312 
5341 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
5342 
5371 GLFWAPI double glfwGetTime(void);
5372 
5401 GLFWAPI void glfwSetTime(double time);
5402 
5423 GLFWAPI uint64_t glfwGetTimerValue(void);
5424 
5443 GLFWAPI uint64_t glfwGetTimerFrequency(void);
5444 
5481 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
5482 
5502 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
5503 
5536 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
5537 
5582 GLFWAPI void glfwSwapInterval(int interval);
5583 
5620 GLFWAPI int glfwExtensionSupported(const char* extension);
5621 
5662 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
5663 
5688 GLFWAPI int glfwVulkanSupported(void);
5689 
5732 GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
5733 
5734 #if defined(VK_VERSION_1_0)
5735 
5775 GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
5776 
5812 GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
5813 
5875 GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
5876 
5877 #endif /*VK_VERSION_1_0*/
5878 
5879 
5880 /*************************************************************************
5881  * Global definition cleanup
5882  *************************************************************************/
5883 
5884 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
5885 
5886 #ifdef GLFW_WINGDIAPI_DEFINED
5887  #undef WINGDIAPI
5888  #undef GLFW_WINGDIAPI_DEFINED
5889 #endif
5890 
5891 #ifdef GLFW_CALLBACK_DEFINED
5892  #undef CALLBACK
5893  #undef GLFW_CALLBACK_DEFINED
5894 #endif
5895 
5896 /* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
5897  * defined by some gl.h variants (OpenBSD) so define it after if needed.
5898  */
5899 #ifndef GLAPIENTRY
5900  #define GLAPIENTRY APIENTRY
5901  #define GLFW_GLAPIENTRY_DEFINED
5902 #endif
5903 
5904 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
5905 
5906 
5907 #ifdef __cplusplus
5908 }
5909 #endif
5910 
5911 #endif /* _glfw3_h_ */
5912 
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
unsigned char * pixels
Definition: glfw3.h:1730
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
GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
Definition: window.c:1073
struct GLFWimage GLFWimage
Image data.
int height
Definition: glfw3.h:1727
GLFWAPI float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
Definition: window.c:757
void(* GLFWjoystickfun)(int jid, int event)
The function pointer type for joystick configuration callbacks.
Definition: glfw3.h:1642
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
unsigned short * blue
Definition: glfw3.h:1701
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
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
unsigned short * red
Definition: glfw3.h:1695
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 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.
unsigned int size
Definition: glfw3.h:1704
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 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(* 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
int width
Definition: glfw3.h:1724
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
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
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
unsigned short * green
Definition: glfw3.h:1698
GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer of the specified monitor.
Definition: monitor.c:404
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
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
GLFWAPI void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
Definition: init.c:440