glfw3.h File Reference

The header of the GLFW 3 API. More...

Go to the source code of this file.

## Data Structures

struct | GLFWvidmode
| Video mode type. More...
struct | GLFWgammaramp
| Gamma ramp. More...
struct | GLFWimage
| Image data. More...

## Macros

#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. More...
#define | GLFW_MOD_CONTROL 0x0002
| If this bit is set one or more Control keys were held down. More...
#define | GLFW_MOD_ALT 0x0004
| If this bit is set one or more Alt keys were held down. More...
#define | GLFW_MOD_SUPER 0x0008
| If this bit is set one or more Super keys were held down. More...
#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_NOT_INITIALIZED 0x00010001
| GLFW has not been initialized. More...
#define | GLFW_NO_CURRENT_CONTEXT 0x00010002
| No context is current for this thread. More...
#define | GLFW_INVALID_ENUM 0x00010003
| One of the arguments to the function was an invalid enum value. More...
#define | GLFW_INVALID_VALUE 0x00010004
| One of the arguments to the function was an invalid value. More...
#define | GLFW_OUT_OF_MEMORY 0x00010005
| A memory allocation failed. More...
#define | GLFW_API_UNAVAILABLE 0x00010006
| GLFW could not find support for the requested API on the system. More...
#define | GLFW_VERSION_UNAVAILABLE 0x00010007
| The requested OpenGL or OpenGL ES version is not available. More...
#define | GLFW_PLATFORM_ERROR 0x00010008
| A platform-specific error occurred that does not match any of the more specific categories. More...
#define | GLFW_FORMAT_UNAVAILABLE 0x00010009
| The requested format is not supported or available. More...
#define | GLFW_NO_WINDOW_CONTEXT 0x0001000A
| The specified window does not have an OpenGL or OpenGL ES context. More...
#define | GLFW_FOCUSED 0x00020001
#define | GLFW_ICONIFIED 0x00020002
#define | GLFW_RESIZABLE 0x00020003
#define | GLFW_VISIBLE 0x00020004
#define | GLFW_DECORATED 0x00020005
#define | GLFW_AUTO_ICONIFY 0x00020006
#define | GLFW_FLOATING 0x00020007
#define | GLFW_MAXIMIZED 0x00020008
#define | GLFW_RED_BITS 0x00021001
#define | GLFW_GREEN_BITS 0x00021002
#define | GLFW_BLUE_BITS 0x00021003
#define | GLFW_ALPHA_BITS 0x00021004
#define | GLFW_DEPTH_BITS 0x00021005
#define | GLFW_STENCIL_BITS 0x00021006
#define | GLFW_ACCUM_RED_BITS 0x00021007
#define | GLFW_ACCUM_GREEN_BITS 0x00021008
#define | GLFW_ACCUM_BLUE_BITS 0x00021009
#define | GLFW_ACCUM_ALPHA_BITS 0x0002100A
#define | GLFW_AUX_BUFFERS 0x0002100B
#define | GLFW_STEREO 0x0002100C
#define | GLFW_SAMPLES 0x0002100D
#define | GLFW_SRGB_CAPABLE 0x0002100E
#define | GLFW_REFRESH_RATE 0x0002100F
#define | GLFW_DOUBLEBUFFER 0x00021010
#define | GLFW_CLIENT_API 0x00022001
#define | GLFW_CONTEXT_VERSION_MAJOR 0x00022002
#define | GLFW_CONTEXT_VERSION_MINOR 0x00022003
#define | GLFW_CONTEXT_REVISION 0x00022004
#define | GLFW_CONTEXT_ROBUSTNESS 0x00022005
#define | GLFW_OPENGL_FORWARD_COMPAT 0x00022006
#define | GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
#define | GLFW_OPENGL_PROFILE 0x00022008
#define | GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
#define | GLFW_CONTEXT_NO_ERROR 0x0002200A
#define | GLFW_CONTEXT_CREATION_API 0x0002200B
#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_CURSOR_NORMAL 0x00034001
#define | GLFW_CURSOR_HIDDEN 0x00034002
#define | GLFW_CURSOR_DISABLED 0x00034003
#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_ARROW_CURSOR 0x00036001
| The regular arrow cursor shape. More...
#define | GLFW_IBEAM_CURSOR 0x00036002
| The text input I-beam cursor shape. More...
#define | GLFW_CROSSHAIR_CURSOR 0x00036003
| The crosshair shape. More...
#define | GLFW_HAND_CURSOR 0x00036004
| The hand shape. More...
#define | GLFW_HRESIZE_CURSOR 0x00036005
| The horizontal resize arrow shape. More...
#define | GLFW_VRESIZE_CURSOR 0x00036006
| The vertical resize arrow shape. More...
#define | GLFW_CONNECTED 0x00040001
#define | GLFW_DISCONNECTED 0x00040002
#define | GLFW_DONT_CARE -1
GLFW version macros
#define | GLFW_VERSION_MAJOR 3
| The major version number of the GLFW library. More...
#define | GLFW_VERSION_MINOR 2
| The minor version number of the GLFW library. More...
#define | GLFW_VERSION_REVISION 1
| The revision number of the GLFW library. More...
Boolean values
#define | GLFW_TRUE 1
| One. More...
#define | GLFW_FALSE 0
| Zero. More...
Key and button actions
#define | GLFW_RELEASE 0
| The key or mouse button was released. More...
#define | GLFW_PRESS 1
| The key or mouse button was pressed. More...
#define | GLFW_REPEAT 2
| The key was held down until it repeated. More...

