Loading...
Searching...
No Matches
Macros | Typedefs | Functions
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_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   4
 The minor version number of the GLFW header.
 
#define GLFW_VERSION_REVISION   0
 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.
 
GLFWmonitorglfwGetPrimaryMonitor (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 GLFWvidmodeglfwGetVideoModes (GLFWmonitor *monitor, int *count)
 Returns the available video modes for the specified monitor.
 
const GLFWvidmodeglfwGetVideoMode (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 GLFWgammarampglfwGetGammaRamp (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.
 
GLFWwindowglfwCreateWindow (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.
 
GLFWmonitorglfwGetWindowMonitor (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.
 
GLFWcursorglfwCreateCursor (const GLFWimage *image, int xhot, int yhot)
 Creates a custom cursor.
 
GLFWcursorglfwCreateStandardCursor (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.
 
GLFWwindowglfwGetCurrentContext (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_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