|
@@ -1149,11 +1149,12 @@ extern "C" {
|
|
|
#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 0x00033001
|
|
|
+#define GLFW_STICKY_KEYS 0x00033002
|
|
|
+#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
|
|
|
+#define GLFW_LOCK_KEY_MODS 0x00033004
|
|
|
+#define GLFW_RAW_MOUSE_MOTION 0x00033005
|
|
|
+#define GLFW_UNLIMITED_MOUSE_BUTTONS 0x00033006
|
|
|
|
|
|
#define GLFW_CURSOR_NORMAL 0x00034001
|
|
|
#define GLFW_CURSOR_HIDDEN 0x00034002
|
|
@@ -4676,8 +4677,8 @@ GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
|
|
|
*
|
|
|
* This function sets an input mode option for the specified window. The mode
|
|
|
* must be one of @ref GLFW_CURSOR, @ref GLFW_STICKY_KEYS,
|
|
|
- * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS or
|
|
|
- * @ref GLFW_RAW_MOUSE_MOTION.
|
|
|
+ * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS
|
|
|
+ * @ref GLFW_RAW_MOUSE_MOTION, or @ref GLFW_UNLIMITED_MOUSE_BUTTONS.
|
|
|
*
|
|
|
* If the mode is `GLFW_CURSOR`, the value must be one of the following cursor
|
|
|
* modes:
|
|
@@ -4717,6 +4718,11 @@ GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
|
|
|
* attempting to set this will emit @ref GLFW_FEATURE_UNAVAILABLE. Call @ref
|
|
|
* glfwRawMouseMotionSupported to check for support.
|
|
|
*
|
|
|
+ * If the mode is `GLFW_UNLIMITED_MOUSE_BUTTONS`, the value must be either
|
|
|
+ * `GLFW_TRUE` to disable the mouse button limit when calling the mouse button
|
|
|
+ * callback, or `GLFW_FALSE` to limit the mouse buttons sent to the callback
|
|
|
+ * to the mouse button token values up to `GLFW_MOUSE_BUTTON_LAST`.
|
|
|
+ *
|
|
|
* @param[in] window The window whose input mode to set.
|
|
|
* @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS`,
|
|
|
* `GLFW_STICKY_MOUSE_BUTTONS`, `GLFW_LOCK_KEY_MODS` or
|
|
@@ -4911,8 +4917,11 @@ GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
|
|
|
* returns `GLFW_PRESS` the first time you call it for a mouse button that was
|
|
|
* pressed, even if that mouse button has already been released.
|
|
|
*
|
|
|
+ * The @ref GLFW_UNLIMITED_MOUSE_BUTTONS input mode does not effect the
|
|
|
+ * limit on buttons which can be polled with this function.
|
|
|
+ *
|
|
|
* @param[in] window The desired window.
|
|
|
- * @param[in] button The desired [mouse button](@ref buttons).
|
|
|
+ * @param[in] button The desired [mouse button token](@ref buttons).
|
|
|
* @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
|
|
|
*
|
|
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
|
@@ -5288,10 +5297,15 @@ GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmods
|
|
|
* is called when a mouse button is pressed or released.
|
|
|
*
|
|
|
* When a window loses input focus, it will generate synthetic mouse button
|
|
|
- * release events for all pressed mouse buttons. You can tell these events
|
|
|
- * from user-generated events by the fact that the synthetic ones are generated
|
|
|
- * after the focus loss event has been processed, i.e. after the
|
|
|
- * [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
|
|
|
+ * release events for all pressed mouse buttons with associated button tokens.
|
|
|
+ * You can tell these events from user-generated events by the fact that the
|
|
|
+ * synthetic ones are generated after the focus loss event has been processed,
|
|
|
+ * i.e. after the [window focus callback](@ref glfwSetWindowFocusCallback) has
|
|
|
+ * been called.
|
|
|
+ *
|
|
|
+ * The reported `button` value can be higher than `GLFW_MOUSE_BUTTON_LAST` if
|
|
|
+ * the button does not have an associated [button token](@ref buttons) and the
|
|
|
+ * @ref GLFW_UNLIMITED_MOUSE_BUTTONS input mode is set.
|
|
|
*
|
|
|
* @param[in] window The window whose callback to set.
|
|
|
* @param[in] callback The new callback, or `NULL` to remove the currently set
|