@ -203,7 +203,7 @@ extern "C" {
/*************************************************************************
* GLFW version
* GLFW API tokens
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*! @name GLFW version macros
@ -213,38 +213,33 @@ extern "C" {
* This is incremented when the API is changed in non - compatible ways .
* @ ingroup init
*/
# define GLFW_VERSION_MAJOR 3
# define GLFW_VERSION_MAJOR 3
/*! @brief The minor version number of the GLFW library.
*
* This is incremented when features are added to the API but it remains
* backward - compatible .
* @ ingroup init
*/
# define GLFW_VERSION_MINOR 0
# define GLFW_VERSION_MINOR 0
/*! @brief The revision number of the GLFW library.
*
* This is incremented when a bug fix release is made that does not contain any
* API changes .
* @ ingroup init
*/
# define GLFW_VERSION_REVISION 0
# define GLFW_VERSION_REVISION 0
/*! @} */
/*************************************************************************
* Input handling definitions
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*! @name Key and button actions
* @ { */
/*! @brief The key or button was released.
* @ ingroup input
*/
# define GLFW_RELEASE 0
# define GLFW_RELEASE 0
/*! @brief The key or button was pressed.
* @ ingroup input
*/
# define GLFW_PRESS 1
# define GLFW_PRESS 1
/*! @} */
/* Keyboard raw key codes.
@ -269,412 +264,184 @@ extern "C" {
*/
/* Printable keys */
# 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_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 */
/* Function keys */
# 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_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
/* GLFW 2.x key name aliases (deprecated) */
# define GLFW_KEY_ESC GLFW_KEY_ESCAPE
# define GLFW_KEY_DEL GLFW_KEY_DELETE
# define GLFW_KEY_PAGEUP GLFW_KEY_PAGE_UP
# define GLFW_KEY_PAGEDOWN GLFW_KEY_PAGE_DOWN
# define GLFW_KEY_KP_NUM_LOCK GLFW_KEY_NUM_LOCK
# define GLFW_KEY_LCTRL GLFW_KEY_LEFT_CONTROL
# define GLFW_KEY_LSHIFT GLFW_KEY_LEFT_SHIFT
# define GLFW_KEY_LALT GLFW_KEY_LEFT_ALT
# define GLFW_KEY_LSUPER GLFW_KEY_LEFT_SUPER
# define GLFW_KEY_RCTRL GLFW_KEY_RIGHT_CONTROL
# define GLFW_KEY_RSHIFT GLFW_KEY_RIGHT_SHIFT
# define GLFW_KEY_RALT GLFW_KEY_RIGHT_ALT
# define GLFW_KEY_RSUPER GLFW_KEY_RIGHT_SUPER
# define GLFW_KEY_ESC GLFW_KEY_ESCAPE
# define GLFW_KEY_DEL GLFW_KEY_DELETE
# define GLFW_KEY_PAGEUP GLFW_KEY_PAGE_UP
# define GLFW_KEY_PAGEDOWN GLFW_KEY_PAGE_DOWN
# define GLFW_KEY_KP_NUM_LOCK GLFW_KEY_NUM_LOCK
# define GLFW_KEY_LCTRL GLFW_KEY_LEFT_CONTROL
# define GLFW_KEY_LSHIFT GLFW_KEY_LEFT_SHIFT
# define GLFW_KEY_LALT GLFW_KEY_LEFT_ALT
# define GLFW_KEY_LSUPER GLFW_KEY_LEFT_SUPER
# define GLFW_KEY_RCTRL GLFW_KEY_RIGHT_CONTROL
# define GLFW_KEY_RSHIFT GLFW_KEY_RIGHT_SHIFT
# define GLFW_KEY_RALT GLFW_KEY_RIGHT_ALT
# define GLFW_KEY_RSUPER GLFW_KEY_RIGHT_SUPER
/*! @} */
/*! @defgroup buttons Mouse buttons
* @ ingroup input
* @ { */
# 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_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
/*! @} */
/*! @defgroup joysticks Joysticks
* @ ingroup input
* @ { */
# 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
/*! @} */
/*************************************************************************
* Other definitions
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*! @defgroup paramhints Window parameters and hints
* @ ingroup window
* @ { */
/*! @brief @c GL_TRUE if the window has focus, or @c GL_FALSE otherwise.
* @ see glfwGetWindowParam
*/
# define GLFW_FOCUSED 0x00020001
/*! @brief @c GL_TRUE if the window is iconified, or @c GL_FALSE otherwise.
* @ see glfwGetWindowParam
*/
# define GLFW_ICONIFIED 0x00020002
/*! @brief @c GL_TRUE if the window has been requested to close, or @c GL_FALSE
* otherwise .
* @ see glfwGetWindowParam
*/
# define GLFW_SHOULD_CLOSE 0x00020003
/*! @brief The revision number of the context's API version.
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_CONTEXT_REVISION 0x00020004
/*! @brief The bit depth of the red component of the color buffer.
* @ see glfwWindowHint
*/
# define GLFW_RED_BITS 0x00021000
/*! @brief The bit depth of the green component of the color buffer.
* @ see glfwWindowHint
*/
# define GLFW_GREEN_BITS 0x00021001
/*! @brief The bit depth of the blue component of the color buffer.
* @ see glfwWindowHint
*/
# define GLFW_BLUE_BITS 0x00021002
/*! @brief The bit depth of the alpha component of the color buffer.
* @ see glfwWindowHint
*/
# define GLFW_ALPHA_BITS 0x00021003
/*! @brief The bit depth of the depth buffer of the default framebuffer.
* @ see glfwWindowHint
*/
# define GLFW_DEPTH_BITS 0x00021004
/*! @brief The bit depth of the stencil buffer of the default framebuffer.
* @ see glfwWindowHint
*/
# define GLFW_STENCIL_BITS 0x00021005
/*! @brief The bit depth of the red component of the accumulation buffer.
* @ see glfwWindowHint
*/
# define GLFW_ACCUM_RED_BITS 0x00021006
/*! @brief The bit depth of the red component of the accumulation buffer.
* @ see glfwWindowHint
*/
# define GLFW_ACCUM_GREEN_BITS 0x00021007
/*! @brief The bit depth of the red component of the accumulation buffer.
* @ see glfwWindowHint
*/
# define GLFW_ACCUM_BLUE_BITS 0x00021008
/*! @brief The bit depth of the red component of the accumulation buffer.
* @ see glfwWindowHint
*/
# define GLFW_ACCUM_ALPHA_BITS 0x00021009
/*! @brief The number of auxiliary buffers.
* @ see glfwWindowHint
*/
# define GLFW_AUX_BUFFERS 0x0002100A
/*! @brief @c GL_TRUE for stereo rendering, or @c GL_FALSE otherwise.
* @ see glfwWindowHint
*/
# define GLFW_STEREO 0x0002100B
/*! @brief The number of samples used for default framebuffer multisampling, or
* zero to disable multisampling .
* @ see glfwWindowHint
*/
# define GLFW_SAMPLES 0x0002100C
/*! @brief @c GL_TRUE if the framebuffer should be sRGB capable, or @c GL_FALSE
* otherwise .
* @ see glfwWindowHint
*/
# define GLFW_SRGB_CAPABLE 0x0002100D
/*! @brief The client API used for the window's context; one of
* @ ref One of GLFW_OPENGL_API or @ ref GLFW_OPENGL_ES_API .
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_CLIENT_API 0x00022000
/*! @brief The major number of the context's API version.
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_CONTEXT_VERSION_MAJOR 0x00022001
/*! @brief The minor number of the context's API version.
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_CONTEXT_VERSION_MINOR 0x00022002
/*! @see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_CONTEXT_ROBUSTNESS 0x00022003
/*! @see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_OPENGL_FORWARD_COMPAT 0x00022004
/*! @see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_OPENGL_DEBUG_CONTEXT 0x00022005
/*! @see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_OPENGL_PROFILE 0x00022006
/*! @brief @c GL_TRUE if the window is resizable, or @c GL_FALSE otherwise.
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_RESIZABLE 0x00022007
/*! @brief @c GL_TRUE if the window is visible, or @c GL_FALSE otherwise.
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_VISIBLE 0x00022008
/*! @brief The x-coordinate, in pixels, of the upper-left corner of the
* client area of the window .
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_POSITION_X 0x00022009
/*! @brief The y-coordinate, in pixels, of the upper-left corner of the
* client area of the window .
* @ see glfwWindowHint glfwGetWindowParam
*/
# define GLFW_POSITION_Y 0x0002200A
/*! @} */
/*! @name Client APIs
* @ { */
/*! @brief The OpenGL API.
* @ ingroup context
*/
# define GLFW_OPENGL_API 0x00000001
/*! @brief The OpenGL ES API.
* @ ingroup context
*/
# define GLFW_OPENGL_ES_API 0x00000002
/*! @} */
/*! @name Context robustness strategies
* @ { */
/*! @brief No robustness strategy is used.
*
* This is the default .
* @ ingroup context
*/
# define GLFW_NO_ROBUSTNESS 0x00000000
/*! @brief
* @ ingroup context
*/
# define GLFW_NO_RESET_NOTIFICATION 0x00000001
/*! @brief
* @ ingroup context
*/
# define GLFW_LOSE_CONTEXT_ON_RESET 0x00000002
/*! @} */
/*! @name OpenGL profiles
* @ { */
/*! @brief No OpenGL profile.
* @ ingroup context
*/
# define GLFW_OPENGL_NO_PROFILE 0x00000000
/*! @brief The OpenGL core profile.
* @ ingroup context
*/
# define GLFW_OPENGL_CORE_PROFILE 0x00000001
/*! @brief The OpenGL compatibility profile.
* @ ingroup context
*/
# define GLFW_OPENGL_COMPAT_PROFILE 0x00000002
/*! @} */
/*! @name Input modes
* @ { */
/*! @brief The behaviour of the cursor.
* @ ingroup input
*/
# define GLFW_CURSOR_MODE 0x00030001
/*! @brief Whether the @ref glfwGetKey function uses sticky state.
* @ ingroup input
*/
# define GLFW_STICKY_KEYS 0x00030002
/*! @brief Whether the @ref glfwGetMouseButton function uses sticky state.
* @ ingroup input
*/
# define GLFW_STICKY_MOUSE_BUTTONS 0x00030003
/*! @} */
/*! @name Cursor modes
* @ { */
/*! @brief The cursor is visible and behaves normally.
* @ ingroup input
*/
# define GLFW_CURSOR_NORMAL 0x00040001
/*! @brief The cursor is hidden when over the client area of the window.
* @ ingroup input
*/
# define GLFW_CURSOR_HIDDEN 0x00040002
/*! @brief The cursor is disabled and cursor movement is unbounded.
* @ ingroup input
*/
# define GLFW_CURSOR_CAPTURED 0x00040003
/*! @} */
/*! @name Joystick parameters
* @ { */
/*! @brief @c GL_TRUE if the joystick is present, or @c GL_FALSE otherwise.
* @ ingroup input
*/
# define GLFW_PRESENT 0x00050001
/*! @brief The number of axes on the specified joystick, or zero if the joystick
* is not present .
* @ ingroup input
*/
# define GLFW_AXES 0x00050002
/*! @brief The number of buttons on the specified joystick, or zero if the
* joystick is not present .
* @ ingroup input
*/
# define GLFW_BUTTONS 0x00050003
# 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
/*! @} */
/*! @defgroup errors Error codes
@ -682,80 +449,107 @@ extern "C" {
* @ { */
/*! @brief No error has occurred.
*/
# define GLFW_NO_ERROR 0
# define GLFW_NO_ERROR 0
/*! @brief GLFW has not been initialized.
*/
# define GLFW_NOT_INITIALIZED 0x00070001
# define GLFW_NOT_INITIALIZED 0x00070001
/*! @brief No context is current for this thread.
*/
# define GLFW_NO_CURRENT_CONTEXT 0x00070002
# define GLFW_NO_CURRENT_CONTEXT 0x00070002
/*! @brief One of the enum parameters for the function was given an invalid
* enum .
*/
# define GLFW_INVALID_ENUM 0x00070003
# define GLFW_INVALID_ENUM 0x00070003
/*! @brief One of the parameters for the function was given an invalid value.
*/
# define GLFW_INVALID_VALUE 0x00070004
# define GLFW_INVALID_VALUE 0x00070004
/*! @brief A memory allocation failed.
*/
# define GLFW_OUT_OF_MEMORY 0x00070005
# define GLFW_OUT_OF_MEMORY 0x00070005
/*! @brief GLFW could not find support for the requested client API on the
* system .
*/
# define GLFW_API_UNAVAILABLE 0x00070006
# define GLFW_API_UNAVAILABLE 0x00070006
/*! @brief The requested client API version is not available.
*/
# define GLFW_VERSION_UNAVAILABLE 0x00070007
# define GLFW_VERSION_UNAVAILABLE 0x00070007
/*! @brief A platform-specific error occurred that does not match any of the
* more specific categories .
*/
# define GLFW_PLATFORM_ERROR 0x00070008
# define GLFW_PLATFORM_ERROR 0x00070008
/*! @brief The clipboard did not contain data in the requested format.
*/
# define GLFW_FORMAT_UNAVAILABLE 0x00070009
# define GLFW_FORMAT_UNAVAILABLE 0x00070009
/*! @} */
/*! @brief The number of entries in the gamma ramp.
* @ ingroup gamma
*/
# define GLFW_GAMMA_RAMP_SIZE 256
# define GLFW_FOCUSED 0x00020001
# define GLFW_ICONIFIED 0x00020002
# define GLFW_SHOULD_CLOSE 0x00020003
# define GLFW_RESIZABLE 0x00022007
# define GLFW_VISIBLE 0x00022008
# define GLFW_POSITION_X 0x00022009
# define GLFW_POSITION_Y 0x0002200A
# define GLFW_CONTEXT_REVISION 0x00020004
# define GLFW_RED_BITS 0x00021000
# define GLFW_GREEN_BITS 0x00021001
# define GLFW_BLUE_BITS 0x00021002
# define GLFW_ALPHA_BITS 0x00021003
# define GLFW_DEPTH_BITS 0x00021004
# define GLFW_STENCIL_BITS 0x00021005
# define GLFW_ACCUM_RED_BITS 0x00021006
# define GLFW_ACCUM_GREEN_BITS 0x00021007
# define GLFW_ACCUM_BLUE_BITS 0x00021008
# define GLFW_ACCUM_ALPHA_BITS 0x00021009
# define GLFW_AUX_BUFFERS 0x0002100A
# define GLFW_STEREO 0x0002100B
# define GLFW_SAMPLES 0x0002100C
# define GLFW_SRGB_CAPABLE 0x0002100D
# define GLFW_CLIENT_API 0x00022000
# define GLFW_CONTEXT_VERSION_MAJOR 0x00022001
# define GLFW_CONTEXT_VERSION_MINOR 0x00022002
# define GLFW_CONTEXT_ROBUSTNESS 0x00022003
# define GLFW_OPENGL_FORWARD_COMPAT 0x00022004
# define GLFW_OPENGL_DEBUG_CONTEXT 0x00022005
# define GLFW_OPENGL_PROFILE 0x00022006
# define GLFW_OPENGL_API 0x00000001
# define GLFW_OPENGL_ES_API 0x00000002
# define GLFW_NO_ROBUSTNESS 0x00000000
# define GLFW_NO_RESET_NOTIFICATION 0x00000001
# define GLFW_LOSE_CONTEXT_ON_RESET 0x00000002
# define GLFW_OPENGL_NO_PROFILE 0x00000000
# define GLFW_OPENGL_CORE_PROFILE 0x00000001
# define GLFW_OPENGL_COMPAT_PROFILE 0x00000002
# define GLFW_CURSOR_MODE 0x00030001
# define GLFW_STICKY_KEYS 0x00030002
# define GLFW_STICKY_MOUSE_BUTTONS 0x00030003
# define GLFW_CURSOR_NORMAL 0x00040001
# define GLFW_CURSOR_HIDDEN 0x00040002
# define GLFW_CURSOR_CAPTURED 0x00040003
# define GLFW_PRESENT 0x00050001
# define GLFW_AXES 0x00050002
# define GLFW_BUTTONS 0x00050003
# define GLFW_GAMMA_RAMP_SIZE 256
# define GLFW_MONITOR_WIDTH_MM 0x00060001
# define GLFW_MONITOR_HEIGHT_MM 0x00060002
# define GLFW_MONITOR_POS_X 0x00060003
# define GLFW_MONITOR_POS_Y 0x00060004
# define GLFW_CONNECTED 0x00061000
# define GLFW_DISCONNECTED 0x00061001
/*! @name Monitor parameters
* @ { */
/*! @brief The physical width, in mm, of the monitor.
* @ ingroup monitor
*/
# define GLFW_MONITOR_WIDTH_MM 0x00060001
/*! @brief The physical height, in mm, of the monitor.
* @ ingroup monitor
*/
# define GLFW_MONITOR_HEIGHT_MM 0x00060002
/*! @brief The x-coordinate of the upper-left corner of the monitor on the
* virtual desktop .
* @ ingroup monitor
*/
# define GLFW_MONITOR_POS_X 0x00060003
/*! @brief The y-coordinate of the upper-left corner of the monitor on the
* virtual desktop .
* @ ingroup monitor
*/
# define GLFW_MONITOR_POS_Y 0x00060004
/* @} */
/*! @name Monitor events
* @ { */
/*! @brief The monitor was connected.
* @ ingroup monitor
*/
# define GLFW_CONNECTED 0x00061000
/*! @brief The monitor was disconnected.
* @ ingroup monitor
*/
# define GLFW_DISCONNECTED 0x00061001
/* @} */
/*************************************************************************
* Typedefs
* GLFW API types
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*! @brief Client API function pointer type.
@ -907,7 +701,7 @@ typedef struct
/*************************************************************************
* Prototype s
* GLFW API function s
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*! @brief Initializes the GLFW library.