GLFW

- Documentation
- Download
- Community

glfw3.h
Go to the documentation of this file.
1 /*************************************************************************
2 * GLFW 3.3 - www.glfw.org
3 * A library for OpenGL, window and input
4 *------------------------------------------------------------------------
5 * Copyright (c) 2002-2006 Marcus Geelnard
6 * Copyright (c) 2006-2019 Camilla Löwy <elmindreda@glfw.org>
7 *
8 * This software is provided 'as-is', without any express or implied
9 * warranty. In no event will the authors be held liable for any damages
10 * arising from the use of this software.
11 *
12 * Permission is granted to anyone to use this software for any purpose,
13 * including commercial applications, and to alter it and redistribute it
14 * freely, subject to the following restrictions:
15 *
16 * 1. The origin of this software must not be misrepresented; you must not
17 * claim that you wrote the original software. If you use this software
18 * in a product, an acknowledgment in the product documentation would
19 * be appreciated but is not required.
20 *
21 * 2. Altered source versions must be plainly marked as such, and must not
22 * be misrepresented as being the original software.
23 *
24 * 3. This notice may not be removed or altered from any source
25 * distribution.
26 *
27 *************************************************************************/
28
29 #ifndef _glfw3_h_
30 #define _glfw3_h_
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36
37 /*************************************************************************
38 * Doxygen documentation
39 *************************************************************************/
40
89 /*************************************************************************
90 * Compiler- and platform-specific preprocessor work
91 *************************************************************************/
92
93 /* If we are we on Windows, we want a single define for it.
94 */
95 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
96 #define _WIN32
97 #endif /* _WIN32 */
98
99 /* Include because most Windows GLU headers need wchar_t and
100 * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h.
101 * Include it unconditionally to avoid surprising side-effects.
102 */
103 #include <stddef.h>
104
105 /* Include because it is needed by Vulkan and related functions.
106 * Include it unconditionally to avoid surprising side-effects.
107 */
108 #include <stdint.h>
109
110 #if defined(GLFW_INCLUDE_VULKAN)
111 #include <vulkan/vulkan.h>
112 #endif /* Vulkan header */
113
114 /* The Vulkan header may have indirectly included windows.h (because of
115 * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it.
116 */
117
118 /* It is customary to use APIENTRY for OpenGL function pointer declarations on
119 * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
120 */
121 #if !defined(APIENTRY)
122 #if defined(_WIN32)
123 #define APIENTRY __stdcall
124 #else
125 #define APIENTRY
126 #endif
127 #define GLFW_APIENTRY_DEFINED
128 #endif /* APIENTRY */
129
130 /* Some Windows OpenGL headers need this.
131 */
132 #if !defined(WINGDIAPI) && defined(_WIN32)
133 #define WINGDIAPI __declspec(dllimport)
134 #define GLFW_WINGDIAPI_DEFINED
135 #endif /* WINGDIAPI */
136
137 /* Some Windows GLU headers need this.
138 */
139 #if !defined(CALLBACK) && defined(_WIN32)
140 #define CALLBACK __stdcall
141 #define GLFW_CALLBACK_DEFINED
142 #endif /* CALLBACK */
143
144 /* Include the chosen OpenGL or OpenGL ES headers.
145 */
146 #if defined(GLFW_INCLUDE_ES1)
147
148 #include <GLES/gl.h>
149 #if defined(GLFW_INCLUDE_GLEXT)
150 #include <GLES/glext.h>
151 #endif
152
153 #elif defined(GLFW_INCLUDE_ES2)
154
155 #include <GLES2/gl2.h>
156 #if defined(GLFW_INCLUDE_GLEXT)
157 #include <GLES2/gl2ext.h>
158 #endif
159
160 #elif defined(GLFW_INCLUDE_ES3)
161
162 #include <GLES3/gl3.h>
163 #if defined(GLFW_INCLUDE_GLEXT)
164 #include <GLES2/gl2ext.h>
165 #endif
166
167 #elif defined(GLFW_INCLUDE_ES31)
168
169 #include <GLES3/gl31.h>
170 #if defined(GLFW_INCLUDE_GLEXT)
171 #include <GLES2/gl2ext.h>
172 #endif
173
174 #elif defined(GLFW_INCLUDE_ES32)
175
176 #include <GLES3/gl32.h>
177 #if defined(GLFW_INCLUDE_GLEXT)
178 #include <GLES2/gl2ext.h>
179 #endif
180
181 #elif defined(GLFW_INCLUDE_GLCOREARB)
182
183 #if defined(__APPLE__)
184
185 #include <OpenGL/gl3.h>
186 #if defined(GLFW_INCLUDE_GLEXT)
187 #include <OpenGL/gl3ext.h>
188 #endif /*GLFW_INCLUDE_GLEXT*/
189
190 #else /*__APPLE__*/
191
192 #include <GL/glcorearb.h>
193
194 #endif /*__APPLE__*/
195
196 #elif defined(GLFW_INCLUDE_GLU)
197
198 #if defined(__APPLE__)
199
200 #if defined(GLFW_INCLUDE_GLU)
201 #include <OpenGL/glu.h>
202 #endif
203
204 #else /*__APPLE__*/
205
206 #if defined(GLFW_INCLUDE_GLU)
207 #include <GL/glu.h>
208 #endif
209
210 #endif /*__APPLE__*/
211
212 #elif !defined(GLFW_INCLUDE_NONE) && \
213 !defined(__gl_h_) && \
214 !defined(__gles1_gl_h_) && \
215 !defined(__gles2_gl2_h_) && \
216 !defined(__gles2_gl3_h_) && \
217 !defined(__gles2_gl31_h_) && \
218 !defined(__gles2_gl32_h_) && \
219 !defined(__gl_glcorearb_h_) && \
220 !defined(__gl2_h_) /*legacy*/ && \
221 !defined(__gl3_h_) /*legacy*/ && \
222 !defined(__gl31_h_) /*legacy*/ && \
223 !defined(__gl32_h_) /*legacy*/ && \
224 !defined(__glcorearb_h_) /*legacy*/ && \
225 !defined(__GL_H__) /*non-standard*/ && \
226 !defined(__gltypes_h_) /*non-standard*/ && \
227 !defined(__glee_h_) /*non-standard*/
228
229 #if defined(__APPLE__)
230
231 #if !defined(GLFW_INCLUDE_GLEXT)
232 #define GL_GLEXT_LEGACY
233 #endif
234 #include <OpenGL/gl.h>
235
236 #else /*__APPLE__*/
237
238 #include <GL/gl.h>
239 #if defined(GLFW_INCLUDE_GLEXT)
240 #include <GL/glext.h>
241 #endif
242
243 #endif /*__APPLE__*/
244
245 #endif /* OpenGL and OpenGL ES headers */
246
247 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
248 /* GLFW_DLL must be defined by applications that are linking against the DLL
249 * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
250 * configuration header when compiling the DLL version of the library.
251 */
252 #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
253 #endif
254
255 /* GLFWAPI is used to declare public API functions for export
256 * from the DLL / shared library / dynamic library.
257 */
258 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
259 /* We are building GLFW as a Win32 DLL */
260 #define GLFWAPI __declspec(dllexport)
261 #elif defined(_WIN32) && defined(GLFW_DLL)
262 /* We are calling GLFW as a Win32 DLL */
263 #define GLFWAPI __declspec(dllimport)
264 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
265 /* We are building GLFW as a shared / dynamic library */
266 #define GLFWAPI __attribute__((visibility("default")))
267 #else
268 /* We are building or calling GLFW as a static library */
269 #define GLFWAPI
270 #endif
271
272
273 /*************************************************************************
274 * GLFW API tokens
275 *************************************************************************/
276
284 #define GLFW_VERSION_MAJOR 3
291 #define GLFW_VERSION_MINOR 3
298 #define GLFW_VERSION_REVISION 4
309 #define GLFW_TRUE 1
318 #define GLFW_FALSE 0
319
328 #define GLFW_RELEASE 0
335 #define GLFW_PRESS 1
342 #define GLFW_REPEAT 2
352 #define GLFW_HAT_CENTERED 0
353 #define GLFW_HAT_UP 1
354 #define GLFW_HAT_RIGHT 2
355 #define GLFW_HAT_DOWN 4
356 #define GLFW_HAT_LEFT 8
357 #define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
358 #define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
359 #define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
360 #define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
387 /* The unknown key */
388 #define GLFW_KEY_UNKNOWN -1
389
390 /* Printable keys */
391 #define GLFW_KEY_SPACE 32
392 #define GLFW_KEY_APOSTROPHE 39 /* ' */
393 #define GLFW_KEY_COMMA 44 /* , */
394 #define GLFW_KEY_MINUS 45 /* - */
395 #define GLFW_KEY_PERIOD 46 /* . */
396 #define GLFW_KEY_SLASH 47 /* / */
397 #define GLFW_KEY_0 48
398 #define GLFW_KEY_1 49
399 #define GLFW_KEY_2 50
400 #define GLFW_KEY_3 51
401 #define GLFW_KEY_4 52
402 #define GLFW_KEY_5 53
403 #define GLFW_KEY_6 54
404 #define GLFW_KEY_7 55
405 #define GLFW_KEY_8 56
406 #define GLFW_KEY_9 57
407 #define GLFW_KEY_SEMICOLON 59 /* ; */
408 #define GLFW_KEY_EQUAL 61 /* = */
409 #define GLFW_KEY_A 65
410 #define GLFW_KEY_B 66
411 #define GLFW_KEY_C 67
412 #define GLFW_KEY_D 68
413 #define GLFW_KEY_E 69
414 #define GLFW_KEY_F 70
415 #define GLFW_KEY_G 71
416 #define GLFW_KEY_H 72
417 #define GLFW_KEY_I 73
418 #define GLFW_KEY_J 74
419 #define GLFW_KEY_K 75
420 #define GLFW_KEY_L 76
421 #define GLFW_KEY_M 77
422 #define GLFW_KEY_N 78
423 #define GLFW_KEY_O 79
424 #define GLFW_KEY_P 80
425 #define GLFW_KEY_Q 81
426 #define GLFW_KEY_R 82
427 #define GLFW_KEY_S 83
428 #define GLFW_KEY_T 84
429 #define GLFW_KEY_U 85
430 #define GLFW_KEY_V 86
431 #define GLFW_KEY_W 87
432 #define GLFW_KEY_X 88
433 #define GLFW_KEY_Y 89
434 #define GLFW_KEY_Z 90
435 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
436 #define GLFW_KEY_BACKSLASH 92 /* \ */
437 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
438 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
439 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
440 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
441
442 /* Function keys */
443 #define GLFW_KEY_ESCAPE 256
444 #define GLFW_KEY_ENTER 257
445 #define GLFW_KEY_TAB 258
446 #define GLFW_KEY_BACKSPACE 259
447 #define GLFW_KEY_INSERT 260
448 #define GLFW_KEY_DELETE 261
449 #define GLFW_KEY_RIGHT 262
450 #define GLFW_KEY_LEFT 263
451 #define GLFW_KEY_DOWN 264
452 #define GLFW_KEY_UP 265
453 #define GLFW_KEY_PAGE_UP 266
454 #define GLFW_KEY_PAGE_DOWN 267
455 #define GLFW_KEY_HOME 268
456 #define GLFW_KEY_END 269
457 #define GLFW_KEY_CAPS_LOCK 280
458 #define GLFW_KEY_SCROLL_LOCK 281
459 #define GLFW_KEY_NUM_LOCK 282
460 #define GLFW_KEY_PRINT_SCREEN 283
461 #define GLFW_KEY_PAUSE 284
462 #define GLFW_KEY_F1 290
463 #define GLFW_KEY_F2 291
464 #define GLFW_KEY_F3 292
465 #define GLFW_KEY_F4 293
466 #define GLFW_KEY_F5 294
467 #define GLFW_KEY_F6 295
468 #define GLFW_KEY_F7 296
469 #define GLFW_KEY_F8 297
470 #define GLFW_KEY_F9 298
471 #define GLFW_KEY_F10 299
472 #define GLFW_KEY_F11 300
473 #define GLFW_KEY_F12 301
474 #define GLFW_KEY_F13 302
475 #define GLFW_KEY_F14 303
476 #define GLFW_KEY_F15 304
477 #define GLFW_KEY_F16 305
478 #define GLFW_KEY_F17 306
479 #define GLFW_KEY_F18 307
480 #define GLFW_KEY_F19 308
481 #define GLFW_KEY_F20 309
482 #define GLFW_KEY_F21 310
483 #define GLFW_KEY_F22 311
484 #define GLFW_KEY_F23 312
485 #define GLFW_KEY_F24 313
486 #define GLFW_KEY_F25 314
487 #define GLFW_KEY_KP_0 320
488 #define GLFW_KEY_KP_1 321
489 #define GLFW_KEY_KP_2 322
490 #define GLFW_KEY_KP_3 323
491 #define GLFW_KEY_KP_4 324
492 #define GLFW_KEY_KP_5 325
493 #define GLFW_KEY_KP_6 326
494 #define GLFW_KEY_KP_7 327
495 #define GLFW_KEY_KP_8 328
496 #define GLFW_KEY_KP_9 329
497 #define GLFW_KEY_KP_DECIMAL 330
498 #define GLFW_KEY_KP_DIVIDE 331
499 #define GLFW_KEY_KP_MULTIPLY 332
500 #define GLFW_KEY_KP_SUBTRACT 333
501 #define GLFW_KEY_KP_ADD 334
502 #define GLFW_KEY_KP_ENTER 335
503 #define GLFW_KEY_KP_EQUAL 336
504 #define GLFW_KEY_LEFT_SHIFT 340
505 #define GLFW_KEY_LEFT_CONTROL 341
506 #define GLFW_KEY_LEFT_ALT 342
507 #define GLFW_KEY_LEFT_SUPER 343
508 #define GLFW_KEY_RIGHT_SHIFT 344
509 #define GLFW_KEY_RIGHT_CONTROL 345
510 #define GLFW_KEY_RIGHT_ALT 346
511 #define GLFW_KEY_RIGHT_SUPER 347
512 #define GLFW_KEY_MENU 348
513
514 #define GLFW_KEY_LAST GLFW_KEY_MENU
515
530 #define GLFW_MOD_SHIFT 0x0001
535 #define GLFW_MOD_CONTROL 0x0002
540 #define GLFW_MOD_ALT 0x0004
545 #define GLFW_MOD_SUPER 0x0008
551 #define GLFW_MOD_CAPS_LOCK 0x0010
557 #define GLFW_MOD_NUM_LOCK 0x0020
558
568 #define GLFW_MOUSE_BUTTON_1 0
569 #define GLFW_MOUSE_BUTTON_2 1
570 #define GLFW_MOUSE_BUTTON_3 2
571 #define GLFW_MOUSE_BUTTON_4 3
572 #define GLFW_MOUSE_BUTTON_5 4
573 #define GLFW_MOUSE_BUTTON_6 5
574 #define GLFW_MOUSE_BUTTON_7 6
575 #define GLFW_MOUSE_BUTTON_8 7
576 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
577 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
578 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
579 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
589 #define GLFW_JOYSTICK_1 0
590 #define GLFW_JOYSTICK_2 1
591 #define GLFW_JOYSTICK_3 2
592 #define GLFW_JOYSTICK_4 3
593 #define GLFW_JOYSTICK_5 4
594 #define GLFW_JOYSTICK_6 5
595 #define GLFW_JOYSTICK_7 6
596 #define GLFW_JOYSTICK_8 7
597 #define GLFW_JOYSTICK_9 8
598 #define GLFW_JOYSTICK_10 9
599 #define GLFW_JOYSTICK_11 10
600 #define GLFW_JOYSTICK_12 11
601 #define GLFW_JOYSTICK_13 12
602 #define GLFW_JOYSTICK_14 13
603 #define GLFW_JOYSTICK_15 14
604 #define GLFW_JOYSTICK_16 15
605 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
615 #define GLFW_GAMEPAD_BUTTON_A 0
616 #define GLFW_GAMEPAD_BUTTON_B 1
617 #define GLFW_GAMEPAD_BUTTON_X 2
618 #define GLFW_GAMEPAD_BUTTON_Y 3
619 #define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
620 #define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
621 #define GLFW_GAMEPAD_BUTTON_BACK 6
622 #define GLFW_GAMEPAD_BUTTON_START 7
623 #define GLFW_GAMEPAD_BUTTON_GUIDE 8
624 #define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
625 #define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
626 #define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
627 #define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
628 #define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
629 #define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
630 #define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
631
632 #define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
633 #define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
634 #define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
635 #define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
645 #define GLFW_GAMEPAD_AXIS_LEFT_X 0
646 #define GLFW_GAMEPAD_AXIS_LEFT_Y 1
647 #define GLFW_GAMEPAD_AXIS_RIGHT_X 2
648 #define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
649 #define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
650 #define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
651 #define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
667 #define GLFW_NO_ERROR 0
676 #define GLFW_NOT_INITIALIZED 0x00010001
686 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
694 #define GLFW_INVALID_ENUM 0x00010003
705 #define GLFW_INVALID_VALUE 0x00010004
713 #define GLFW_OUT_OF_MEMORY 0x00010005
729 #define GLFW_API_UNAVAILABLE 0x00010006
746 #define GLFW_VERSION_UNAVAILABLE 0x00010007
757 #define GLFW_PLATFORM_ERROR 0x00010008
776 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
784 #define GLFW_NO_WINDOW_CONTEXT 0x0001000A
794 #define GLFW_FOCUSED 0x00020001
799 #define GLFW_ICONIFIED 0x00020002
805 #define GLFW_RESIZABLE 0x00020003
811 #define GLFW_VISIBLE 0x00020004
817 #define GLFW_DECORATED 0x00020005
823 #define GLFW_AUTO_ICONIFY 0x00020006
829 #define GLFW_FLOATING 0x00020007
835 #define GLFW_MAXIMIZED 0x00020008
840 #define GLFW_CENTER_CURSOR 0x00020009
847 #define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
852 #define GLFW_HOVERED 0x0002000B
858 #define GLFW_FOCUS_ON_SHOW 0x0002000C
859
864 #define GLFW_RED_BITS 0x00021001
869 #define GLFW_GREEN_BITS 0x00021002
874 #define GLFW_BLUE_BITS 0x00021003
879 #define GLFW_ALPHA_BITS 0x00021004
884 #define GLFW_DEPTH_BITS 0x00021005
889 #define GLFW_STENCIL_BITS 0x00021006
894 #define GLFW_ACCUM_RED_BITS 0x00021007
899 #define GLFW_ACCUM_GREEN_BITS 0x00021008
904 #define GLFW_ACCUM_BLUE_BITS 0x00021009
909 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
914 #define GLFW_AUX_BUFFERS 0x0002100B
919 #define GLFW_STEREO 0x0002100C
924 #define GLFW_SAMPLES 0x0002100D
929 #define GLFW_SRGB_CAPABLE 0x0002100E
934 #define GLFW_REFRESH_RATE 0x0002100F
939 #define GLFW_DOUBLEBUFFER 0x00021010
940
946 #define GLFW_CLIENT_API 0x00022001
952 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
958 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
964 #define GLFW_CONTEXT_REVISION 0x00022004
970 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
976 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
982 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
988 #define GLFW_OPENGL_PROFILE 0x00022008
994 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
1000 #define GLFW_CONTEXT_NO_ERROR 0x0002200A
1006 #define GLFW_CONTEXT_CREATION_API 0x0002200B
1010 #define GLFW_SCALE_TO_MONITOR 0x0002200C
1014 #define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
1018 #define GLFW_COCOA_FRAME_NAME 0x00023002
1022 #define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
1026 #define GLFW_X11_CLASS_NAME 0x00024001
1030 #define GLFW_X11_INSTANCE_NAME 0x00024002
1033 #define GLFW_NO_API 0
1034 #define GLFW_OPENGL_API 0x00030001
1035 #define GLFW_OPENGL_ES_API 0x00030002
1036
1037 #define GLFW_NO_ROBUSTNESS 0
1038 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
1039 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
1040
1041 #define GLFW_OPENGL_ANY_PROFILE 0
1042 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
1043 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
1044
1045 #define GLFW_CURSOR 0x00033001
1046 #define GLFW_STICKY_KEYS 0x00033002
1047 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
1048 #define GLFW_LOCK_KEY_MODS 0x00033004
1049 #define GLFW_RAW_MOUSE_MOTION 0x00033005
1050
1051 #define GLFW_CURSOR_NORMAL 0x00034001
1052 #define GLFW_CURSOR_HIDDEN 0x00034002
1053 #define GLFW_CURSOR_DISABLED 0x00034003
1054
1055 #define GLFW_ANY_RELEASE_BEHAVIOR 0
1056 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
1057 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
1058
1059 #define GLFW_NATIVE_CONTEXT_API 0x00036001
1060 #define GLFW_EGL_CONTEXT_API 0x00036002
1061 #define GLFW_OSMESA_CONTEXT_API 0x00036003
1062
1075 #define GLFW_ARROW_CURSOR 0x00036001
1080 #define GLFW_IBEAM_CURSOR 0x00036002
1085 #define GLFW_CROSSHAIR_CURSOR 0x00036003
1090 #define GLFW_HAND_CURSOR 0x00036004
1095 #define GLFW_HRESIZE_CURSOR 0x00036005
1100 #define GLFW_VRESIZE_CURSOR 0x00036006
1103 #define GLFW_CONNECTED 0x00040001
1104 #define GLFW_DISCONNECTED 0x00040002
1105
1112 #define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
1117 #define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
1122 #define GLFW_COCOA_MENUBAR 0x00051002
1125 #define GLFW_DONT_CARE -1
1126
1127
1128 /*************************************************************************
1129 * GLFW API types
1130 *************************************************************************/
1131
1144 typedef void (*GLFWglproc)(void);
1145
1158 typedef void (*GLFWvkproc)(void);
1159
1170 typedef struct GLFWmonitor GLFWmonitor;
1171
1182 typedef struct GLFWwindow GLFWwindow;
1183
1194 typedef struct GLFWcursor GLFWcursor;
1195
1218 typedef void (* GLFWerrorfun)(int,const char*);
1219
1241 typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
1242
1263 typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
1264
1283 typedef void (* GLFWwindowclosefun)(GLFWwindow*);
1284
1303 typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
1304
1324 typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
1325
1345 typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
1346
1366 typedef void (* GLFWwindowmaximizefun)(GLFWwindow*,int);
1367
1387 typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
1388
1408 typedef void (* GLFWwindowcontentscalefun)(GLFWwindow*,float,float);
1409
1434 typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
1435
1457 typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
1458
1478 typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
1479
1499 typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
1500
1525 typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
1526
1546 typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
1547
1573 typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
1574
1597 typedef void (* GLFWdropfun)(GLFWwindow*,int,const char*[]);
1598
1618 typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
1619
1639 typedef void (* GLFWjoystickfun)(int,int);
1640
1654 typedef struct GLFWvidmode
1655 {
1658 int width;
1661 int height;
1664 int redBits;
1667 int greenBits;
1670 int blueBits;
1673 int refreshRate;
1674 } GLFWvidmode;
1675
1688 typedef struct GLFWgammaramp
1689 {
1692 unsigned short* red;
1695 unsigned short* green;
1698 unsigned short* blue;
1701 unsigned int size;
1702 } GLFWgammaramp;
1703
1717 typedef struct GLFWimage
1718 {
1721 int width;
1724 int height;
1727 unsigned char* pixels;
1728 } GLFWimage;
1729
1741 typedef struct GLFWgamepadstate
1742 {
1746 unsigned char buttons[15];
1750 float axes[6];
1751 } GLFWgamepadstate;
1752
1753
1754 /*************************************************************************
1755 * GLFW API functions
1756 *************************************************************************/
1757
1794 GLFWAPI int glfwInit(void);
1795
1828 GLFWAPI void glfwTerminate(void);
1829
1860 GLFWAPI void glfwInitHint(int hint, int value);
1861
1887 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1888
1918 GLFWAPI const char* glfwGetVersionString(void);
1919
1949 GLFWAPI int glfwGetError(const char** description);
1950
1995 GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback);
1996
2024 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
2025
2048 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
2049
2073 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
2074
2104 GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
2105
2138 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
2139
2170 GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
2171
2196 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
2197
2222 GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
2223
2246 GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
2247
2276 GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback);
2277
2309 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
2310
2337 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
2338
2370 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
2371
2400 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
2401
2441 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
2442
2460 GLFWAPI void glfwDefaultWindowHints(void);
2461
2495 GLFWAPI void glfwWindowHint(int hint, int value);
2496
2533 GLFWAPI void glfwWindowHintString(int hint, const char* value);
2534
2687 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
2688
2716 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
2717
2736 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
2737
2758 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
2759
2783 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
2784
2830 GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
2831
2862 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
2863
2897 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
2898
2927 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
2928
2970 GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
2971
3013 GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
3014
3054 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
3055
3083 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
3084
3120 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
3121
3153 GLFWAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
3154
3180 GLFWAPI float glfwGetWindowOpacity(GLFWwindow* window);
3181
3209 GLFWAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
3210
3240 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
3241
3267 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
3268
3292 GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
3293
3319 GLFWAPI void glfwShowWindow(GLFWwindow* window);
3320
3341 GLFWAPI void glfwHideWindow(GLFWwindow* window);
3342
3380 GLFWAPI void glfwFocusWindow(GLFWwindow* window);
3381
3407 GLFWAPI void glfwRequestWindowAttention(GLFWwindow* window);
3408
3429 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
3430
3488 GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
3489
3522 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
3523
3559 GLFWAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
3560
3582 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
3583
3603 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
3604
3638 GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun callback);
3639
3670 GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun callback);
3671
3710 GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun callback);
3711
3746 GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun callback);
3747
3781 GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun callback);
3782
3814 GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun callback);
3815
3844 GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, GLFWwindowmaximizefun callback);
3845
3874 GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun callback);
3875
3905 GLFWAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow* window, GLFWwindowcontentscalefun callback);
3906
3943 GLFWAPI void glfwPollEvents(void);
3944
3988 GLFWAPI void glfwWaitEvents(void);
3989
4037 GLFWAPI void glfwWaitEventsTimeout(double timeout);
4038
4057 GLFWAPI void glfwPostEmptyEvent(void);
4058
4082 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
4083
4144 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
4145
4173 GLFWAPI int glfwRawMouseMotionSupported(void);
4174
4241 GLFWAPI const char* glfwGetKeyName(int key, int scancode);
4242
4265 GLFWAPI int glfwGetKeyScancode(int key);
4266
4305 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
4306
4334 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
4335
4372 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
4373
4412 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
4413
4450 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
4451
4473 GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
4474
4500 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
4501
4527 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
4528
4577 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
4578
4620 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback);
4621
4662 GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun callback);
4663
4699 GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun callback);
4700
4731 GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun callback);
4732
4762 GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun callback);
4763
4796 GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
4797
4833 GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback);
4834
4857 GLFWAPI int glfwJoystickPresent(int jid);
4858
4890 GLFWAPI const float* glfwGetJoystickAxes(int jid, int* count);
4891
4931 GLFWAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
4932
4988 GLFWAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
4989
5019 GLFWAPI const char* glfwGetJoystickName(int jid);
5020
5060 GLFWAPI const char* glfwGetJoystickGUID(int jid);
5061
5086 GLFWAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
5087
5110 GLFWAPI void* glfwGetJoystickUserPointer(int jid);
5111
5138 GLFWAPI int glfwJoystickIsGamepad(int jid);
5139
5174 GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback);
5175
5208 GLFWAPI int glfwUpdateGamepadMappings(const char* string);
5209
5238 GLFWAPI const char* glfwGetGamepadName(int jid);
5239
5276 GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
5277
5301 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
5302
5331 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
5332
5361 GLFWAPI double glfwGetTime(void);
5362
5391 GLFWAPI void glfwSetTime(double time);
5392
5413 GLFWAPI uint64_t glfwGetTimerValue(void);
5414
5433 GLFWAPI uint64_t glfwGetTimerFrequency(void);
5434
5471 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
5472
5492 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
5493
5526 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
5527
5572 GLFWAPI void glfwSwapInterval(int interval);
5573
5610 GLFWAPI int glfwExtensionSupported(const char* extension);
5611
5652 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
5653
5680 GLFWAPI int glfwVulkanSupported(void);
5681
5728 GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
5729
5730 #if defined(VK_VERSION_1_0)
5731
5771 GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
5772
5808 GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
5809
5869 GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
5870
5871 #endif /*VK_VERSION_1_0*/
5872
5873
5874 /*************************************************************************
5875 * Global definition cleanup
5876 *************************************************************************/
5877
5878 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
5879
5880 #ifdef GLFW_WINGDIAPI_DEFINED
5881 #undef WINGDIAPI
5882 #undef GLFW_WINGDIAPI_DEFINED
5883 #endif
5884
5885 #ifdef GLFW_CALLBACK_DEFINED
5886 #undef CALLBACK
5887 #undef GLFW_CALLBACK_DEFINED
5888 #endif
5889
5890 /* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
5891 * defined by some gl.h variants (OpenBSD) so define it after if needed.
5892 */
5893 #ifndef GLAPIENTRY
5894 #define GLAPIENTRY APIENTRY
5895 #endif
5896
5897 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
5898
5899
5900 #ifdef __cplusplus
5901 }
5902 #endif
5903
5904 #endif /* _glfw3_h_ */
5905
glfwMakeContextCurrent
void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
glfwGetProcAddress
GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
GLFWglproc
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:1144
glfwSwapInterval
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
glfwExtensionSupported
int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
glfwGetCurrentContext
GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
glfwInitHint
void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
glfwGetVersionString
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
glfwInit
int glfwInit(void)
Initializes the GLFW library.
glfwGetError
int glfwGetError(const char **description)
Returns and clears the last error for the calling thread.
glfwGetVersion
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
GLFWerrorfun
void(* GLFWerrorfun)(int, const char *)
The function pointer type for error callbacks.
Definition: glfw3.h:1218
glfwTerminate
void glfwTerminate(void)
Terminates the GLFW library.
glfwSetErrorCallback
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
glfwGetCursorPos
void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)
Retrieves the position of the cursor relative to the content area of the window.
glfwSetCursorPos
void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)
Sets the position of the cursor, relative to the content area of the window.
glfwGetJoystickUserPointer
void * glfwGetJoystickUserPointer(int jid)
Returns the user pointer of the specified joystick.
GLFWscrollfun
void(* GLFWscrollfun)(GLFWwindow *, double, double)
The function pointer type for scroll callbacks.
Definition: glfw3.h:1499
GLFWcursorposfun
void(* GLFWcursorposfun)(GLFWwindow *, double, double)
The function pointer type for cursor position callbacks.
Definition: glfw3.h:1457
glfwGetTimerValue
uint64_t glfwGetTimerValue(void)
Returns the current value of the raw timer.
glfwSetCharModsCallback
GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun callback)
Sets the Unicode character with modifiers callback.
glfwSetKeyCallback
GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)
Sets the key callback.
glfwGetKeyName
const char * glfwGetKeyName(int key, int scancode)
Returns the layout-specific name of the specified printable key.
GLFWcharfun
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function pointer type for Unicode character callbacks.
Definition: glfw3.h:1546
glfwGetJoystickHats
const unsigned char * glfwGetJoystickHats(int jid, int *count)
Returns the state of all hats of the specified joystick.
glfwSetJoystickCallback
GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)
Sets the joystick configuration callback.
glfwGetTimerFrequency
uint64_t glfwGetTimerFrequency(void)
Returns the frequency, in Hz, of the raw timer.
glfwSetScrollCallback
GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)
Sets the scroll callback.
glfwGetClipboardString
const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
glfwGetGamepadName
const char * glfwGetGamepadName(int jid)
Returns the human-readable gamepad name for the specified joystick.
GLFWgamepadstate
struct GLFWgamepadstate GLFWgamepadstate
Gamepad input state.
glfwGetKeyScancode
int glfwGetKeyScancode(int key)
Returns the platform-specific scancode of the specified key.
glfwSetMouseButtonCallback
GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun callback)
Sets the mouse button callback.
glfwSetJoystickUserPointer
void glfwSetJoystickUserPointer(int jid, void *pointer)
Sets the user pointer of the specified joystick.
GLFWdropfun
void(* GLFWdropfun)(GLFWwindow *, int, const char *[])
The function pointer type for path drop callbacks.
Definition: glfw3.h:1597
GLFWcharmodsfun
void(* GLFWcharmodsfun)(GLFWwindow *, unsigned int, int)
The function pointer type for Unicode character with modifiers callbacks.
Definition: glfw3.h:1573
glfwDestroyCursor
void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
GLFWcursor
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition: glfw3.h:1194
GLFWcursorenterfun
void(* GLFWcursorenterfun)(GLFWwindow *, int)
The function pointer type for cursor enter/leave callbacks.
Definition: glfw3.h:1478
GLFWkeyfun
void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)
The function pointer type for keyboard key callbacks.
Definition: glfw3.h:1525
glfwCreateStandardCursor
GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
glfwGetTime
double glfwGetTime(void)
Returns the GLFW time.
glfwGetJoystickAxes
const float * glfwGetJoystickAxes(int jid, int *count)
Returns the values of all axes of the specified joystick.
glfwSetInputMode
void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
glfwSetCharCallback
GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun callback)
Sets the Unicode character callback.
glfwSetDropCallback
GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)
Sets the path drop callback.
glfwSetClipboardString
void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
glfwGetMouseButton
int glfwGetMouseButton(GLFWwindow *window, int button)
Returns the last reported state of a mouse button for the specified window.
glfwSetCursorPosCallback
GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)
Sets the cursor position callback.
GLFWmousebuttonfun
void(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)
The function pointer type for mouse button callbacks.
Definition: glfw3.h:1434
glfwJoystickIsGamepad
int glfwJoystickIsGamepad(int jid)
Returns whether the specified joystick has a gamepad mapping.
glfwSetCursorEnterCallback
GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun callback)
Sets the cursor enter/leave callback.
glfwSetCursor
void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)
Sets the cursor for the window.
glfwGetJoystickButtons
const unsigned char * glfwGetJoystickButtons(int jid, int *count)
Returns the state of all buttons of the specified joystick.
glfwGetGamepadState
int glfwGetGamepadState(int jid, GLFWgamepadstate *state)
Retrieves the state of the specified joystick remapped as a gamepad.
glfwGetKey
int glfwGetKey(GLFWwindow *window, int key)
Returns the last reported state of a keyboard key for the specified window.
glfwGetJoystickGUID
const char * glfwGetJoystickGUID(int jid)
Returns the SDL compatible GUID of the specified joystick.
glfwRawMouseMotionSupported
int glfwRawMouseMotionSupported(void)
Returns whether raw mouse motion is supported.
glfwJoystickPresent
int glfwJoystickPresent(int jid)
Returns whether the specified joystick is present.
glfwUpdateGamepadMappings
int glfwUpdateGamepadMappings(const char *string)
Adds the specified SDL_GameControllerDB gamepad mappings.
glfwSetTime
void glfwSetTime(double time)
Sets the GLFW time.
glfwGetInputMode
int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
glfwGetJoystickName
const char * glfwGetJoystickName(int jid)
Returns the name of the specified joystick.
GLFWjoystickfun
void(* GLFWjoystickfun)(int, int)
The function pointer type for joystick configuration callbacks.
Definition: glfw3.h:1639
glfwCreateCursor
GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
glfwGetMonitorPos
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
glfwGetMonitors
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
glfwSetGammaRamp
void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
glfwSetGamma
void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
glfwSetMonitorUserPointer
void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer of the specified monitor.
glfwGetPrimaryMonitor
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
glfwGetMonitorWorkarea
void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
glfwGetMonitorName
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
glfwGetMonitorPhysicalSize
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
glfwGetVideoModes
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
GLFWmonitor
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:1170
GLFWvidmode
struct GLFWvidmode GLFWvidmode
Video mode type.
GLFWgammaramp
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
glfwSetMonitorCallback
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
glfwGetGammaRamp
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
glfwGetMonitorUserPointer
void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
GLFWmonitorfun
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function pointer type for monitor configuration callbacks.
Definition: glfw3.h:1618
glfwGetMonitorContentScale
void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for the specified monitor.
glfwGetVideoMode
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
glfwCreateWindowSurface
VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)
Creates a Vulkan surface for the specified window.
glfwGetRequiredInstanceExtensions
const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
glfwVulkanSupported
int glfwVulkanSupported(void)
Returns whether the Vulkan loader and an ICD have been found.
GLFWvkproc
void(* GLFWvkproc)(void)
Vulkan API function pointer type.
Definition: glfw3.h:1158
glfwGetInstanceProcAddress
GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char *procname)
Returns the address of the specified Vulkan instance function.
glfwGetPhysicalDevicePresentationSupport
int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)
Returns whether the specified queue family can present images.
glfwSetWindowPosCallback
GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)
Sets the position callback for the specified window.
glfwGetFramebufferSize
void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
glfwSwapBuffers
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
glfwGetWindowUserPointer
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
glfwGetWindowFrameSize
void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
glfwSetWindowPos
void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the content area of the specified window.
glfwIconifyWindow
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
glfwSetWindowRefreshCallback
GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
glfwWindowShouldClose
int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
glfwRequestWindowAttention
void glfwRequestWindowAttention(GLFWwindow *window)
Requests user attention to the specified window.
glfwSetWindowSize
void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the content area of the specified window.
glfwPollEvents
void glfwPollEvents(void)
Processes all pending events.
GLFWwindow
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:1182
glfwSetWindowUserPointer
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
glfwMaximizeWindow
void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
glfwHideWindow
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
glfwSetWindowShouldClose
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
glfwRestoreWindow
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
GLFWframebuffersizefun
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function pointer type for framebuffer size callbacks.
Definition: glfw3.h:1387
glfwWaitEvents
void glfwWaitEvents(void)
Waits until events are queued and processes them.
glfwCreateWindow
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
GLFWwindowclosefun
void(* GLFWwindowclosefun)(GLFWwindow *)
The function pointer type for window close callbacks.
Definition: glfw3.h:1283
glfwSetWindowTitle
void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
glfwWaitEventsTimeout
void glfwWaitEventsTimeout(double timeout)
Waits with timeout until events are queued and processes them.
glfwShowWindow
void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
GLFWwindowfocusfun
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function pointer type for window focus callbacks.
Definition: glfw3.h:1324
glfwSetWindowAspectRatio
void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
glfwGetWindowPos
void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the content area of the specified window.
GLFWwindowrefreshfun
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function pointer type for window content refresh callbacks.
Definition: glfw3.h:1303
GLFWimage
struct GLFWimage GLFWimage
Image data.
glfwWindowHint
void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
glfwSetWindowMonitor
void glfwSetWindowMonitor(GLFWwindow *window, GLFWmonitor *monitor, int xpos, int ypos, int width, int height, int refreshRate)
Sets the mode, monitor, video mode and placement of a window.
GLFWwindowmaximizefun
void(* GLFWwindowmaximizefun)(GLFWwindow *, int)
The function pointer type for window maximize callbacks.
Definition: glfw3.h:1366
glfwFocusWindow
void glfwFocusWindow(GLFWwindow *window)
Brings the specified window to front and sets input focus.
glfwWindowHintString
void glfwWindowHintString(int hint, const char *value)
Sets the specified window hint to the desired value.
glfwDefaultWindowHints
void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
GLFWwindowiconifyfun
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function pointer type for window iconify callbacks.
Definition: glfw3.h:1345
GLFWwindowsizefun
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function pointer type for window size callbacks.
Definition: glfw3.h:1263
glfwSetFramebufferSizeCallback
GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)
Sets the framebuffer resize callback for the specified window.
glfwPostEmptyEvent
void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
glfwSetWindowFocusCallback
GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)
Sets the focus callback for the specified window.
glfwSetWindowSizeLimits
void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
glfwSetWindowOpacity
void glfwSetWindowOpacity(GLFWwindow *window, float opacity)
Sets the opacity of the whole window.
glfwSetWindowIconifyCallback
GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)
Sets the iconify callback for the specified window.
GLFWwindowcontentscalefun
void(* GLFWwindowcontentscalefun)(GLFWwindow *, float, float)
The function pointer type for window content scale callbacks.
Definition: glfw3.h:1408
glfwSetWindowMaximizeCallback
GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)
Sets the maximize callback for the specified window.
glfwGetWindowAttrib
int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
glfwDestroyWindow
void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
glfwSetWindowAttrib
void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)
Sets an attribute of the specified window.
glfwGetWindowOpacity
float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
glfwSetWindowSizeCallback
GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)
Sets the size callback for the specified window.
glfwSetWindowCloseCallback
GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)
Sets the close callback for the specified window.
glfwSetWindowIcon
void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)
Sets the icon for the specified window.
glfwGetWindowMonitor
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
glfwGetWindowSize
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the content area of the specified window.
glfwSetWindowContentScaleCallback
GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)
Sets the window content scale callback for the specified window.
glfwGetWindowContentScale
void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)
Retrieves the content scale for the specified window.
GLFWwindowposfun
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function pointer type for window position callbacks.
Definition: glfw3.h:1241
GLFWgamepadstate
Gamepad input state.
Definition: glfw3.h:1742
GLFWgamepadstate::buttons
unsigned char buttons[15]
Definition: glfw3.h:1746
GLFWgamepadstate::axes
float axes[6]
Definition: glfw3.h:1750
GLFWgammaramp
Gamma ramp.
Definition: glfw3.h:1689
GLFWgammaramp::red
unsigned short * red
Definition: glfw3.h:1692
GLFWgammaramp::blue
unsigned short * blue
Definition: glfw3.h:1698
GLFWgammaramp::size
unsigned int size
Definition: glfw3.h:1701
GLFWgammaramp::green
unsigned short * green
Definition: glfw3.h:1695
GLFWimage
Image data.
Definition: glfw3.h:1718
GLFWimage::height
int height
Definition: glfw3.h:1724
GLFWimage::pixels
unsigned char * pixels
Definition: glfw3.h:1727
GLFWimage::width
int width
Definition: glfw3.h:1721
GLFWvidmode
Video mode type.
Definition: glfw3.h:1655
GLFWvidmode::greenBits
int greenBits
Definition: glfw3.h:1667
GLFWvidmode::redBits
int redBits
Definition: glfw3.h:1664
GLFWvidmode::width
int width
Definition: glfw3.h:1658
GLFWvidmode::refreshRate
int refreshRate
Definition: glfw3.h:1673
GLFWvidmode::height
int height
Definition: glfw3.h:1661
GLFWvidmode::blueBits
int blueBits
Definition: glfw3.h:1670