## Typedefs

typedef void(* | GLFWglproc) (void)
| Client API function pointer type. More...
typedef void(* | GLFWvkproc) (void)
| Vulkan API function pointer type. More...
typedef struct GLFWmonitor | GLFWmonitor
| Opaque monitor object. More...
typedef struct GLFWwindow | GLFWwindow
| Opaque window object. More...
typedef struct GLFWcursor | GLFWcursor
| Opaque cursor object. More...
typedef void(* | GLFWerrorfun) (int, const char *)
| The function signature for error callbacks. More...
typedef void(* | GLFWwindowposfun) (GLFWwindow *, int, int)
| The function signature for window position callbacks. More...
typedef void(* | GLFWwindowsizefun) (GLFWwindow *, int, int)
| The function signature for window resize callbacks. More...
typedef void(* | GLFWwindowclosefun) (GLFWwindow *)
| The function signature for window close callbacks. More...
typedef void(* | GLFWwindowrefreshfun) (GLFWwindow *)
| The function signature for window content refresh callbacks. More...
typedef void(* | GLFWwindowfocusfun) (GLFWwindow *, int)
| The function signature for window focus/defocus callbacks. More...
typedef void(* | GLFWwindowiconifyfun) (GLFWwindow *, int)
| The function signature for window iconify/restore callbacks. More...
typedef void(* | GLFWframebuffersizefun) (GLFWwindow *, int, int)
| The function signature for framebuffer resize callbacks. More...
typedef void(* | GLFWmousebuttonfun) (GLFWwindow *, int, int, int)
| The function signature for mouse button callbacks. More...
typedef void(* | GLFWcursorposfun) (GLFWwindow *, double, double)
| The function signature for cursor position callbacks. More...
typedef void(* | GLFWcursorenterfun) (GLFWwindow *, int)
| The function signature for cursor enter/leave callbacks. More...
typedef void(* | GLFWscrollfun) (GLFWwindow *, double, double)
| The function signature for scroll callbacks. More...
typedef void(* | GLFWkeyfun) (GLFWwindow *, int, int, int, int)
| The function signature for keyboard key callbacks. More...
typedef void(* | GLFWcharfun) (GLFWwindow *, unsigned int)
| The function signature for Unicode character callbacks. More...
typedef void(* | GLFWcharmodsfun) (GLFWwindow *, unsigned int, int)
| The function signature for Unicode character with modifiers callbacks. More...
typedef void(* | GLFWdropfun) (GLFWwindow *, int, const char **)
| The function signature for file drop callbacks. More...
typedef void(* | GLFWmonitorfun) (GLFWmonitor *, int)
| The function signature for monitor configuration callbacks. More...
typedef void(* | GLFWjoystickfun) (int, int)
| The function signature for joystick configuration callbacks. More...
typedef struct GLFWvidmode | GLFWvidmode
| Video mode type. More...
typedef struct GLFWgammaramp | GLFWgammaramp
| Gamma ramp. More...
typedef struct GLFWimage | GLFWimage
| Image data. More...

