diff --git a/include/GL/glfw3.h b/include/GL/glfw3.h index c75a57a1..c76077f8 100644 --- a/include/GL/glfw3.h +++ b/include/GL/glfw3.h @@ -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 -/*! @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 -/* @} */ +#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 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 /************************************************************************* - * Prototypes + * GLFW API functions *************************************************************************/ /*! @brief Initializes the GLFW library.