GLFW: glfw3.h Source File

GLFW

- Documentation
- Download
- Community

Loading...
Searching...
No Matches
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
33extern "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
294#define GLFW_VERSION_MINOR 3
301#define GLFW_VERSION_REVISION 9
312#define GLFW_TRUE 1
321#define GLFW_FALSE 0
322
331#define GLFW_RELEASE 0
338#define GLFW_PRESS 1
345#define GLFW_REPEAT 2
355#define GLFW_HAT_CENTERED 0
356#define GLFW_HAT_UP 1
357#define GLFW_HAT_RIGHT 2
358#define GLFW_HAT_DOWN 4
359#define GLFW_HAT_LEFT 8
360#define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
361#define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
362#define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
363#define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
364
367#define GLFW_KEY_UNKNOWN -1
368
395/* Printable keys */
396#define GLFW_KEY_SPACE 32
397#define GLFW_KEY_APOSTROPHE 39 /* ' */
398#define GLFW_KEY_COMMA 44 /* , */
399#define GLFW_KEY_MINUS 45 /* - */
400#define GLFW_KEY_PERIOD 46 /* . */
401#define GLFW_KEY_SLASH 47 /* / */
402#define GLFW_KEY_0 48
403#define GLFW_KEY_1 49
404#define GLFW_KEY_2 50
405#define GLFW_KEY_3 51
406#define GLFW_KEY_4 52
407#define GLFW_KEY_5 53
408#define GLFW_KEY_6 54
409#define GLFW_KEY_7 55
410#define GLFW_KEY_8 56
411#define GLFW_KEY_9 57
412#define GLFW_KEY_SEMICOLON 59 /* ; */
413#define GLFW_KEY_EQUAL 61 /* = */
414#define GLFW_KEY_A 65
415#define GLFW_KEY_B 66
416#define GLFW_KEY_C 67
417#define GLFW_KEY_D 68
418#define GLFW_KEY_E 69
419#define GLFW_KEY_F 70
420#define GLFW_KEY_G 71
421#define GLFW_KEY_H 72
422#define GLFW_KEY_I 73
423#define GLFW_KEY_J 74
424#define GLFW_KEY_K 75
425#define GLFW_KEY_L 76
426#define GLFW_KEY_M 77
427#define GLFW_KEY_N 78
428#define GLFW_KEY_O 79
429#define GLFW_KEY_P 80
430#define GLFW_KEY_Q 81
431#define GLFW_KEY_R 82
432#define GLFW_KEY_S 83
433#define GLFW_KEY_T 84
434#define GLFW_KEY_U 85
435#define GLFW_KEY_V 86
436#define GLFW_KEY_W 87
437#define GLFW_KEY_X 88
438#define GLFW_KEY_Y 89
439#define GLFW_KEY_Z 90
440#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
441#define GLFW_KEY_BACKSLASH 92 /* \ */
442#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
443#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
444#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
445#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
446
447/* Function keys */
448#define GLFW_KEY_ESCAPE 256
449#define GLFW_KEY_ENTER 257
450#define GLFW_KEY_TAB 258
451#define GLFW_KEY_BACKSPACE 259
452#define GLFW_KEY_INSERT 260
453#define GLFW_KEY_DELETE 261
454#define GLFW_KEY_RIGHT 262
455#define GLFW_KEY_LEFT 263
456#define GLFW_KEY_DOWN 264
457#define GLFW_KEY_UP 265
458#define GLFW_KEY_PAGE_UP 266
459#define GLFW_KEY_PAGE_DOWN 267
460#define GLFW_KEY_HOME 268
461#define GLFW_KEY_END 269
462#define GLFW_KEY_CAPS_LOCK 280
463#define GLFW_KEY_SCROLL_LOCK 281
464#define GLFW_KEY_NUM_LOCK 282
465#define GLFW_KEY_PRINT_SCREEN 283
466#define GLFW_KEY_PAUSE 284
467#define GLFW_KEY_F1 290
468#define GLFW_KEY_F2 291
469#define GLFW_KEY_F3 292
470#define GLFW_KEY_F4 293
471#define GLFW_KEY_F5 294
472#define GLFW_KEY_F6 295
473#define GLFW_KEY_F7 296
474#define GLFW_KEY_F8 297
475#define GLFW_KEY_F9 298
476#define GLFW_KEY_F10 299
477#define GLFW_KEY_F11 300
478#define GLFW_KEY_F12 301
479#define GLFW_KEY_F13 302
480#define GLFW_KEY_F14 303
481#define GLFW_KEY_F15 304
482#define GLFW_KEY_F16 305
483#define GLFW_KEY_F17 306
484#define GLFW_KEY_F18 307
485#define GLFW_KEY_F19 308
486#define GLFW_KEY_F20 309
487#define GLFW_KEY_F21 310
488#define GLFW_KEY_F22 311
489#define GLFW_KEY_F23 312
490#define GLFW_KEY_F24 313
491#define GLFW_KEY_F25 314
492#define GLFW_KEY_KP_0 320
493#define GLFW_KEY_KP_1 321
494#define GLFW_KEY_KP_2 322
495#define GLFW_KEY_KP_3 323
496#define GLFW_KEY_KP_4 324
497#define GLFW_KEY_KP_5 325
498#define GLFW_KEY_KP_6 326
499#define GLFW_KEY_KP_7 327
500#define GLFW_KEY_KP_8 328
501#define GLFW_KEY_KP_9 329
502#define GLFW_KEY_KP_DECIMAL 330
503#define GLFW_KEY_KP_DIVIDE 331
504#define GLFW_KEY_KP_MULTIPLY 332
505#define GLFW_KEY_KP_SUBTRACT 333
506#define GLFW_KEY_KP_ADD 334
507#define GLFW_KEY_KP_ENTER 335
508#define GLFW_KEY_KP_EQUAL 336
509#define GLFW_KEY_LEFT_SHIFT 340
510#define GLFW_KEY_LEFT_CONTROL 341
511#define GLFW_KEY_LEFT_ALT 342
512#define GLFW_KEY_LEFT_SUPER 343
513#define GLFW_KEY_RIGHT_SHIFT 344
514#define GLFW_KEY_RIGHT_CONTROL 345
515#define GLFW_KEY_RIGHT_ALT 346
516#define GLFW_KEY_RIGHT_SUPER 347
517#define GLFW_KEY_MENU 348
518
519#define GLFW_KEY_LAST GLFW_KEY_MENU
520
535#define GLFW_MOD_SHIFT 0x0001
540#define GLFW_MOD_CONTROL 0x0002
545#define GLFW_MOD_ALT 0x0004
550#define GLFW_MOD_SUPER 0x0008
556#define GLFW_MOD_CAPS_LOCK 0x0010
562#define GLFW_MOD_NUM_LOCK 0x0020
563
573#define GLFW_MOUSE_BUTTON_1 0
574#define GLFW_MOUSE_BUTTON_2 1
575#define GLFW_MOUSE_BUTTON_3 2
576#define GLFW_MOUSE_BUTTON_4 3
577#define GLFW_MOUSE_BUTTON_5 4
578#define GLFW_MOUSE_BUTTON_6 5
579#define GLFW_MOUSE_BUTTON_7 6
580#define GLFW_MOUSE_BUTTON_8 7
581#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
582#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
583#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
584#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
594#define GLFW_JOYSTICK_1 0
595#define GLFW_JOYSTICK_2 1
596#define GLFW_JOYSTICK_3 2
597#define GLFW_JOYSTICK_4 3
598#define GLFW_JOYSTICK_5 4
599#define GLFW_JOYSTICK_6 5
600#define GLFW_JOYSTICK_7 6
601#define GLFW_JOYSTICK_8 7
602#define GLFW_JOYSTICK_9 8
603#define GLFW_JOYSTICK_10 9
604#define GLFW_JOYSTICK_11 10
605#define GLFW_JOYSTICK_12 11
606#define GLFW_JOYSTICK_13 12
607#define GLFW_JOYSTICK_14 13
608#define GLFW_JOYSTICK_15 14
609#define GLFW_JOYSTICK_16 15
610#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
620#define GLFW_GAMEPAD_BUTTON_A 0
621#define GLFW_GAMEPAD_BUTTON_B 1
622#define GLFW_GAMEPAD_BUTTON_X 2
623#define GLFW_GAMEPAD_BUTTON_Y 3
624#define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
625#define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
626#define GLFW_GAMEPAD_BUTTON_BACK 6
627#define GLFW_GAMEPAD_BUTTON_START 7
628#define GLFW_GAMEPAD_BUTTON_GUIDE 8
629#define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
630#define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
631#define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
632#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
633#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
634#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
635#define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
636
637#define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
638#define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
639#define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
640#define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
650#define GLFW_GAMEPAD_AXIS_LEFT_X 0
651#define GLFW_GAMEPAD_AXIS_LEFT_Y 1
652#define GLFW_GAMEPAD_AXIS_RIGHT_X 2
653#define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
654#define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
655#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
656#define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
672#define GLFW_NO_ERROR 0
681#define GLFW_NOT_INITIALIZED 0x00010001
691#define GLFW_NO_CURRENT_CONTEXT 0x00010002
699#define GLFW_INVALID_ENUM 0x00010003
710#define GLFW_INVALID_VALUE 0x00010004
718#define GLFW_OUT_OF_MEMORY 0x00010005
734#define GLFW_API_UNAVAILABLE 0x00010006
751#define GLFW_VERSION_UNAVAILABLE 0x00010007
762#define GLFW_PLATFORM_ERROR 0x00010008
781#define GLFW_FORMAT_UNAVAILABLE 0x00010009
789#define GLFW_NO_WINDOW_CONTEXT 0x0001000A
799#define GLFW_FOCUSED 0x00020001
804#define GLFW_ICONIFIED 0x00020002
810#define GLFW_RESIZABLE 0x00020003
816#define GLFW_VISIBLE 0x00020004
822#define GLFW_DECORATED 0x00020005
828#define GLFW_AUTO_ICONIFY 0x00020006
834#define GLFW_FLOATING 0x00020007
840#define GLFW_MAXIMIZED 0x00020008
845#define GLFW_CENTER_CURSOR 0x00020009
852#define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
857#define GLFW_HOVERED 0x0002000B
863#define GLFW_FOCUS_ON_SHOW 0x0002000C
864
869#define GLFW_RED_BITS 0x00021001
874#define GLFW_GREEN_BITS 0x00021002
879#define GLFW_BLUE_BITS 0x00021003
884#define GLFW_ALPHA_BITS 0x00021004
889#define GLFW_DEPTH_BITS 0x00021005
894#define GLFW_STENCIL_BITS 0x00021006
899#define GLFW_ACCUM_RED_BITS 0x00021007
904#define GLFW_ACCUM_GREEN_BITS 0x00021008
909#define GLFW_ACCUM_BLUE_BITS 0x00021009
914#define GLFW_ACCUM_ALPHA_BITS 0x0002100A
919#define GLFW_AUX_BUFFERS 0x0002100B
924#define GLFW_STEREO 0x0002100C
929#define GLFW_SAMPLES 0x0002100D
934#define GLFW_SRGB_CAPABLE 0x0002100E
939#define GLFW_REFRESH_RATE 0x0002100F
944#define GLFW_DOUBLEBUFFER 0x00021010
945
951#define GLFW_CLIENT_API 0x00022001
957#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
963#define GLFW_CONTEXT_VERSION_MINOR 0x00022003
969#define GLFW_CONTEXT_REVISION 0x00022004
975#define GLFW_CONTEXT_ROBUSTNESS 0x00022005
981#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
987#define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
993#define GLFW_OPENGL_PROFILE 0x00022008
999#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
1005#define GLFW_CONTEXT_NO_ERROR 0x0002200A
1011#define GLFW_CONTEXT_CREATION_API 0x0002200B
1015#define GLFW_SCALE_TO_MONITOR 0x0002200C
1019#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
1023#define GLFW_COCOA_FRAME_NAME 0x00023002
1027#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
1031#define GLFW_X11_CLASS_NAME 0x00024001
1035#define GLFW_X11_INSTANCE_NAME 0x00024002
1038#define GLFW_NO_API 0
1039#define GLFW_OPENGL_API 0x00030001
1040#define GLFW_OPENGL_ES_API 0x00030002
1041
1042#define GLFW_NO_ROBUSTNESS 0
1043#define GLFW_NO_RESET_NOTIFICATION 0x00031001
1044#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
1045
1046#define GLFW_OPENGL_ANY_PROFILE 0
1047#define GLFW_OPENGL_CORE_PROFILE 0x00032001
1048#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
1049
1050#define GLFW_CURSOR 0x00033001
1051#define GLFW_STICKY_KEYS 0x00033002
1052#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
1053#define GLFW_LOCK_KEY_MODS 0x00033004
1054#define GLFW_RAW_MOUSE_MOTION 0x00033005
1055
1056#define GLFW_CURSOR_NORMAL 0x00034001
1057#define GLFW_CURSOR_HIDDEN 0x00034002
1058#define GLFW_CURSOR_DISABLED 0x00034003
1059
1060#define GLFW_ANY_RELEASE_BEHAVIOR 0
1061#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
1062#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
1063
1064#define GLFW_NATIVE_CONTEXT_API 0x00036001
1065#define GLFW_EGL_CONTEXT_API 0x00036002
1066#define GLFW_OSMESA_CONTEXT_API 0x00036003
1067
1068#define GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001
1069#define GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002
1070
1083#define GLFW_ARROW_CURSOR 0x00036001
1088#define GLFW_IBEAM_CURSOR 0x00036002
1093#define GLFW_CROSSHAIR_CURSOR 0x00036003
1098#define GLFW_HAND_CURSOR 0x00036004
1103#define GLFW_HRESIZE_CURSOR 0x00036005
1108#define GLFW_VRESIZE_CURSOR 0x00036006
1111#define GLFW_CONNECTED 0x00040001
1112#define GLFW_DISCONNECTED 0x00040002
1113
1120#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
1125#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
1130#define GLFW_COCOA_MENUBAR 0x00051002
1135#define GLFW_WAYLAND_LIBDECOR 0x00053001
1138#define GLFW_DONT_CARE -1
1139
1140
1141/*************************************************************************
1142 * GLFW API types
1143 *************************************************************************/
1144
1157 typedef void (*GLFWglproc)(void);
1158
1171 typedef void (*GLFWvkproc)(void);
1172
1183 typedef struct GLFWmonitor GLFWmonitor;
1184
1195 typedef struct GLFWwindow GLFWwindow;
1196
1207 typedef struct GLFWcursor GLFWcursor;
1208
1231 typedef void (* GLFWerrorfun)(int error_code, const char* description);
1232
1254 typedef void (* GLFWwindowposfun)(GLFWwindow* window, int xpos, int ypos);
1255
1276 typedef void (* GLFWwindowsizefun)(GLFWwindow* window, int width, int height);
1277
1296 typedef void (* GLFWwindowclosefun)(GLFWwindow* window);
1297
1316 typedef void (* GLFWwindowrefreshfun)(GLFWwindow* window);
1317
1337 typedef void (* GLFWwindowfocusfun)(GLFWwindow* window, int focused);
1338
1358 typedef void (* GLFWwindowiconifyfun)(GLFWwindow* window, int iconified);
1359
1379 typedef void (* GLFWwindowmaximizefun)(GLFWwindow* window, int maximized);
1380
1400 typedef void (* GLFWframebuffersizefun)(GLFWwindow* window, int width, int height);
1401
1421 typedef void (* GLFWwindowcontentscalefun)(GLFWwindow* window, float xscale, float yscale);
1422
1447 typedef void (* GLFWmousebuttonfun)(GLFWwindow* window, int button, int action, int mods);
1448
1470 typedef void (* GLFWcursorposfun)(GLFWwindow* window, double xpos, double ypos);
1471
1491 typedef void (* GLFWcursorenterfun)(GLFWwindow* window, int entered);
1492
1512 typedef void (* GLFWscrollfun)(GLFWwindow* window, double xoffset, double yoffset);
1513
1538 typedef void (* GLFWkeyfun)(GLFWwindow* window, int key, int scancode, int action, int mods);
1539
1559 typedef void (* GLFWcharfun)(GLFWwindow* window, unsigned int codepoint);
1560
1586 typedef void (* GLFWcharmodsfun)(GLFWwindow* window, unsigned int codepoint, int mods);
1587
1610 typedef void (* GLFWdropfun)(GLFWwindow* window, int path_count, const char* paths[]);
1611
1631 typedef void (* GLFWmonitorfun)(GLFWmonitor* monitor, int event);
1632
1652 typedef void (* GLFWjoystickfun)(int jid, int event);
1653
1667 typedef struct GLFWvidmode
1668{
1671 int width;
1674 int height;
1677 int redBits;
1680 int greenBits;
1683 int blueBits;
1686 int refreshRate;
1687} GLFWvidmode;
1688
1701 typedef struct GLFWgammaramp
1702{
1705 unsigned short* red;
1708 unsigned short* green;
1711 unsigned short* blue;
1714 unsigned int size;
1715} GLFWgammaramp;
1716
1730 typedef struct GLFWimage
1731{
1734 int width;
1737 int height;
1740 unsigned char* pixels;
1741} GLFWimage;
1742
1754 typedef struct GLFWgamepadstate
1755{
1759 unsigned char buttons[15];
1763 float axes[6];
1764} GLFWgamepadstate;
1765
1766
1767/*************************************************************************
1768 * GLFW API functions
1769 *************************************************************************/
1770
1807GLFWAPI int glfwInit(void);
1808
1841GLFWAPI void glfwTerminate(void);
1842
1873GLFWAPI void glfwInitHint(int hint, int value);
1874
1900GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1901
1931GLFWAPI const char* glfwGetVersionString(void);
1932
1962GLFWAPI int glfwGetError(const char** description);
1963
2008GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback);
2009
2037GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
2038
2061GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
2062
2086GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
2087
2117GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
2118
2151GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
2152
2183GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
2184
2209GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
2210
2235GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
2236
2259GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
2260
2289GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback);
2290
2323GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
2324
2351GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
2352
2384GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
2385
2414GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
2415
2455GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
2456
2474GLFWAPI void glfwDefaultWindowHints(void);
2475
2509GLFWAPI void glfwWindowHint(int hint, int value);
2510
2547GLFWAPI void glfwWindowHintString(int hint, const char* value);
2548
2701GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
2702
2730GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
2731
2750GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
2751
2772GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
2773
2797GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
2798
2844GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
2845
2876GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
2877
2911GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
2912
2941GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
2942
2984GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
2985
3027GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
3028
3068GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
3069
3097GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
3098
3134GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
3135
3167GLFWAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
3168
3194GLFWAPI float glfwGetWindowOpacity(GLFWwindow* window);
3195
3223GLFWAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
3224
3251GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
3252
3278GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
3279
3303GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
3304
3335GLFWAPI void glfwShowWindow(GLFWwindow* window);
3336
3357GLFWAPI void glfwHideWindow(GLFWwindow* window);
3358
3396GLFWAPI void glfwFocusWindow(GLFWwindow* window);
3397
3423GLFWAPI void glfwRequestWindowAttention(GLFWwindow* window);
3424
3445GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
3446
3504GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
3505
3541GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
3542
3578GLFWAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
3579
3601GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
3602
3622GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
3623
3657GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun callback);
3658
3689GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun callback);
3690
3729GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun callback);
3730
3765GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun callback);
3766
3800GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun callback);
3801
3833GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun callback);
3834
3863GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, GLFWwindowmaximizefun callback);
3864
3893GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun callback);
3894
3924GLFWAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow* window, GLFWwindowcontentscalefun callback);
3925
3962GLFWAPI void glfwPollEvents(void);
3963
4007GLFWAPI void glfwWaitEvents(void);
4008
4056GLFWAPI void glfwWaitEventsTimeout(double timeout);
4057
4076GLFWAPI void glfwPostEmptyEvent(void);
4077
4101GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
4102
4163GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
4164
4192GLFWAPI int glfwRawMouseMotionSupported(void);
4193
4260GLFWAPI const char* glfwGetKeyName(int key, int scancode);
4261
4287GLFWAPI int glfwGetKeyScancode(int key);
4288
4326GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
4327
4355GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
4356
4393GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
4394
4433GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
4434
4471GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
4472
4494GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
4495
4521GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
4522
4548GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
4549
4598GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
4599
4641GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback);
4642
4683GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun callback);
4684
4720GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun callback);
4721
4752GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun callback);
4753
4783GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun callback);
4784
4817GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
4818
4854GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback);
4855
4878GLFWAPI int glfwJoystickPresent(int jid);
4879
4911GLFWAPI const float* glfwGetJoystickAxes(int jid, int* count);
4912
4952GLFWAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
4953
5009GLFWAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
5010
5040GLFWAPI const char* glfwGetJoystickName(int jid);
5041
5081GLFWAPI const char* glfwGetJoystickGUID(int jid);
5082
5107GLFWAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
5108
5131GLFWAPI void* glfwGetJoystickUserPointer(int jid);
5132
5159GLFWAPI int glfwJoystickIsGamepad(int jid);
5160
5195GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback);
5196
5229GLFWAPI int glfwUpdateGamepadMappings(const char* string);
5230
5261GLFWAPI const char* glfwGetGamepadName(int jid);
5262
5299GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
5300
5324GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
5325
5354GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
5355
5384GLFWAPI double glfwGetTime(void);
5385
5414GLFWAPI void glfwSetTime(double time);
5415
5436GLFWAPI uint64_t glfwGetTimerValue(void);
5437
5456GLFWAPI uint64_t glfwGetTimerFrequency(void);
5457
5501GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
5502
5522GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
5523
5556GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
5557
5602GLFWAPI void glfwSwapInterval(int interval);
5603
5640GLFWAPI int glfwExtensionSupported(const char* extension);
5641
5682GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
5683
5708GLFWAPI int glfwVulkanSupported(void);
5709
5752GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
5753
5754#if defined(VK_VERSION_1_0)
5755
5795GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
5796
5832GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
5833
5895GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
5896
5897#endif /*VK_VERSION_1_0*/
5898
5899
5900/*************************************************************************
5901 * Global definition cleanup
5902 *************************************************************************/
5903
5904/* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
5905
5906#ifdef GLFW_WINGDIAPI_DEFINED
5907 #undef WINGDIAPI
5908 #undef GLFW_WINGDIAPI_DEFINED
5909#endif
5910
5911#ifdef GLFW_CALLBACK_DEFINED
5912 #undef CALLBACK
5913 #undef GLFW_CALLBACK_DEFINED
5914#endif
5915
5916/* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
5917 * defined by some gl.h variants (OpenBSD) so define it after if needed.
5918 */
5919#ifndef GLAPIENTRY
5920 #define GLAPIENTRY APIENTRY
5921 #define GLFW_GLAPIENTRY_DEFINED
5922#endif
5923
5924/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
5925
5926
5927#ifdef __cplusplus
5928}
5929#endif
5930
5931#endif /* _glfw3_h_ */
5932
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:1157
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.
glfwGetVersionString
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
glfwInitHint
void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
glfwInit
int glfwInit(void)
Initializes the GLFW library.
GLFWerrorfun
void(* GLFWerrorfun)(int error_code, const char *description)
The function pointer type for error callbacks.
Definition glfw3.h:1231
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.
glfwTerminate
void glfwTerminate(void)
Terminates the GLFW library.
glfwSetErrorCallback
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
GLFWmousebuttonfun
void(* GLFWmousebuttonfun)(GLFWwindow *window, int button, int action, int mods)
The function pointer type for mouse button callbacks.
Definition glfw3.h:1447
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.
glfwGetJoystickHats
const unsigned char * glfwGetJoystickHats(int jid, int *count)
Returns the state of all hats of the specified joystick.
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.
glfwGetJoystickUserPointer
void * glfwGetJoystickUserPointer(int jid)
Returns the user pointer of the specified joystick.
GLFWcharfun
void(* GLFWcharfun)(GLFWwindow *window, unsigned int codepoint)
The function pointer type for Unicode character callbacks.
Definition glfw3.h:1559
glfwSetKeyCallback
GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)
Sets the key callback.
glfwSetJoystickCallback
GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)
Sets the joystick configuration callback.
glfwGetTimerFrequency
uint64_t glfwGetTimerFrequency(void)
Returns the frequency, in Hz, of the raw timer.
glfwCreateCursor
GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
glfwSetScrollCallback
GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)
Sets the scroll callback.
GLFWkeyfun
void(* GLFWkeyfun)(GLFWwindow *window, int key, int scancode, int action, int mods)
The function pointer type for keyboard key callbacks.
Definition glfw3.h:1538
glfwGetJoystickButtons
const unsigned char * glfwGetJoystickButtons(int jid, int *count)
Returns the state of all buttons of the specified joystick.
glfwGetJoystickGUID
const char * glfwGetJoystickGUID(int jid)
Returns the SDL compatible GUID of the specified joystick.
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.
glfwGetClipboardString
const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
glfwDestroyCursor
void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
GLFWcursor
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition glfw3.h:1207
glfwGetGamepadName
const char * glfwGetGamepadName(int jid)
Returns the human-readable gamepad name for the specified joystick.
GLFWjoystickfun
void(* GLFWjoystickfun)(int jid, int event)
The function pointer type for joystick configuration callbacks.
Definition glfw3.h:1652
glfwGetTime
double glfwGetTime(void)
Returns the GLFW time.
glfwSetInputMode
void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
GLFWcursorenterfun
void(* GLFWcursorenterfun)(GLFWwindow *window, int entered)
The function pointer type for cursor enter/leave callbacks.
Definition glfw3.h:1491
GLFWdropfun
void(* GLFWdropfun)(GLFWwindow *window, int path_count, const char *paths[])
The function pointer type for path drop callbacks.
Definition glfw3.h:1610
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.
GLFWcharmodsfun
void(* GLFWcharmodsfun)(GLFWwindow *window, unsigned int codepoint, int mods)
The function pointer type for Unicode character with modifiers callbacks.
Definition glfw3.h:1586
glfwGetJoystickName
const char * glfwGetJoystickName(int jid)
Returns the name of the specified joystick.
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.
GLFWcursorposfun
void(* GLFWcursorposfun)(GLFWwindow *window, double xpos, double ypos)
The function pointer type for cursor position callbacks.
Definition glfw3.h:1470
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.
glfwRawMouseMotionSupported
int glfwRawMouseMotionSupported(void)
Returns whether raw mouse motion is supported.
glfwGetKeyName
const char * glfwGetKeyName(int key, int scancode)
Returns the layout-specific name of the specified printable key.
glfwGetJoystickAxes
const float * glfwGetJoystickAxes(int jid, int *count)
Returns the values of all axes of the specified joystick.
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.
glfwCreateStandardCursor
GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
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.
GLFWscrollfun
void(* GLFWscrollfun)(GLFWwindow *window, double xoffset, double yoffset)
The function pointer type for scroll callbacks.
Definition glfw3.h:1512
glfwGetMonitorPos
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
glfwGetMonitorUserPointer
void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
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.
glfwGetMonitors
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
glfwGetMonitorWorkarea
void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
glfwGetGammaRamp
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified 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.
GLFWmonitor
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition glfw3.h:1183
GLFWmonitorfun
void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)
The function pointer type for monitor configuration callbacks.
Definition glfw3.h:1631
glfwSetMonitorCallback
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
glfwGetVideoMode
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
glfwGetPrimaryMonitor
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
glfwGetVideoModes
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
glfwGetMonitorContentScale
void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for the specified monitor.
glfwCreateWindowSurface
VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)
Creates a Vulkan surface for the specified window.
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:1171
glfwGetRequiredInstanceExtensions
const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
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.
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.
GLFWwindowmaximizefun
void(* GLFWwindowmaximizefun)(GLFWwindow *window, int maximized)
The function pointer type for window maximize callbacks.
Definition glfw3.h:1379
glfwCreateWindow
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
GLFWwindowiconifyfun
void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)
The function pointer type for window iconify callbacks.
Definition glfw3.h:1358
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:1195
glfwSetWindowUserPointer
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
glfwMaximizeWindow
void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
GLFWwindowrefreshfun
void(* GLFWwindowrefreshfun)(GLFWwindow *window)
The function pointer type for window content refresh callbacks.
Definition glfw3.h:1316
glfwHideWindow
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
glfwSetWindowShouldClose
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
glfwGetWindowMonitor
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
glfwRestoreWindow
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
glfwWaitEvents
void glfwWaitEvents(void)
Waits until events are queued and processes them.
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.
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.
GLFWwindowcontentscalefun
void(* GLFWwindowcontentscalefun)(GLFWwindow *window, float xscale, float yscale)
The function pointer type for window content scale callbacks.
Definition glfw3.h:1421
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.
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.
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.
GLFWwindowfocusfun
void(* GLFWwindowfocusfun)(GLFWwindow *window, int focused)
The function pointer type for window focus callbacks.
Definition glfw3.h:1337
GLFWwindowposfun
void(* GLFWwindowposfun)(GLFWwindow *window, int xpos, int ypos)
The function pointer type for window position callbacks.
Definition glfw3.h:1254
GLFWwindowclosefun
void(* GLFWwindowclosefun)(GLFWwindow *window)
The function pointer type for window close callbacks.
Definition glfw3.h:1296
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.
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.
GLFWframebuffersizefun
void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)
The function pointer type for framebuffer size callbacks.
Definition glfw3.h:1400
glfwGetWindowUserPointer
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
GLFWwindowsizefun
void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)
The function pointer type for window size callbacks.
Definition glfw3.h:1276
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.
GLFWgamepadstate
Gamepad input state.
Definition glfw3.h:1755
GLFWgamepadstate::buttons
unsigned char buttons[15]
Definition glfw3.h:1759
GLFWgamepadstate::axes
float axes[6]
Definition glfw3.h:1763
GLFWgammaramp
Gamma ramp.
Definition glfw3.h:1702
GLFWgammaramp::red
unsigned short * red
Definition glfw3.h:1705
GLFWgammaramp::blue
unsigned short * blue
Definition glfw3.h:1711
GLFWgammaramp::size
unsigned int size
Definition glfw3.h:1714
GLFWgammaramp::green
unsigned short * green
Definition glfw3.h:1708
GLFWimage
Image data.
Definition glfw3.h:1731
GLFWimage::height
int height
Definition glfw3.h:1737
GLFWimage::pixels
unsigned char * pixels
Definition glfw3.h:1740
GLFWimage::width
int width
Definition glfw3.h:1734
GLFWvidmode
Video mode type.
Definition glfw3.h:1668
GLFWvidmode::greenBits
int greenBits
Definition glfw3.h:1680
GLFWvidmode::redBits
int redBits
Definition glfw3.h:1677
GLFWvidmode::width
int width
Definition glfw3.h:1671
GLFWvidmode::refreshRate
int refreshRate
Definition glfw3.h:1686
GLFWvidmode::height
int height
Definition glfw3.h:1674
GLFWvidmode::blueBits
int blueBits
Definition glfw3.h:1683