Loading...
Searching...
No Matches
glfw3.h File Reference

## Description

This is the header file of the GLFW 3 API. It defines all its types and declares all its functions.

For more information about how to use this file, see Including the GLFW header file.

Go to the source code of this file.

## Macros

#define | GLFW_APIENTRY_DEFINED
#define | GLFW_TRUE 1
| One.
#define | GLFW_FALSE 0
| Zero.
#define | GLFW_HAT_CENTERED 0
#define | GLFW_HAT_UP 1
#define | GLFW_HAT_RIGHT 2
#define | GLFW_HAT_DOWN 4
#define | GLFW_HAT_LEFT 8
#define | GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
#define | GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
#define | GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
#define | GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
#define | GLFW_KEY_UNKNOWN -1
#define | GLFW_KEY_SPACE 32
#define | GLFW_KEY_APOSTROPHE 39 /* ' */
#define | GLFW_KEY_COMMA 44 /* , */
#define | GLFW_KEY_MINUS 45 /* - */
#define | GLFW_KEY_PERIOD 46 /* . */
#define | GLFW_KEY_SLASH 47 /* / */
#define | GLFW_KEY_0 48
#define | GLFW_KEY_1 49
#define | GLFW_KEY_2 50
#define | GLFW_KEY_3 51
#define | GLFW_KEY_4 52
#define | GLFW_KEY_5 53
#define | GLFW_KEY_6 54
#define | GLFW_KEY_7 55
#define | GLFW_KEY_8 56
#define | GLFW_KEY_9 57
#define | GLFW_KEY_SEMICOLON 59 /* ; */
#define | GLFW_KEY_EQUAL 61 /* = */
#define | GLFW_KEY_A 65
#define | GLFW_KEY_B 66
#define | GLFW_KEY_C 67
#define | GLFW_KEY_D 68
#define | GLFW_KEY_E 69
#define | GLFW_KEY_F 70
#define | GLFW_KEY_G 71
#define | GLFW_KEY_H 72
#define | GLFW_KEY_I 73
#define | GLFW_KEY_J 74
#define | GLFW_KEY_K 75
#define | GLFW_KEY_L 76
#define | GLFW_KEY_M 77
#define | GLFW_KEY_N 78
#define | GLFW_KEY_O 79
#define | GLFW_KEY_P 80
#define | GLFW_KEY_Q 81
#define | GLFW_KEY_R 82
#define | GLFW_KEY_S 83
#define | GLFW_KEY_T 84
#define | GLFW_KEY_U 85
#define | GLFW_KEY_V 86
#define | GLFW_KEY_W 87
#define | GLFW_KEY_X 88
#define | GLFW_KEY_Y 89
#define | GLFW_KEY_Z 90
#define | GLFW_KEY_LEFT_BRACKET 91 /* [ */
#define | GLFW_KEY_BACKSLASH 92 /* \ */
#define | GLFW_KEY_RIGHT_BRACKET 93 /* ] */
#define | GLFW_KEY_GRAVE_ACCENT 96 /* ` */
#define | GLFW_KEY_WORLD_1 161 /* non-US #1 */
#define | GLFW_KEY_WORLD_2 162 /* non-US #2 */
#define | GLFW_KEY_ESCAPE 256
#define | GLFW_KEY_ENTER 257
#define | GLFW_KEY_TAB 258
#define | GLFW_KEY_BACKSPACE 259
#define | GLFW_KEY_INSERT 260
#define | GLFW_KEY_DELETE 261
#define | GLFW_KEY_RIGHT 262
#define | GLFW_KEY_LEFT 263
#define | GLFW_KEY_DOWN 264
#define | GLFW_KEY_UP 265
#define | GLFW_KEY_PAGE_UP 266
#define | GLFW_KEY_PAGE_DOWN 267
#define | GLFW_KEY_HOME 268
#define | GLFW_KEY_END 269
#define | GLFW_KEY_CAPS_LOCK 280
#define | GLFW_KEY_SCROLL_LOCK 281
#define | GLFW_KEY_NUM_LOCK 282
#define | GLFW_KEY_PRINT_SCREEN 283
#define | GLFW_KEY_PAUSE 284
#define | GLFW_KEY_F1 290
#define | GLFW_KEY_F2 291
#define | GLFW_KEY_F3 292
#define | GLFW_KEY_F4 293
#define | GLFW_KEY_F5 294
#define | GLFW_KEY_F6 295
#define | GLFW_KEY_F7 296
#define | GLFW_KEY_F8 297
#define | GLFW_KEY_F9 298
#define | GLFW_KEY_F10 299
#define | GLFW_KEY_F11 300
#define | GLFW_KEY_F12 301
#define | GLFW_KEY_F13 302
#define | GLFW_KEY_F14 303
#define | GLFW_KEY_F15 304
#define | GLFW_KEY_F16 305
#define | GLFW_KEY_F17 306
#define | GLFW_KEY_F18 307
#define | GLFW_KEY_F19 308
#define | GLFW_KEY_F20 309
#define | GLFW_KEY_F21 310
#define | GLFW_KEY_F22 311
#define | GLFW_KEY_F23 312
#define | GLFW_KEY_F24 313
#define | GLFW_KEY_F25 314
#define | GLFW_KEY_KP_0 320
#define | GLFW_KEY_KP_1 321
#define | GLFW_KEY_KP_2 322
#define | GLFW_KEY_KP_3 323
#define | GLFW_KEY_KP_4 324
#define | GLFW_KEY_KP_5 325
#define | GLFW_KEY_KP_6 326
#define | GLFW_KEY_KP_7 327
#define | GLFW_KEY_KP_8 328
#define | GLFW_KEY_KP_9 329
#define | GLFW_KEY_KP_DECIMAL 330
#define | GLFW_KEY_KP_DIVIDE 331
#define | GLFW_KEY_KP_MULTIPLY 332
#define | GLFW_KEY_KP_SUBTRACT 333
#define | GLFW_KEY_KP_ADD 334
#define | GLFW_KEY_KP_ENTER 335
#define | GLFW_KEY_KP_EQUAL 336
#define | GLFW_KEY_LEFT_SHIFT 340
#define | GLFW_KEY_LEFT_CONTROL 341
#define | GLFW_KEY_LEFT_ALT 342
#define | GLFW_KEY_LEFT_SUPER 343
#define | GLFW_KEY_RIGHT_SHIFT 344
#define | GLFW_KEY_RIGHT_CONTROL 345
#define | GLFW_KEY_RIGHT_ALT 346
#define | GLFW_KEY_RIGHT_SUPER 347
#define | GLFW_KEY_MENU 348
#define | GLFW_KEY_LAST GLFW_KEY_MENU
#define | GLFW_MOD_SHIFT 0x0001
| If this bit is set one or more Shift keys were held down.
#define | GLFW_MOD_CONTROL 0x0002
| If this bit is set one or more Control keys were held down.
#define | GLFW_MOD_ALT 0x0004
| If this bit is set one or more Alt keys were held down.
#define | GLFW_MOD_SUPER 0x0008
| If this bit is set one or more Super keys were held down.
#define | GLFW_MOD_CAPS_LOCK 0x0010
| If this bit is set the Caps Lock key is enabled.
#define | GLFW_MOD_NUM_LOCK 0x0020
| If this bit is set the Num Lock key is enabled.
#define | GLFW_MOUSE_BUTTON_1 0
#define | GLFW_MOUSE_BUTTON_2 1
#define | GLFW_MOUSE_BUTTON_3 2
#define | GLFW_MOUSE_BUTTON_4 3
#define | GLFW_MOUSE_BUTTON_5 4
#define | GLFW_MOUSE_BUTTON_6 5
#define | GLFW_MOUSE_BUTTON_7 6
#define | GLFW_MOUSE_BUTTON_8 7
#define | GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
#define | GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
#define | GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
#define | GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
#define | GLFW_JOYSTICK_1 0
#define | GLFW_JOYSTICK_2 1
#define | GLFW_JOYSTICK_3 2
#define | GLFW_JOYSTICK_4 3
#define | GLFW_JOYSTICK_5 4
#define | GLFW_JOYSTICK_6 5
#define | GLFW_JOYSTICK_7 6
#define | GLFW_JOYSTICK_8 7
#define | GLFW_JOYSTICK_9 8
#define | GLFW_JOYSTICK_10 9
#define | GLFW_JOYSTICK_11 10
#define | GLFW_JOYSTICK_12 11
#define | GLFW_JOYSTICK_13 12
#define | GLFW_JOYSTICK_14 13
#define | GLFW_JOYSTICK_15 14
#define | GLFW_JOYSTICK_16 15
#define | GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
#define | GLFW_GAMEPAD_BUTTON_A 0
#define | GLFW_GAMEPAD_BUTTON_B 1
#define | GLFW_GAMEPAD_BUTTON_X 2
#define | GLFW_GAMEPAD_BUTTON_Y 3
#define | GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
#define | GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
#define | GLFW_GAMEPAD_BUTTON_BACK 6
#define | GLFW_GAMEPAD_BUTTON_START 7
#define | GLFW_GAMEPAD_BUTTON_GUIDE 8
#define | GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
#define | GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
#define | GLFW_GAMEPAD_BUTTON_DPAD_UP 11
#define | GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
#define | GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
#define | GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
#define | GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
#define | GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
#define | GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
#define | GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
#define | GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
#define | GLFW_GAMEPAD_AXIS_LEFT_X 0
#define | GLFW_GAMEPAD_AXIS_LEFT_Y 1
#define | GLFW_GAMEPAD_AXIS_RIGHT_X 2
#define | GLFW_GAMEPAD_AXIS_RIGHT_Y 3
#define | GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
#define | GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
#define | GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
#define | GLFW_NO_ERROR 0
| No error has occurred.
#define | GLFW_NOT_INITIALIZED 0x00010001
| GLFW has not been initialized.
#define | GLFW_NO_CURRENT_CONTEXT 0x00010002
| No context is current for this thread.
#define | GLFW_INVALID_ENUM 0x00010003
| One of the arguments to the function was an invalid enum value.
#define | GLFW_INVALID_VALUE 0x00010004
| One of the arguments to the function was an invalid value.
#define | GLFW_OUT_OF_MEMORY 0x00010005
| A memory allocation failed.
#define | GLFW_API_UNAVAILABLE 0x00010006
| GLFW could not find support for the requested API on the system.
#define | GLFW_VERSION_UNAVAILABLE 0x00010007
| The requested OpenGL or OpenGL ES version is not available.
#define | GLFW_PLATFORM_ERROR 0x00010008
| A platform-specific error occurred that does not match any of the more specific categories.
#define | GLFW_FORMAT_UNAVAILABLE 0x00010009
| The requested format is not supported or available.
#define | GLFW_NO_WINDOW_CONTEXT 0x0001000A
| The specified window does not have an OpenGL or OpenGL ES context.
#define | GLFW_CURSOR_UNAVAILABLE 0x0001000B
| The specified cursor shape is not available.
#define | GLFW_FEATURE_UNAVAILABLE 0x0001000C
| The requested feature is not provided by the platform.
#define | GLFW_FEATURE_UNIMPLEMENTED 0x0001000D
| The requested feature is not implemented for the platform.
#define | GLFW_PLATFORM_UNAVAILABLE 0x0001000E
| Platform unavailable or no matching platform was found.
#define | GLFW_FOCUSED 0x00020001
| Input focus window hint and attribute.
#define | GLFW_ICONIFIED 0x00020002
| Window iconification window attribute.
#define | GLFW_RESIZABLE 0x00020003
| Window resize-ability window hint and attribute.
#define | GLFW_VISIBLE 0x00020004
| Window visibility window hint and attribute.
#define | GLFW_DECORATED 0x00020005
| Window decoration window hint and attribute.
#define | GLFW_AUTO_ICONIFY 0x00020006
| Window auto-iconification window hint and attribute.
#define | GLFW_FLOATING 0x00020007
| Window decoration window hint and attribute.
#define | GLFW_MAXIMIZED 0x00020008
| Window maximization window hint and attribute.
#define | GLFW_CENTER_CURSOR 0x00020009
| Cursor centering window hint.
#define | GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
| Window framebuffer transparency hint and attribute.
#define | GLFW_HOVERED 0x0002000B
| Mouse cursor hover window attribute.
#define | GLFW_FOCUS_ON_SHOW 0x0002000C
| Input focus on calling show window hint and attribute.
#define | GLFW_MOUSE_PASSTHROUGH 0x0002000D
| Mouse input transparency window hint and attribute.
#define | GLFW_POSITION_X 0x0002000E
| Initial position x-coordinate window hint.
#define | GLFW_POSITION_Y 0x0002000F
| Initial position y-coordinate window hint.
#define | GLFW_RED_BITS 0x00021001
| Framebuffer bit depth hint.
#define | GLFW_GREEN_BITS 0x00021002
| Framebuffer bit depth hint.
#define | GLFW_BLUE_BITS 0x00021003
| Framebuffer bit depth hint.
#define | GLFW_ALPHA_BITS 0x00021004
| Framebuffer bit depth hint.
#define | GLFW_DEPTH_BITS 0x00021005
| Framebuffer bit depth hint.
#define | GLFW_STENCIL_BITS 0x00021006
| Framebuffer bit depth hint.
#define | GLFW_ACCUM_RED_BITS 0x00021007
| Framebuffer bit depth hint.
#define | GLFW_ACCUM_GREEN_BITS 0x00021008
| Framebuffer bit depth hint.
#define | GLFW_ACCUM_BLUE_BITS 0x00021009
| Framebuffer bit depth hint.
#define | GLFW_ACCUM_ALPHA_BITS 0x0002100A
| Framebuffer bit depth hint.
#define | GLFW_AUX_BUFFERS 0x0002100B
| Framebuffer auxiliary buffer hint.
#define | GLFW_STEREO 0x0002100C
| OpenGL stereoscopic rendering hint.
#define | GLFW_SAMPLES 0x0002100D
| Framebuffer MSAA samples hint.
#define | GLFW_SRGB_CAPABLE 0x0002100E
| Framebuffer sRGB hint.
#define | GLFW_REFRESH_RATE 0x0002100F
| Monitor refresh rate hint.
#define | GLFW_DOUBLEBUFFER 0x00021010
| Framebuffer double buffering hint and attribute.
#define | GLFW_CLIENT_API 0x00022001
| Context client API hint and attribute.
#define | GLFW_CONTEXT_VERSION_MAJOR 0x00022002
| Context client API major version hint and attribute.
#define | GLFW_CONTEXT_VERSION_MINOR 0x00022003
| Context client API minor version hint and attribute.
#define | GLFW_CONTEXT_REVISION 0x00022004
| Context client API revision number attribute.
#define | GLFW_CONTEXT_ROBUSTNESS 0x00022005
| Context robustness hint and attribute.
#define | GLFW_OPENGL_FORWARD_COMPAT 0x00022006
| OpenGL forward-compatibility hint and attribute.
#define | GLFW_CONTEXT_DEBUG 0x00022007
| Debug mode context hint and attribute.
#define | GLFW_OPENGL_DEBUG_CONTEXT GLFW_CONTEXT_DEBUG
| Legacy name for compatibility.
#define | GLFW_OPENGL_PROFILE 0x00022008
| OpenGL profile hint and attribute.
#define | GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
| Context flush-on-release hint and attribute.
#define | GLFW_CONTEXT_NO_ERROR 0x0002200A
| Context error suppression hint and attribute.
#define | GLFW_CONTEXT_CREATION_API 0x0002200B
| Context creation API hint and attribute.
#define | GLFW_SCALE_TO_MONITOR 0x0002200C
| Window content area scaling window window hint.
#define | GLFW_SCALE_FRAMEBUFFER 0x0002200D
| Window framebuffer scaling window hint.
#define | GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
| Legacy name for compatibility.
#define | GLFW_COCOA_FRAME_NAME 0x00023002
| macOS specific window hint.
#define | GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
| macOS specific window hint.
#define | GLFW_X11_CLASS_NAME 0x00024001
| X11 specific window hint.
#define | GLFW_X11_INSTANCE_NAME 0x00024002
| X11 specific window hint.
#define | GLFW_WIN32_KEYBOARD_MENU 0x00025001
#define | GLFW_WIN32_SHOWDEFAULT 0x00025002
| Win32 specific window hint.
#define | GLFW_WAYLAND_APP_ID 0x00026001
| Wayland specific window hint.
#define | GLFW_NO_API 0
#define | GLFW_OPENGL_API 0x00030001
#define | GLFW_OPENGL_ES_API 0x00030002
#define | GLFW_NO_ROBUSTNESS 0
#define | GLFW_NO_RESET_NOTIFICATION 0x00031001
#define | GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
#define | GLFW_OPENGL_ANY_PROFILE 0
#define | GLFW_OPENGL_CORE_PROFILE 0x00032001
#define | GLFW_OPENGL_COMPAT_PROFILE 0x00032002
#define | GLFW_CURSOR 0x00033001
#define | GLFW_STICKY_KEYS 0x00033002
#define | GLFW_STICKY_MOUSE_BUTTONS 0x00033003
#define | GLFW_LOCK_KEY_MODS 0x00033004
#define | GLFW_RAW_MOUSE_MOTION 0x00033005
#define | GLFW_UNLIMITED_MOUSE_BUTTONS 0x00033006
#define | GLFW_CURSOR_NORMAL 0x00034001
#define | GLFW_CURSOR_HIDDEN 0x00034002
#define | GLFW_CURSOR_DISABLED 0x00034003
#define | GLFW_CURSOR_CAPTURED 0x00034004
#define | GLFW_ANY_RELEASE_BEHAVIOR 0
#define | GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
#define | GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
#define | GLFW_NATIVE_CONTEXT_API 0x00036001
#define | GLFW_EGL_CONTEXT_API 0x00036002
#define | GLFW_OSMESA_CONTEXT_API 0x00036003
#define | GLFW_ANGLE_PLATFORM_TYPE_NONE 0x00037001
#define | GLFW_ANGLE_PLATFORM_TYPE_OPENGL 0x00037002
#define | GLFW_ANGLE_PLATFORM_TYPE_OPENGLES 0x00037003
#define | GLFW_ANGLE_PLATFORM_TYPE_D3D9 0x00037004
#define | GLFW_ANGLE_PLATFORM_TYPE_D3D11 0x00037005
#define | GLFW_ANGLE_PLATFORM_TYPE_VULKAN 0x00037007
#define | GLFW_ANGLE_PLATFORM_TYPE_METAL 0x00037008
#define | GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001
#define | GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002
#define | GLFW_ANY_POSITION 0x80000000
#define | GLFW_ARROW_CURSOR 0x00036001
| The regular arrow cursor shape.
#define | GLFW_IBEAM_CURSOR 0x00036002
| The text input I-beam cursor shape.
#define | GLFW_CROSSHAIR_CURSOR 0x00036003
| The crosshair cursor shape.
#define | GLFW_POINTING_HAND_CURSOR 0x00036004
| The pointing hand cursor shape.
#define | GLFW_RESIZE_EW_CURSOR 0x00036005
| The horizontal resize/move arrow shape.
#define | GLFW_RESIZE_NS_CURSOR 0x00036006
| The vertical resize/move arrow shape.
#define | GLFW_RESIZE_NWSE_CURSOR 0x00036007
| The top-left to bottom-right diagonal resize/move arrow shape.
#define | GLFW_RESIZE_NESW_CURSOR 0x00036008
| The top-right to bottom-left diagonal resize/move arrow shape.
#define | GLFW_RESIZE_ALL_CURSOR 0x00036009
| The omni-directional resize/move cursor shape.
#define | GLFW_NOT_ALLOWED_CURSOR 0x0003600A
| The operation-not-allowed shape.
#define | GLFW_HRESIZE_CURSOR GLFW_RESIZE_EW_CURSOR
| Legacy name for compatibility.
#define | GLFW_VRESIZE_CURSOR GLFW_RESIZE_NS_CURSOR
| Legacy name for compatibility.
#define | GLFW_HAND_CURSOR GLFW_POINTING_HAND_CURSOR
| Legacy name for compatibility.
#define | GLFW_CONNECTED 0x00040001
#define | GLFW_DISCONNECTED 0x00040002
#define | GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
| Joystick hat buttons init hint.
#define | GLFW_ANGLE_PLATFORM_TYPE 0x00050002
| ANGLE rendering backend init hint.
#define | GLFW_PLATFORM 0x00050003
| Platform selection init hint.
#define | GLFW_COCOA_CHDIR_RESOURCES 0x00051001
| macOS specific init hint.
#define | GLFW_COCOA_MENUBAR 0x00051002
| macOS specific init hint.
#define | GLFW_X11_XCB_VULKAN_SURFACE 0x00052001
| X11 specific init hint.
#define | GLFW_WAYLAND_LIBDECOR 0x00053001
| Wayland specific init hint.
#define | GLFW_ANY_PLATFORM 0x00060000
| Hint value that enables automatic platform selection.
#define | GLFW_PLATFORM_WIN32 0x00060001
#define | GLFW_PLATFORM_COCOA 0x00060002
#define | GLFW_PLATFORM_WAYLAND 0x00060003
#define | GLFW_PLATFORM_X11 0x00060004
#define | GLFW_PLATFORM_NULL 0x00060005
#define | GLFW_DONT_CARE -1
#define | GLAPIENTRY APIENTRY
#define | GLFW_GLAPIENTRY_DEFINED
GLFW version macros
#define | GLFW_VERSION_MAJOR 3
| The major version number of the GLFW header.
#define | GLFW_VERSION_MINOR 5
| The minor version number of the GLFW header.
#define | GLFW_VERSION_REVISION 1
| The revision number of the GLFW header.
Key and button actions
#define | GLFW_RELEASE 0
| The key or mouse button was released.
#define | GLFW_PRESS 1
| The key or mouse button was pressed.
#define | GLFW_REPEAT 2
| The key was held down until it repeated.