## Functions

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

## Detailed 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.

## Macro Definition Documentation

#define GLFW_ACCUM_ALPHA_BITS 0x0002100A

#define GLFW_ACCUM_BLUE_BITS 0x00021009

#define GLFW_ACCUM_GREEN_BITS 0x00021008

#define GLFW_ACCUM_RED_BITS 0x00021007

#define GLFW_ALPHA_BITS 0x00021004

#define GLFW_ANY_RELEASE_BEHAVIOR 0

#define GLFW_AUTO_ICONIFY 0x00020006

#define GLFW_AUX_BUFFERS 0x0002100B

#define GLFW_BLUE_BITS 0x00021003

#define GLFW_CLIENT_API 0x00022001

#define GLFW_CONNECTED 0x00040001

#define GLFW_CONTEXT_CREATION_API 0x0002200B

#define GLFW_CONTEXT_NO_ERROR 0x0002200A

#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009

#define GLFW_CONTEXT_REVISION 0x00022004

#define GLFW_CONTEXT_ROBUSTNESS 0x00022005

#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002

#define GLFW_CONTEXT_VERSION_MINOR 0x00022003

#define GLFW_CURSOR 0x00033001

#define GLFW_CURSOR_DISABLED 0x00034003

#define GLFW_CURSOR_HIDDEN 0x00034002

#define GLFW_CURSOR_NORMAL 0x00034001

#define GLFW_DECORATED 0x00020005

#define GLFW_DEPTH_BITS 0x00021005

#define GLFW_DISCONNECTED 0x00040002

#define GLFW_DONT_CARE -1

#define GLFW_DOUBLEBUFFER 0x00021010

#define GLFW_EGL_CONTEXT_API 0x00036002

#define GLFW_FALSE 0

Zero. Seriously. You don't need to use this symbol in your code. It's just just semantic sugar for the number 0. You can use `0` or `false` or `_False` or `GL_FALSE` or whatever you want.

#define GLFW_FLOATING 0x00020007

#define GLFW_FOCUSED 0x00020001

#define GLFW_GREEN_BITS 0x00021002

#define GLFW_ICONIFIED 0x00020002

#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002

#define GLFW_MAXIMIZED 0x00020008

#define GLFW_NATIVE_CONTEXT_API 0x00036001

#define GLFW_NO_API 0

#define GLFW_NO_RESET_NOTIFICATION 0x00031001

#define GLFW_NO_ROBUSTNESS 0

#define GLFW_OPENGL_ANY_PROFILE 0

#define GLFW_OPENGL_API 0x00030001

#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002

#define GLFW_OPENGL_CORE_PROFILE 0x00032001

#define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007

#define GLFW_OPENGL_ES_API 0x00030002

#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006

#define GLFW_OPENGL_PROFILE 0x00022008

#define GLFW_RED_BITS 0x00021001

#define GLFW_REFRESH_RATE 0x0002100F

#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001

#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002

#define GLFW_RESIZABLE 0x00020003

#define GLFW_SAMPLES 0x0002100D

#define GLFW_SRGB_CAPABLE 0x0002100E

#define GLFW_STENCIL_BITS 0x00021006

#define GLFW_STEREO 0x0002100C

#define GLFW_STICKY_KEYS 0x00033002

#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003

#define GLFW_TRUE 1

One. Seriously. You don't need to use this symbol in your code. It's just semantic sugar for the number 1. You can use `1` or `true` or `_True` or `GL_TRUE` or whatever you want.

#define GLFW_VISIBLE 0x00020004

## Typedef Documentation

typedef struct GLFWcursor GLFWcursor

Opaque cursor object.

See also
  Cursor objects

Since
  Added in version 3.1.

typedef struct GLFWimage GLFWimage

See also
  Custom cursor creation
  Window icon

Since
  Added in version 2.1.

  GLFW 3: Removed format and bytes-per-pixel members.