## Typedefs

typedef void(* | GLFWglproc) (void)
| Client API function pointer type.
typedef void(* | GLFWvkproc) (void)
| Vulkan API function pointer type.
typedef struct GLFWmonitor | GLFWmonitor
| Opaque monitor object.
typedef struct GLFWwindow | GLFWwindow
| Opaque window object.
typedef struct GLFWcursor | GLFWcursor
| Opaque cursor object.
typedef void *(* | GLFWallocatefun) (size_t size, void *user)
| The function pointer type for memory allocation callbacks.
typedef void *(* | GLFWreallocatefun) (void *block, size_t size, void *user)
| The function pointer type for memory reallocation callbacks.
typedef void(* | GLFWdeallocatefun) (void *block, void *user)
| The function pointer type for memory deallocation callbacks.
typedef void(* | GLFWerrorfun) (int error_code, const char *description)
| The function pointer type for error callbacks.
typedef void(* | GLFWwindowposfun) (GLFWwindow *window, int xpos, int ypos)
| The function pointer type for window position callbacks.
typedef void(* | GLFWwindowsizefun) (GLFWwindow *window, int width, int height)
| The function pointer type for window size callbacks.
typedef void(* | GLFWwindowclosefun) (GLFWwindow *window)
| The function pointer type for window close callbacks.
typedef void(* | GLFWwindowrefreshfun) (GLFWwindow *window)
| The function pointer type for window content refresh callbacks.
typedef void(* | GLFWwindowfocusfun) (GLFWwindow *window, int focused)
| The function pointer type for window focus callbacks.
typedef void(* | GLFWwindowiconifyfun) (GLFWwindow *window, int iconified)
| The function pointer type for window iconify callbacks.
typedef void(* | GLFWwindowmaximizefun) (GLFWwindow *window, int maximized)
| The function pointer type for window maximize callbacks.
typedef void(* | GLFWframebuffersizefun) (GLFWwindow *window, int width, int height)
| The function pointer type for framebuffer size callbacks.
typedef void(* | GLFWwindowcontentscalefun) (GLFWwindow *window, float xscale, float yscale)
| The function pointer type for window content scale callbacks.
typedef void(* | GLFWmousebuttonfun) (GLFWwindow *window, int button, int action, int mods)
| The function pointer type for mouse button callbacks.
typedef void(* | GLFWcursorposfun) (GLFWwindow *window, double xpos, double ypos)
| The function pointer type for cursor position callbacks.
typedef void(* | GLFWcursorenterfun) (GLFWwindow *window, int entered)
| The function pointer type for cursor enter/leave callbacks.
typedef void(* | GLFWscrollfun) (GLFWwindow *window, double xoffset, double yoffset)
| The function pointer type for scroll callbacks.
typedef void(* | GLFWkeyfun) (GLFWwindow *window, int key, int scancode, int action, int mods)
| The function pointer type for keyboard key callbacks.
typedef void(* | GLFWcharfun) (GLFWwindow *window, unsigned int codepoint)
| The function pointer type for Unicode character callbacks.
typedef void(* | GLFWcharmodsfun) (GLFWwindow *window, unsigned int codepoint, int mods)
| The function pointer type for Unicode character with modifiers callbacks.
typedef void(* | GLFWdropfun) (GLFWwindow *window, int path_count, const char *paths[])
| The function pointer type for path drop callbacks.
typedef void(* | GLFWmonitorfun) (GLFWmonitor *monitor, int event)
| The function pointer type for monitor configuration callbacks.
typedef void(* | GLFWjoystickfun) (int jid, int event)
| The function pointer type for joystick configuration callbacks.
typedef struct GLFWvidmode | GLFWvidmode
| Video mode type.
typedef struct GLFWgammaramp | GLFWgammaramp
| Gamma ramp.
typedef struct GLFWimage | GLFWimage
| Image data.
typedef struct GLFWgamepadstate | GLFWgamepadstate
| Gamepad input state.
typedef struct GLFWallocator | GLFWallocator
| Custom heap memory allocator.

## Functions

int | glfwInit (void)
| Initializes the GLFW library.
void | glfwTerminate (void)
| Terminates the GLFW library.
void | glfwInitHint (int hint, int value)
| Sets the specified init hint to the desired value.
void | glfwInitAllocator (const GLFWallocator *allocator)
| Sets the init allocator to the desired value.
void | glfwInitVulkanLoader (PFN_vkGetInstanceProcAddr loader)
| Sets the desired Vulkan vkGetInstanceProcAddr function.
void | glfwGetVersion (int *major, int *minor, int *rev)
| Retrieves the version of the GLFW library.
const char * | glfwGetVersionString (void)
| Returns a string describing the compile-time configuration.
int | glfwGetError (const char **description)
| Returns and clears the last error for the calling thread.
GLFWerrorfun | glfwSetErrorCallback (GLFWerrorfun callback)
| Sets the error callback.
int | glfwGetPlatform (void)
| Returns the currently selected platform.
int | glfwPlatformSupported (int platform)
| Returns whether the library includes support for the specified platform.
GLFWmonitor ** | glfwGetMonitors (int *count)
| Returns the currently connected monitors.
GLFWmonitor * | glfwGetPrimaryMonitor (void)
| Returns the primary monitor.
void | glfwGetMonitorPos (GLFWmonitor *monitor, int *xpos, int *ypos)
| Returns the position of the monitor's viewport on the virtual screen.
void | glfwGetMonitorWorkarea (GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
| Retrieves the work area of the monitor.
void | glfwGetMonitorPhysicalSize (GLFWmonitor *monitor, int *widthMM, int *heightMM)
| Returns the physical size of the monitor.
void | glfwGetMonitorContentScale (GLFWmonitor *monitor, float *xscale, float *yscale)
| Retrieves the content scale for the specified monitor.
const char * | glfwGetMonitorName (GLFWmonitor *monitor)
| Returns the name of the specified monitor.
void | glfwSetMonitorUserPointer (GLFWmonitor *monitor, void *pointer)
| Sets the user pointer of the specified monitor.
void * | glfwGetMonitorUserPointer (GLFWmonitor *monitor)
| Returns the user pointer of the specified monitor.
GLFWmonitorfun | glfwSetMonitorCallback (GLFWmonitorfun callback)
| Sets the monitor configuration callback.
const GLFWvidmode * | glfwGetVideoModes (GLFWmonitor *monitor, int *count)
| Returns the available video modes for the specified monitor.
const GLFWvidmode * | glfwGetVideoMode (GLFWmonitor *monitor)
| Returns the current mode of the specified monitor.
void | glfwSetGamma (GLFWmonitor *monitor, float gamma)
| Generates a gamma ramp and sets it for the specified monitor.
const GLFWgammaramp * | glfwGetGammaRamp (GLFWmonitor *monitor)
| Returns the current gamma ramp for the specified monitor.
void | glfwSetGammaRamp (GLFWmonitor *monitor, const GLFWgammaramp *ramp)
| Sets the current gamma ramp for the specified monitor.
void | glfwDefaultWindowHints (void)
| Resets all window hints to their default values.
void | glfwWindowHint (int hint, int value)
| Sets the specified window hint to the desired value.
void | glfwWindowHintString (int hint, const char *value)
| Sets the specified window hint to the desired value.
GLFWwindow * | glfwCreateWindow (int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
| Creates a window and its associated context.
void | glfwDestroyWindow (GLFWwindow *window)
| Destroys the specified window and its context.
int | glfwWindowShouldClose (GLFWwindow *window)
| Checks the close flag of the specified window.
void | glfwSetWindowShouldClose (GLFWwindow *window, int value)
| Sets the close flag of the specified window.
const char * | glfwGetWindowTitle (GLFWwindow *window)
| Returns the title of the specified window.
void | glfwSetWindowTitle (GLFWwindow *window, const char *title)
| Sets the title of the specified window.
void | glfwSetWindowIcon (GLFWwindow *window, int count, const GLFWimage *images)
| Sets the icon for the specified window.
void | glfwGetWindowPos (GLFWwindow *window, int *xpos, int *ypos)
| Retrieves the position of the content area of the specified window.
void | glfwSetWindowPos (GLFWwindow *window, int xpos, int ypos)
| Sets the position of the content area of the specified window.
void | glfwGetWindowSize (GLFWwindow *window, int *width, int *height)
| Retrieves the size of the content area of the specified window.
void | glfwSetWindowSizeLimits (GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
| Sets the size limits of the specified window.
void | glfwSetWindowAspectRatio (GLFWwindow *window, int numer, int denom)
| Sets the aspect ratio of the specified window.
void | glfwSetWindowSize (GLFWwindow *window, int width, int height)
| Sets the size of the content area of the specified window.
void | glfwGetFramebufferSize (GLFWwindow *window, int *width, int *height)
| Retrieves the size of the framebuffer of the specified window.
void | glfwGetWindowFrameSize (GLFWwindow *window, int *left, int *top, int *right, int *bottom)
| Retrieves the size of the frame of the window.
void | glfwGetWindowContentScale (GLFWwindow *window, float *xscale, float *yscale)
| Retrieves the content scale for the specified window.
float | glfwGetWindowOpacity (GLFWwindow *window)
| Returns the opacity of the whole window.
void | glfwSetWindowOpacity (GLFWwindow *window, float opacity)
| Sets the opacity of the whole window.
void | glfwIconifyWindow (GLFWwindow *window)
| Iconifies the specified window.
void | glfwRestoreWindow (GLFWwindow *window)
| Restores the specified window.
void | glfwMaximizeWindow (GLFWwindow *window)
| Maximizes the specified window.
void | glfwShowWindow (GLFWwindow *window)
| Makes the specified window visible.
void | glfwHideWindow (GLFWwindow *window)
| Hides the specified window.
void | glfwFocusWindow (GLFWwindow *window)
| Brings the specified window to front and sets input focus.
void | glfwRequestWindowAttention (GLFWwindow *window)
| Requests user attention to the specified window.
GLFWmonitor * | glfwGetWindowMonitor (GLFWwindow *window)
| Returns the monitor that the window uses for full screen mode.
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.
int | glfwGetWindowAttrib (GLFWwindow *window, int attrib)
| Returns an attribute of the specified window.
void | glfwSetWindowAttrib (GLFWwindow *window, int attrib, int value)
| Sets an attribute of the specified window.
void | glfwSetWindowUserPointer (GLFWwindow *window, void *pointer)
| Sets the user pointer of the specified window.
void * | glfwGetWindowUserPointer (GLFWwindow *window)
| Returns the user pointer of the specified window.
GLFWwindowposfun | glfwSetWindowPosCallback (GLFWwindow *window, GLFWwindowposfun callback)
| Sets the position callback for the specified window.
GLFWwindowsizefun | glfwSetWindowSizeCallback (GLFWwindow *window, GLFWwindowsizefun callback)
| Sets the size callback for the specified window.
GLFWwindowclosefun | glfwSetWindowCloseCallback (GLFWwindow *window, GLFWwindowclosefun callback)
| Sets the close callback for the specified window.
GLFWwindowrefreshfun | glfwSetWindowRefreshCallback (GLFWwindow *window, GLFWwindowrefreshfun callback)
| Sets the refresh callback for the specified window.
GLFWwindowfocusfun | glfwSetWindowFocusCallback (GLFWwindow *window, GLFWwindowfocusfun callback)
| Sets the focus callback for the specified window.
GLFWwindowiconifyfun | glfwSetWindowIconifyCallback (GLFWwindow *window, GLFWwindowiconifyfun callback)
| Sets the iconify callback for the specified window.
GLFWwindowmaximizefun | glfwSetWindowMaximizeCallback (GLFWwindow *window, GLFWwindowmaximizefun callback)
| Sets the maximize callback for the specified window.
GLFWframebuffersizefun | glfwSetFramebufferSizeCallback (GLFWwindow *window, GLFWframebuffersizefun callback)
| Sets the framebuffer resize callback for the specified window.
GLFWwindowcontentscalefun | glfwSetWindowContentScaleCallback (GLFWwindow *window, GLFWwindowcontentscalefun callback)
| Sets the window content scale callback for the specified window.
void | glfwPollEvents (void)
| Processes all pending events.
void | glfwWaitEvents (void)
| Waits until events are queued and processes them.
void | glfwWaitEventsTimeout (double timeout)
| Waits with timeout until events are queued and processes them.
void | glfwPostEmptyEvent (void)
| Posts an empty event to the event queue.
int | glfwGetInputMode (GLFWwindow *window, int mode)
| Returns the value of an input option for the specified window.
void | glfwSetInputMode (GLFWwindow *window, int mode, int value)
| Sets an input option for the specified window.
int | glfwRawMouseMotionSupported (void)
| Returns whether raw mouse motion is supported.
const char * | glfwGetKeyName (int key, int scancode)
| Returns the layout-specific name of the specified printable key.
int | glfwGetKeyScancode (int key)
| Returns the platform-specific scancode of the specified key.
int | glfwGetKey (GLFWwindow *window, int key)
| Returns the last reported state of a keyboard key for the specified window.
int | glfwGetMouseButton (GLFWwindow *window, int button)
| Returns the last reported state of a mouse button for the specified window.
void | glfwGetCursorPos (GLFWwindow *window, double *xpos, double *ypos)
| Retrieves the position of the cursor relative to the content area of the window.
void | glfwSetCursorPos (GLFWwindow *window, double xpos, double ypos)
| Sets the position of the cursor, relative to the content area of the window.
GLFWcursor * | glfwCreateCursor (const GLFWimage *image, int xhot, int yhot)
| Creates a custom cursor.
GLFWcursor * | glfwCreateStandardCursor (int shape)
| Creates a cursor with a standard shape.
void | glfwDestroyCursor (GLFWcursor *cursor)
| Destroys a cursor.
void | glfwSetCursor (GLFWwindow *window, GLFWcursor *cursor)
| Sets the cursor for the window.
GLFWkeyfun | glfwSetKeyCallback (GLFWwindow *window, GLFWkeyfun callback)
| Sets the key callback.
GLFWcharfun | glfwSetCharCallback (GLFWwindow *window, GLFWcharfun callback)
| Sets the Unicode character callback.
GLFWcharmodsfun | glfwSetCharModsCallback (GLFWwindow *window, GLFWcharmodsfun callback)
| Sets the Unicode character with modifiers callback.
GLFWmousebuttonfun | glfwSetMouseButtonCallback (GLFWwindow *window, GLFWmousebuttonfun callback)
| Sets the mouse button callback.
GLFWcursorposfun | glfwSetCursorPosCallback (GLFWwindow *window, GLFWcursorposfun callback)
| Sets the cursor position callback.
GLFWcursorenterfun | glfwSetCursorEnterCallback (GLFWwindow *window, GLFWcursorenterfun callback)
| Sets the cursor enter/leave callback.
GLFWscrollfun | glfwSetScrollCallback (GLFWwindow *window, GLFWscrollfun callback)
| Sets the scroll callback.
GLFWdropfun | glfwSetDropCallback (GLFWwindow *window, GLFWdropfun callback)
| Sets the path drop callback.
int | glfwJoystickPresent (int jid)
| Returns whether the specified joystick is present.
const float * | glfwGetJoystickAxes (int jid, int *count)
| Returns the values of all axes of the specified joystick.
const unsigned char * | glfwGetJoystickButtons (int jid, int *count)
| Returns the state of all buttons of the specified joystick.
const unsigned char * | glfwGetJoystickHats (int jid, int *count)
| Returns the state of all hats of the specified joystick.
const char * | glfwGetJoystickName (int jid)
| Returns the name of the specified joystick.
const char * | glfwGetJoystickGUID (int jid)
| Returns the SDL compatible GUID of the specified joystick.
void | glfwSetJoystickUserPointer (int jid, void *pointer)
| Sets the user pointer of the specified joystick.
void * | glfwGetJoystickUserPointer (int jid)
| Returns the user pointer of the specified joystick.
int | glfwJoystickIsGamepad (int jid)
| Returns whether the specified joystick has a gamepad mapping.
GLFWjoystickfun | glfwSetJoystickCallback (GLFWjoystickfun callback)
| Sets the joystick configuration callback.
int | glfwUpdateGamepadMappings (const char *string)
| Adds the specified SDL_GameControllerDB gamepad mappings.
const char * | glfwGetGamepadName (int jid)
| Returns the human-readable gamepad name for the specified joystick.
int | glfwGetGamepadState (int jid, GLFWgamepadstate *state)
| Retrieves the state of the specified joystick remapped as a gamepad.
void | glfwSetClipboardString (GLFWwindow *window, const char *string)
| Sets the clipboard to the specified string.
const char * | glfwGetClipboardString (GLFWwindow *window)
| Returns the contents of the clipboard as a string.
double | glfwGetTime (void)
| Returns the GLFW time.
void | glfwSetTime (double time)
| Sets the GLFW time.
uint64_t | glfwGetTimerValue (void)
| Returns the current value of the raw timer.
uint64_t | glfwGetTimerFrequency (void)
| Returns the frequency, in Hz, of the raw timer.
void | glfwMakeContextCurrent (GLFWwindow *window)
| Makes the context of the specified window current for the calling thread.
GLFWwindow * | glfwGetCurrentContext (void)
| Returns the window whose context is current on the calling thread.
void | glfwSwapBuffers (GLFWwindow *window)
| Swaps the front and back buffers of the specified window.
void | glfwSwapInterval (int interval)
| Sets the swap interval for the current context.
int | glfwExtensionSupported (const char *extension)
| Returns whether the specified extension is available.
GLFWglproc | glfwGetProcAddress (const char *procname)
| Returns the address of the specified function for the current context.
int | glfwVulkanSupported (void)
| Returns whether the Vulkan loader and an ICD have been found.
const char ** | glfwGetRequiredInstanceExtensions (uint32_t *count)
| Returns the Vulkan instance extensions required by GLFW.
GLFWvkproc | glfwGetInstanceProcAddress (VkInstance instance, const char *procname)
| Returns the address of the specified Vulkan instance function.
int | glfwGetPhysicalDevicePresentationSupport (VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)
| Returns whether the specified queue family can present images.
VkResult | glfwCreateWindowSurface (VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)
| Creates a Vulkan surface for the specified window.

## Macro Definition Documentation

## GLFW_APIENTRY_DEFINED

#define GLFW_APIENTRY_DEFINED

## GLFW_NO_API

#define GLFW_NO_API 0

## GLFW_OPENGL_API

#define GLFW_OPENGL_API 0x00030001

## GLFW_OPENGL_ES_API

#define GLFW_OPENGL_ES_API 0x00030002

## GLFW_NO_ROBUSTNESS

#define GLFW_NO_ROBUSTNESS 0

## GLFW_NO_RESET_NOTIFICATION

#define GLFW_NO_RESET_NOTIFICATION 0x00031001

## GLFW_LOSE_CONTEXT_ON_RESET

#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002

## GLFW_OPENGL_ANY_PROFILE

#define GLFW_OPENGL_ANY_PROFILE 0

## GLFW_OPENGL_CORE_PROFILE

#define GLFW_OPENGL_CORE_PROFILE 0x00032001

## GLFW_OPENGL_COMPAT_PROFILE

#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002

## GLFW_CURSOR

#define GLFW_CURSOR 0x00033001

## GLFW_STICKY_KEYS

#define GLFW_STICKY_KEYS 0x00033002

## GLFW_STICKY_MOUSE_BUTTONS

#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003

## GLFW_LOCK_KEY_MODS

#define GLFW_LOCK_KEY_MODS 0x00033004

## GLFW_RAW_MOUSE_MOTION

#define GLFW_RAW_MOUSE_MOTION 0x00033005

## GLFW_UNLIMITED_MOUSE_BUTTONS

#define GLFW_UNLIMITED_MOUSE_BUTTONS 0x00033006

## GLFW_CURSOR_NORMAL

#define GLFW_CURSOR_NORMAL 0x00034001

## GLFW_CURSOR_HIDDEN

#define GLFW_CURSOR_HIDDEN 0x00034002

## GLFW_CURSOR_DISABLED

#define GLFW_CURSOR_DISABLED 0x00034003

## GLFW_CURSOR_CAPTURED

#define GLFW_CURSOR_CAPTURED 0x00034004

## GLFW_ANY_RELEASE_BEHAVIOR

#define GLFW_ANY_RELEASE_BEHAVIOR 0

## GLFW_RELEASE_BEHAVIOR_FLUSH

#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001

## GLFW_RELEASE_BEHAVIOR_NONE

#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002

## GLFW_NATIVE_CONTEXT_API

#define GLFW_NATIVE_CONTEXT_API 0x00036001

## GLFW_EGL_CONTEXT_API

#define GLFW_EGL_CONTEXT_API 0x00036002

## GLFW_OSMESA_CONTEXT_API

#define GLFW_OSMESA_CONTEXT_API 0x00036003

## GLFW_ANGLE_PLATFORM_TYPE_NONE

#define GLFW_ANGLE_PLATFORM_TYPE_NONE 0x00037001

## GLFW_ANGLE_PLATFORM_TYPE_OPENGL

#define GLFW_ANGLE_PLATFORM_TYPE_OPENGL 0x00037002

## GLFW_ANGLE_PLATFORM_TYPE_OPENGLES

#define GLFW_ANGLE_PLATFORM_TYPE_OPENGLES 0x00037003

## GLFW_ANGLE_PLATFORM_TYPE_D3D9

#define GLFW_ANGLE_PLATFORM_TYPE_D3D9 0x00037004

## GLFW_ANGLE_PLATFORM_TYPE_D3D11

#define GLFW_ANGLE_PLATFORM_TYPE_D3D11 0x00037005

## GLFW_ANGLE_PLATFORM_TYPE_VULKAN

#define GLFW_ANGLE_PLATFORM_TYPE_VULKAN 0x00037007

## GLFW_ANGLE_PLATFORM_TYPE_METAL

#define GLFW_ANGLE_PLATFORM_TYPE_METAL 0x00037008

## GLFW_WAYLAND_PREFER_LIBDECOR

#define GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001

## GLFW_WAYLAND_DISABLE_LIBDECOR

#define GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002

## GLFW_ANY_POSITION

#define GLFW_ANY_POSITION 0x80000000

## GLFW_CONNECTED

#define GLFW_CONNECTED 0x00040001

## GLFW_DISCONNECTED

#define GLFW_DISCONNECTED 0x00040002

## GLFW_DONT_CARE

#define GLFW_DONT_CARE -1

## GLAPIENTRY

#define GLAPIENTRY APIENTRY

## GLFW_GLAPIENTRY_DEFINED

#define GLFW_GLAPIENTRY_DEFINED