From 8b3c18de545eb63b7dc2d08621ba83a215a07463 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 5 Nov 2023 20:11:14 +0100 Subject: [PATCH] Updated GLFW for 64bit --- examples/others/external/include/GLFW/glfw3.h | 1064 +++++++++++------ .../external/include/GLFW/glfw3native.h | 226 ++-- examples/others/external/lib/libglfw3.a | Bin 269591 -> 290550 bytes 3 files changed, 860 insertions(+), 430 deletions(-) diff --git a/examples/others/external/include/GLFW/glfw3.h b/examples/others/external/include/GLFW/glfw3.h index 990fe3f7f..31b201ae5 100644 --- a/examples/others/external/include/GLFW/glfw3.h +++ b/examples/others/external/include/GLFW/glfw3.h @@ -3,7 +3,7 @@ * A library for OpenGL, window and input *------------------------------------------------------------------------ * Copyright (c) 2002-2006 Marcus Geelnard - * Copyright (c) 2006-2016 Camilla Löwy + * Copyright (c) 2006-2019 Camilla Löwy * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages @@ -52,7 +52,7 @@ extern "C" { * This is the reference documentation for OpenGL and OpenGL ES context related * functions. For more task-oriented information, see the @ref context_guide. */ -/*! @defgroup vulkan Vulkan reference +/*! @defgroup vulkan Vulkan support reference * @brief Functions and types related to Vulkan. * * This is the reference documentation for Vulkan related functions and types. @@ -96,11 +96,30 @@ extern "C" { #define _WIN32 #endif /* _WIN32 */ +/* Include because most Windows GLU headers need wchar_t and + * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h. + * Include it unconditionally to avoid surprising side-effects. + */ +#include + +/* Include because it is needed by Vulkan and related functions. + * Include it unconditionally to avoid surprising side-effects. + */ +#include + +#if defined(GLFW_INCLUDE_VULKAN) + #include +#endif /* Vulkan header */ + +/* The Vulkan header may have indirectly included windows.h (because of + * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it. + */ + /* It is customary to use APIENTRY for OpenGL function pointer declarations on * all platforms. Additionally, the Windows OpenGL header needs APIENTRY. */ -#ifndef APIENTRY - #ifdef _WIN32 +#if !defined(APIENTRY) + #if defined(_WIN32) #define APIENTRY __stdcall #else #define APIENTRY @@ -122,17 +141,6 @@ extern "C" { #define GLFW_CALLBACK_DEFINED #endif /* CALLBACK */ -/* Include because most Windows GLU headers need wchar_t and - * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h. - * Include it unconditionally to avoid surprising side-effects. - */ -#include - -/* Include because it is needed by Vulkan and related functions. - * Include it unconditionally to avoid surprising side-effects. - */ -#include - /* Include the chosen OpenGL or OpenGL ES headers. */ #if defined(GLFW_INCLUDE_ES1) @@ -182,10 +190,44 @@ extern "C" { #else /*__APPLE__*/ #include + #if defined(GLFW_INCLUDE_GLEXT) + #include + #endif #endif /*__APPLE__*/ -#elif !defined(GLFW_INCLUDE_NONE) +#elif defined(GLFW_INCLUDE_GLU) + + #if defined(__APPLE__) + + #if defined(GLFW_INCLUDE_GLU) + #include + #endif + + #else /*__APPLE__*/ + + #if defined(GLFW_INCLUDE_GLU) + #include + #endif + + #endif /*__APPLE__*/ + +#elif !defined(GLFW_INCLUDE_NONE) && \ + !defined(__gl_h_) && \ + !defined(__gles1_gl_h_) && \ + !defined(__gles2_gl2_h_) && \ + !defined(__gles2_gl3_h_) && \ + !defined(__gles2_gl31_h_) && \ + !defined(__gles2_gl32_h_) && \ + !defined(__gl_glcorearb_h_) && \ + !defined(__gl2_h_) /*legacy*/ && \ + !defined(__gl3_h_) /*legacy*/ && \ + !defined(__gl31_h_) /*legacy*/ && \ + !defined(__gl32_h_) /*legacy*/ && \ + !defined(__glcorearb_h_) /*legacy*/ && \ + !defined(__GL_H__) /*non-standard*/ && \ + !defined(__gltypes_h_) /*non-standard*/ && \ + !defined(__glee_h_) /*non-standard*/ #if defined(__APPLE__) @@ -193,9 +235,6 @@ extern "C" { #define GL_GLEXT_LEGACY #endif #include - #if defined(GLFW_INCLUDE_GLU) - #include - #endif #else /*__APPLE__*/ @@ -203,18 +242,11 @@ extern "C" { #if defined(GLFW_INCLUDE_GLEXT) #include #endif - #if defined(GLFW_INCLUDE_GLU) - #include - #endif #endif /*__APPLE__*/ #endif /* OpenGL and OpenGL ES headers */ -#if defined(GLFW_INCLUDE_VULKAN) - #include -#endif /* Vulkan header */ - #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL) /* GLFW_DLL must be defined by applications that are linking against the DLL * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW @@ -230,13 +262,12 @@ extern "C" { /* We are building GLFW as a Win32 DLL */ #define GLFWAPI __declspec(dllexport) #elif defined(_WIN32) && defined(GLFW_DLL) - /* We are calling GLFW as a Win32 DLL */ + /* We are calling a GLFW Win32 DLL */ #define GLFWAPI __declspec(dllimport) #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL) - /* We are building GLFW as a shared / dynamic library */ + /* We are building GLFW as a Unix shared library */ #define GLFWAPI __attribute__((visibility("default"))) #else - /* We are building or calling GLFW as a static library */ #define GLFWAPI #endif @@ -247,45 +278,47 @@ extern "C" { /*! @name GLFW version macros * @{ */ -/*! @brief The major version number of the GLFW library. +/*! @brief The major version number of the GLFW header. * - * This is incremented when the API is changed in non-compatible ways. + * The major version number of the GLFW header. This is incremented when the + * API is changed in non-compatible ways. * @ingroup init */ #define GLFW_VERSION_MAJOR 3 -/*! @brief The minor version number of the GLFW library. +/*! @brief The minor version number of the GLFW header. * - * This is incremented when features are added to the API but it remains - * backward-compatible. + * The minor version number of the GLFW header. This is incremented when + * features are added to the API but it remains backward-compatible. * @ingroup init */ #define GLFW_VERSION_MINOR 3 -/*! @brief The revision number of the GLFW library. +/*! @brief The revision number of the GLFW header. * - * This is incremented when a bug fix release is made that does not contain any - * API changes. + * The revision number of the GLFW header. 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 8 /*! @} */ -/*! @name Boolean values - * @{ */ /*! @brief One. * - * One. Seriously. You don't _need_ to use this symbol in your code. It's - * semantic sugar for the number 1. You can also use `1` or `true` or `_True` - * or `GL_TRUE` or whatever you want. + * This is only semantic sugar for the number 1. You can instead use `1` or + * `true` or `_True` or `GL_TRUE` or `VK_TRUE` or anything else that is equal + * to one. + * + * @ingroup init */ #define GLFW_TRUE 1 /*! @brief Zero. * - * Zero. Seriously. You don't _need_ to use this symbol in your code. It's - * semantic sugar for the number 0. You can also use `0` or `false` or - * `_False` or `GL_FALSE` or whatever you want. + * This is only semantic sugar for the number 0. You can instead use `0` or + * `false` or `_False` or `GL_FALSE` or `VK_FALSE` or anything else that is + * equal to zero. + * + * @ingroup init */ #define GLFW_FALSE 0 -/*! @} */ /*! @name Key and button actions * @{ */ @@ -313,6 +346,7 @@ extern "C" { /*! @} */ /*! @defgroup hat_state Joystick hat states + * @brief Joystick hat states. * * See [joystick hat input](@ref joystick_hat) for how these are used. * @@ -915,70 +949,87 @@ extern "C" { #define GLFW_CLIENT_API 0x00022001 /*! @brief Context client API major version hint and attribute. * - * Context client API major version [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Context client API major version [hint](@ref GLFW_CONTEXT_VERSION_MAJOR_hint) + * and [attribute](@ref GLFW_CONTEXT_VERSION_MAJOR_attrib). */ #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002 /*! @brief Context client API minor version hint and attribute. * - * Context client API minor version [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Context client API minor version [hint](@ref GLFW_CONTEXT_VERSION_MINOR_hint) + * and [attribute](@ref GLFW_CONTEXT_VERSION_MINOR_attrib). */ #define GLFW_CONTEXT_VERSION_MINOR 0x00022003 -/*! @brief Context client API revision number hint and attribute. +/*! @brief Context client API revision number attribute. * - * Context client API revision number [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Context client API revision number + * [attribute](@ref GLFW_CONTEXT_REVISION_attrib). */ #define GLFW_CONTEXT_REVISION 0x00022004 /*! @brief Context robustness hint and attribute. * - * Context client API revision number [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Context client API revision number [hint](@ref GLFW_CONTEXT_ROBUSTNESS_hint) + * and [attribute](@ref GLFW_CONTEXT_ROBUSTNESS_attrib). */ #define GLFW_CONTEXT_ROBUSTNESS 0x00022005 /*! @brief OpenGL forward-compatibility hint and attribute. * - * OpenGL forward-compatibility [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * OpenGL forward-compatibility [hint](@ref GLFW_OPENGL_FORWARD_COMPAT_hint) + * and [attribute](@ref GLFW_OPENGL_FORWARD_COMPAT_attrib). */ #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006 -/*! @brief OpenGL debug context hint and attribute. +/*! @brief Debug mode context hint and attribute. * - * OpenGL debug context [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Debug mode context [hint](@ref GLFW_OPENGL_DEBUG_CONTEXT_hint) and + * [attribute](@ref GLFW_OPENGL_DEBUG_CONTEXT_attrib). */ #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007 /*! @brief OpenGL profile hint and attribute. * - * OpenGL profile [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * OpenGL profile [hint](@ref GLFW_OPENGL_PROFILE_hint) and + * [attribute](@ref GLFW_OPENGL_PROFILE_attrib). */ #define GLFW_OPENGL_PROFILE 0x00022008 /*! @brief Context flush-on-release hint and attribute. * - * Context flush-on-release [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Context flush-on-release [hint](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_hint) and + * [attribute](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_attrib). */ #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009 /*! @brief Context error suppression hint and attribute. * - * Context error suppression [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Context error suppression [hint](@ref GLFW_CONTEXT_NO_ERROR_hint) and + * [attribute](@ref GLFW_CONTEXT_NO_ERROR_attrib). */ #define GLFW_CONTEXT_NO_ERROR 0x0002200A /*! @brief Context creation API hint and attribute. * - * Context creation API [hint](@ref GLFW_CLIENT_API_hint) and - * [attribute](@ref GLFW_CLIENT_API_attrib). + * Context creation API [hint](@ref GLFW_CONTEXT_CREATION_API_hint) and + * [attribute](@ref GLFW_CONTEXT_CREATION_API_attrib). */ #define GLFW_CONTEXT_CREATION_API 0x0002200B - +/*! @brief Window content area scaling window + * [window hint](@ref GLFW_SCALE_TO_MONITOR). + */ +#define GLFW_SCALE_TO_MONITOR 0x0002200C +/*! @brief macOS specific + * [window hint](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint). + */ #define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001 +/*! @brief macOS specific + * [window hint](@ref GLFW_COCOA_FRAME_NAME_hint). + */ #define GLFW_COCOA_FRAME_NAME 0x00023002 +/*! @brief macOS specific + * [window hint](@ref GLFW_COCOA_GRAPHICS_SWITCHING_hint). + */ #define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003 - +/*! @brief X11 specific + * [window hint](@ref GLFW_X11_CLASS_NAME_hint). + */ #define GLFW_X11_CLASS_NAME 0x00024001 +/*! @brief X11 specific + * [window hint](@ref GLFW_X11_CLASS_NAME_hint). + */ #define GLFW_X11_INSTANCE_NAME 0x00024002 /*! @} */ @@ -998,6 +1049,7 @@ extern "C" { #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 @@ -1056,9 +1108,20 @@ extern "C" { /*! @addtogroup init * @{ */ +/*! @brief Joystick hat buttons init hint. + * + * Joystick hat buttons [init hint](@ref GLFW_JOYSTICK_HAT_BUTTONS). + */ #define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001 - +/*! @brief macOS specific init hint. + * + * macOS specific [init hint](@ref GLFW_COCOA_CHDIR_RESOURCES_hint). + */ #define GLFW_COCOA_CHDIR_RESOURCES 0x00051001 +/*! @brief macOS specific init hint. + * + * macOS specific [init hint](@ref GLFW_COCOA_MENUBAR_hint). + */ #define GLFW_COCOA_MENUBAR 0x00051002 /*! @} */ @@ -1129,17 +1192,25 @@ typedef struct GLFWwindow GLFWwindow; * * @since Added in version 3.1. * - * @ingroup cursor + * @ingroup input */ typedef struct GLFWcursor GLFWcursor; -/*! @brief The function signature for error callbacks. +/*! @brief The function pointer type for error callbacks. * - * This is the function signature for error callback functions. + * This is the function pointer type for error callbacks. An error callback + * function has the following signature: + * @code + * void callback_name(int error_code, const char* description) + * @endcode * - * @param[in] error An [error code](@ref errors). + * @param[in] error_code An [error code](@ref errors). Future releases may add + * more error codes. * @param[in] description A UTF-8 encoded string describing the error. * + * @pointer_lifetime The error description string is valid until the callback + * function returns. + * * @sa @ref error_handling * @sa @ref glfwSetErrorCallback * @@ -1147,17 +1218,21 @@ typedef struct GLFWcursor GLFWcursor; * * @ingroup init */ -typedef void (* GLFWerrorfun)(int,const char*); +typedef void (* GLFWerrorfun)(int error_code, const char* description); -/*! @brief The function signature for window position callbacks. +/*! @brief The function pointer type for window position callbacks. * - * This is the function signature for window position callback functions. + * This is the function pointer type for window position callbacks. A window + * position callback function has the following signature: + * @code + * void callback_name(GLFWwindow* window, int xpos, int ypos) + * @endcode * * @param[in] window The window that was moved. * @param[in] xpos The new x-coordinate, in screen coordinates, of the - * upper-left corner of the client area of the window. + * upper-left corner of the content area of the window. * @param[in] ypos The new y-coordinate, in screen coordinates, of the - * upper-left corner of the client area of the window. + * upper-left corner of the content area of the window. * * @sa @ref window_pos * @sa @ref glfwSetWindowPosCallback @@ -1166,11 +1241,15 @@ typedef void (* GLFWerrorfun)(int,const char*); * * @ingroup window */ -typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int); +typedef void (* GLFWwindowposfun)(GLFWwindow* window, int xpos, int ypos); -/*! @brief The function signature for window resize callbacks. +/*! @brief The function pointer type for window size callbacks. * - * This is the function signature for window size callback functions. + * This is the function pointer type for window size callbacks. A window size + * callback function has the following signature: + * @code + * void callback_name(GLFWwindow* window, int width, int height) + * @endcode * * @param[in] window The window that was resized. * @param[in] width The new width, in screen coordinates, of the window. @@ -1184,11 +1263,15 @@ typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int); * * @ingroup window */ -typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int); +typedef void (* GLFWwindowsizefun)(GLFWwindow* window, int width, int height); -/*! @brief The function signature for window close callbacks. +/*! @brief The function pointer type for window close callbacks. * - * This is the function signature for window close callback functions. + * This is the function pointer type for window close callbacks. A window + * close callback function has the following signature: + * @code + * void function_name(GLFWwindow* window) + * @endcode * * @param[in] window The window that the user attempted to close. * @@ -1200,11 +1283,15 @@ typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int); * * @ingroup window */ -typedef void (* GLFWwindowclosefun)(GLFWwindow*); +typedef void (* GLFWwindowclosefun)(GLFWwindow* window); -/*! @brief The function signature for window content refresh callbacks. +/*! @brief The function pointer type for window content refresh callbacks. * - * This is the function signature for window refresh callback functions. + * This is the function pointer type for window content refresh callbacks. + * A window content refresh callback function has the following signature: + * @code + * void function_name(GLFWwindow* window); + * @endcode * * @param[in] window The window whose content needs to be refreshed. * @@ -1216,11 +1303,15 @@ typedef void (* GLFWwindowclosefun)(GLFWwindow*); * * @ingroup window */ -typedef void (* GLFWwindowrefreshfun)(GLFWwindow*); +typedef void (* GLFWwindowrefreshfun)(GLFWwindow* window); -/*! @brief The function signature for window focus/defocus callbacks. +/*! @brief The function pointer type for window focus callbacks. * - * This is the function signature for window focus callback functions. + * This is the function pointer type for window focus callbacks. A window + * focus callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int focused) + * @endcode * * @param[in] window The window that gained or lost input focus. * @param[in] focused `GLFW_TRUE` if the window was given input focus, or @@ -1233,12 +1324,15 @@ typedef void (* GLFWwindowrefreshfun)(GLFWwindow*); * * @ingroup window */ -typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int); +typedef void (* GLFWwindowfocusfun)(GLFWwindow* window, int focused); -/*! @brief The function signature for window iconify/restore callbacks. +/*! @brief The function pointer type for window iconify callbacks. * - * This is the function signature for window iconify/restore callback - * functions. + * This is the function pointer type for window iconify callbacks. A window + * iconify callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int iconified) + * @endcode * * @param[in] window The window that was iconified or restored. * @param[in] iconified `GLFW_TRUE` if the window was iconified, or @@ -1251,15 +1345,18 @@ typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int); * * @ingroup window */ -typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int); +typedef void (* GLFWwindowiconifyfun)(GLFWwindow* window, int iconified); -/*! @brief The function signature for window maximize/restore callbacks. +/*! @brief The function pointer type for window maximize callbacks. * - * This is the function signature for window maximize/restore callback - * functions. + * This is the function pointer type for window maximize callbacks. A window + * maximize callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int maximized) + * @endcode * * @param[in] window The window that was maximized or restored. - * @param[in] iconified `GLFW_TRUE` if the window was maximized, or + * @param[in] maximized `GLFW_TRUE` if the window was maximized, or * `GLFW_FALSE` if it was restored. * * @sa @ref window_maximize @@ -1269,12 +1366,15 @@ typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int); * * @ingroup window */ -typedef void (* GLFWwindowmaximizefun)(GLFWwindow*,int); +typedef void (* GLFWwindowmaximizefun)(GLFWwindow* window, int maximized); -/*! @brief The function signature for framebuffer resize callbacks. +/*! @brief The function pointer type for framebuffer size callbacks. * - * This is the function signature for framebuffer resize callback - * functions. + * This is the function pointer type for framebuffer size callbacks. + * A framebuffer size callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int width, int height) + * @endcode * * @param[in] window The window whose framebuffer was resized. * @param[in] width The new width, in pixels, of the framebuffer. @@ -1287,12 +1387,15 @@ typedef void (* GLFWwindowmaximizefun)(GLFWwindow*,int); * * @ingroup window */ -typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int); +typedef void (* GLFWframebuffersizefun)(GLFWwindow* window, int width, int height); -/*! @brief The function signature for window content scale callbacks. +/*! @brief The function pointer type for window content scale callbacks. * - * This is the function signature for window content scale callback - * functions. + * This is the function pointer type for window content scale callbacks. + * A window content scale callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, float xscale, float yscale) + * @endcode * * @param[in] window The window whose content scale changed. * @param[in] xscale The new x-axis content scale of the window. @@ -1305,16 +1408,21 @@ typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int); * * @ingroup window */ -typedef void (* GLFWwindowcontentscalefun)(GLFWwindow*,float,float); +typedef void (* GLFWwindowcontentscalefun)(GLFWwindow* window, float xscale, float yscale); -/*! @brief The function signature for mouse button callbacks. +/*! @brief The function pointer type for mouse button callbacks. * - * This is the function signature for mouse button callback functions. + * This is the function pointer type for mouse button callback functions. + * A mouse button callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int button, int action, int mods) + * @endcode * * @param[in] window The window that received the event. * @param[in] button The [mouse button](@ref buttons) that was pressed or * released. - * @param[in] action One of `GLFW_PRESS` or `GLFW_RELEASE`. + * @param[in] action One of `GLFW_PRESS` or `GLFW_RELEASE`. Future releases + * may add more actions. * @param[in] mods Bit field describing which [modifier keys](@ref mods) were * held down. * @@ -1326,17 +1434,21 @@ typedef void (* GLFWwindowcontentscalefun)(GLFWwindow*,float,float); * * @ingroup input */ -typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int); +typedef void (* GLFWmousebuttonfun)(GLFWwindow* window, int button, int action, int mods); -/*! @brief The function signature for cursor position callbacks. +/*! @brief The function pointer type for cursor position callbacks. * - * This is the function signature for cursor position callback functions. + * This is the function pointer type for cursor position callbacks. A cursor + * position callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, double xpos, double ypos); + * @endcode * * @param[in] window The window that received the event. * @param[in] xpos The new cursor x-coordinate, relative to the left edge of - * the client area. + * the content area. * @param[in] ypos The new cursor y-coordinate, relative to the top edge of the - * client area. + * content area. * * @sa @ref cursor_pos * @sa @ref glfwSetCursorPosCallback @@ -1345,14 +1457,18 @@ typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int); * * @ingroup input */ -typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double); +typedef void (* GLFWcursorposfun)(GLFWwindow* window, double xpos, double ypos); -/*! @brief The function signature for cursor enter/leave callbacks. +/*! @brief The function pointer type for cursor enter/leave callbacks. * - * This is the function signature for cursor enter/leave callback functions. + * This is the function pointer type for cursor enter/leave callbacks. + * A cursor enter/leave callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int entered) + * @endcode * * @param[in] window The window that received the event. - * @param[in] entered `GLFW_TRUE` if the cursor entered the window's client + * @param[in] entered `GLFW_TRUE` if the cursor entered the window's content * area, or `GLFW_FALSE` if it left it. * * @sa @ref cursor_enter @@ -1362,11 +1478,15 @@ typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double); * * @ingroup input */ -typedef void (* GLFWcursorenterfun)(GLFWwindow*,int); +typedef void (* GLFWcursorenterfun)(GLFWwindow* window, int entered); -/*! @brief The function signature for scroll callbacks. +/*! @brief The function pointer type for scroll callbacks. * - * This is the function signature for scroll callback functions. + * This is the function pointer type for scroll callbacks. A scroll callback + * function has the following signature: + * @code + * void function_name(GLFWwindow* window, double xoffset, double yoffset) + * @endcode * * @param[in] window The window that received the event. * @param[in] xoffset The scroll offset along the x-axis. @@ -1379,16 +1499,21 @@ typedef void (* GLFWcursorenterfun)(GLFWwindow*,int); * * @ingroup input */ -typedef void (* GLFWscrollfun)(GLFWwindow*,double,double); +typedef void (* GLFWscrollfun)(GLFWwindow* window, double xoffset, double yoffset); -/*! @brief The function signature for keyboard key callbacks. +/*! @brief The function pointer type for keyboard key callbacks. * - * This is the function signature for keyboard key callback functions. + * This is the function pointer type for keyboard key callbacks. A keyboard + * key callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int key, int scancode, int action, int mods) + * @endcode * * @param[in] window The window that received the event. * @param[in] key The [keyboard key](@ref keys) that was pressed or released. * @param[in] scancode The system-specific scancode of the key. - * @param[in] action `GLFW_PRESS`, `GLFW_RELEASE` or `GLFW_REPEAT`. + * @param[in] action `GLFW_PRESS`, `GLFW_RELEASE` or `GLFW_REPEAT`. Future + * releases may add more actions. * @param[in] mods Bit field describing which [modifier keys](@ref mods) were * held down. * @@ -1400,11 +1525,15 @@ typedef void (* GLFWscrollfun)(GLFWwindow*,double,double); * * @ingroup input */ -typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int); +typedef void (* GLFWkeyfun)(GLFWwindow* window, int key, int scancode, int action, int mods); -/*! @brief The function signature for Unicode character callbacks. +/*! @brief The function pointer type for Unicode character callbacks. * - * This is the function signature for Unicode character callback functions. + * This is the function pointer type for Unicode character callbacks. + * A Unicode character callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, unsigned int codepoint) + * @endcode * * @param[in] window The window that received the event. * @param[in] codepoint The Unicode code point of the character. @@ -1417,14 +1546,18 @@ typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int); * * @ingroup input */ -typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int); +typedef void (* GLFWcharfun)(GLFWwindow* window, unsigned int codepoint); -/*! @brief The function signature for Unicode character with modifiers +/*! @brief The function pointer type for Unicode character with modifiers * callbacks. * - * This is the function signature for Unicode character with modifiers callback - * functions. It is called for each input character, regardless of what - * modifier keys are held down. + * This is the function pointer type for Unicode character with modifiers + * callbacks. It is called for each input character, regardless of what + * modifier keys are held down. A Unicode character with modifiers callback + * function has the following signature: + * @code + * void function_name(GLFWwindow* window, unsigned int codepoint, int mods) + * @endcode * * @param[in] window The window that received the event. * @param[in] codepoint The Unicode code point of the character. @@ -1440,16 +1573,23 @@ typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int); * * @ingroup input */ -typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int); +typedef void (* GLFWcharmodsfun)(GLFWwindow* window, unsigned int codepoint, int mods); -/*! @brief The function signature for file drop callbacks. +/*! @brief The function pointer type for path drop callbacks. * - * This is the function signature for file drop callbacks. + * This is the function pointer type for path drop callbacks. A path drop + * callback function has the following signature: + * @code + * void function_name(GLFWwindow* window, int path_count, const char* paths[]) + * @endcode * * @param[in] window The window that received the event. - * @param[in] count The number of dropped files. + * @param[in] path_count The number of dropped paths. * @param[in] paths The UTF-8 encoded file and/or directory path names. * + * @pointer_lifetime The path array and its strings are valid until the + * callback function returns. + * * @sa @ref path_drop * @sa @ref glfwSetDropCallback * @@ -1457,15 +1597,19 @@ typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int); * * @ingroup input */ -typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**); +typedef void (* GLFWdropfun)(GLFWwindow* window, int path_count, const char* paths[]); -/*! @brief The function signature for monitor configuration callbacks. +/*! @brief The function pointer type for monitor configuration callbacks. * - * This is the function signature for monitor configuration callback functions. + * This is the function pointer type for monitor configuration callbacks. + * A monitor callback function has the following signature: + * @code + * void function_name(GLFWmonitor* monitor, int event) + * @endcode * * @param[in] monitor The monitor that was connected or disconnected. - * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Remaining - * values reserved for future use. + * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Future + * releases may add more events. * * @sa @ref monitor_event * @sa @ref glfwSetMonitorCallback @@ -1474,16 +1618,19 @@ typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**); * * @ingroup monitor */ -typedef void (* GLFWmonitorfun)(GLFWmonitor*,int); +typedef void (* GLFWmonitorfun)(GLFWmonitor* monitor, int event); -/*! @brief The function signature for joystick configuration callbacks. +/*! @brief The function pointer type for joystick configuration callbacks. * - * This is the function signature for joystick configuration callback - * functions. + * This is the function pointer type for joystick configuration callbacks. + * A joystick configuration callback function has the following signature: + * @code + * void function_name(int jid, int event) + * @endcode * * @param[in] jid The joystick that was connected or disconnected. - * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Remaining - * values reserved for future use. + * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Future + * releases may add more events. * * @sa @ref joystick_event * @sa @ref glfwSetJoystickCallback @@ -1492,7 +1639,7 @@ typedef void (* GLFWmonitorfun)(GLFWmonitor*,int); * * @ingroup input */ -typedef void (* GLFWjoystickfun)(int,int); +typedef void (* GLFWjoystickfun)(int jid, int event); /*! @brief Video mode type. * @@ -1567,6 +1714,8 @@ typedef struct GLFWgammaramp * * @since Added in version 2.1. * @glfw3 Removed format and bytes-per-pixel members. + * + * @ingroup window */ typedef struct GLFWimage { @@ -1589,6 +1738,8 @@ typedef struct GLFWimage * @sa @ref glfwGetGamepadState * * @since Added in version 3.3. + * + * @ingroup input */ typedef struct GLFWgamepadstate { @@ -1630,6 +1781,10 @@ typedef struct GLFWgamepadstate * bundle, if present. This can be disabled with the @ref * GLFW_COCOA_CHDIR_RESOURCES init hint. * + * @remark @x11 This function will set the `LC_CTYPE` category of the + * application locale according to the current environment if that category is + * still "C". This is because the "C" locale breaks Unicode text input. + * * @thread_safety This function must only be called from the main thread. * * @sa @ref intro_init @@ -1653,6 +1808,8 @@ GLFWAPI int glfwInit(void); * call this function, as it is called by @ref glfwInit before it returns * failure. * + * This function has no effect if GLFW is not initialized. + * * @errors Possible errors include @ref GLFW_PLATFORM_ERROR. * * @remark This function may be called before @ref glfwInit. @@ -1814,10 +1971,17 @@ GLFWAPI int glfwGetError(const char** description); * Once set, the error callback remains set even after the library has been * terminated. * - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set. * + * @callback_signature + * @code + * void callback_name(int error_code, const char* description) + * @endcode + * For more information about the callback parameters, see the + * [callback pointer type](@ref GLFWerrorfun). + * * @errors None. * * @remark This function may be called before @ref glfwInit. @@ -1831,7 +1995,7 @@ GLFWAPI int glfwGetError(const char** description); * * @ingroup init */ -GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun); +GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback); /*! @brief Returns the currently connected monitors. * @@ -1911,6 +2075,37 @@ GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void); */ GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos); +/*! @brief Retrieves the work area of the monitor. + * + * This function returns the position, in screen coordinates, of the upper-left + * corner of the work area of the specified monitor along with the work area + * size in screen coordinates. The work area is defined as the area of the + * monitor not occluded by the operating system task bar where present. If no + * task bar exists then the work area is the monitor resolution in screen + * coordinates. + * + * Any or all of the position and size arguments may be `NULL`. If an error + * occurs, all non-`NULL` position and size arguments will be set to zero. + * + * @param[in] monitor The monitor to query. + * @param[out] xpos Where to store the monitor x-coordinate, or `NULL`. + * @param[out] ypos Where to store the monitor y-coordinate, or `NULL`. + * @param[out] width Where to store the monitor width, or `NULL`. + * @param[out] height Where to store the monitor height, or `NULL`. + * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_ERROR. + * + * @thread_safety This function must only be called from the main thread. + * + * @sa @ref monitor_workarea + * + * @since Added in version 3.3. + * + * @ingroup monitor + */ +GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height); + /*! @brief Returns the physical size of the monitor. * * This function returns the size, in millimetres, of the display area of the @@ -1932,8 +2127,8 @@ GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos); * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * - * @remark @win32 calculates the returned physical size from the - * current resolution and system DPI instead of querying the monitor EDID data. + * @remark @win32 On Windows 8 and earlier the physical size is calculated from + * the current resolution and system DPI instead of querying the monitor EDID data. * * @thread_safety This function must only be called from the main thread. * @@ -1949,9 +2144,11 @@ GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* * * This function retrieves the content scale for the specified monitor. The * content scale is the ratio between the current DPI and the platform's - * default DPI. If you scale all pixel dimensions by this scale then your - * content should appear at an appropriate size. This is especially important - * for text and any UI elements. + * default DPI. This is especially important for text and any UI elements. If + * the pixel dimensions of your UI scaled by this look appropriate on your + * machine then it should appear at a reasonable size on other machines + * regardless of their DPI and scaling settings. This relies on the system DPI + * and scaling settings being somewhat correct. * * The content scale may depend on both the monitor resolution and pixel * density and on user settings. It may be very different from the raw DPI @@ -2057,11 +2254,18 @@ GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor); * currently set callback. This is called when a monitor is connected to or * disconnected from the system. * - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWmonitor* monitor, int event) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWmonitorfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -2072,14 +2276,15 @@ GLFWAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor); * * @ingroup monitor */ -GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun); +GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback); /*! @brief Returns the available video modes for the specified monitor. * * This function returns an array of all video modes supported by the specified * monitor. The returned array is sorted in ascending order, first by color - * bit depth (the sum of all channel depths) and then by resolution area (the - * product of width and height). + * bit depth (the sum of all channel depths), then by resolution area (the + * product of width and height), then resolution width and finally by refresh + * rate. * * @param[in] monitor The monitor to query. * @param[out] count Where to store the number of video modes in the returned @@ -2137,9 +2342,9 @@ GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor); /*! @brief Generates a gamma ramp and sets it for the specified monitor. * - * This function generates a 256-element gamma ramp from the specified exponent - * and then calls @ref glfwSetGammaRamp with it. The value must be a finite - * number greater than zero. + * This function generates an appropriately sized gamma ramp from the specified + * exponent and then calls @ref glfwSetGammaRamp with it. The value must be + * a finite number greater than zero. * * The software controlled gamma ramp is applied _in addition_ to the hardware * gamma correction, which today is usually an approximation of sRGB gamma. @@ -2155,7 +2360,7 @@ GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. * - * @remark @wayland Gamma handling is a priviledged protocol, this function + * @remark @wayland Gamma handling is a privileged protocol, this function * will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR. * * @thread_safety This function must only be called from the main thread. @@ -2179,7 +2384,7 @@ GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * - * @remark @wayland Gamma handling is a priviledged protocol, this function + * @remark @wayland Gamma handling is a privileged protocol, this function * will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR while * returning `NULL`. * @@ -2218,12 +2423,12 @@ GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * - * @remark Gamma ramp sizes other than 256 are not supported by all platforms - * or graphics hardware. + * @remark The size of the specified gamma ramp should match the size of the + * current ramp for that monitor. * * @remark @win32 The gamma ramp size must be 256. * - * @remark @wayland Gamma handling is a priviledged protocol, this function + * @remark @wayland Gamma handling is a privileged protocol, this function * will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR. * * @pointer_lifetime The specified gamma ramp is copied before this function @@ -2442,7 +2647,7 @@ GLFWAPI void glfwWindowHintString(int hint, const char* value); * * @remark @macos When activating frame autosaving with * [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified - * window size and position may be overriden by previously saved values. + * window size and position may be overridden by previously saved values. * * @remark @x11 Some window managers will not respect the placement of * initially hidden windows. @@ -2455,15 +2660,18 @@ GLFWAPI void glfwWindowHintString(int hint, const char* value); * @remark @x11 The class part of the `WM_CLASS` window property will by * default be set to the window title passed to this function. The instance * part will use the contents of the `RESOURCE_NAME` environment variable, if - * present and not empty, or fall back to the window title. Set the @ref - * GLFW_X11_CLASS_NAME and @ref GLFW_X11_INSTANCE_NAME window hints to override - * this. + * present and not empty, or fall back to the window title. Set the + * [GLFW_X11_CLASS_NAME](@ref GLFW_X11_CLASS_NAME_hint) and + * [GLFW_X11_INSTANCE_NAME](@ref GLFW_X11_INSTANCE_NAME_hint) window hints to + * override this. * - * @remark @wayland The window frame is currently very simple, only allowing - * window resize or move. A compositor can still emit close, maximize or - * fullscreen events, using for example a keybind mechanism. Additionally, - * the wp_viewporter protocol is required for this feature, otherwise the - * window will not be decorated. + * @remark @wayland Compositors should implement the xdg-decoration protocol + * for GLFW to decorate the window properly. If this protocol isn't + * supported, or if the compositor prefers client-side decorations, a very + * simple fallback frame will be drawn using the wp_viewporter protocol. A + * compositor can still emit close, maximize or fullscreen events, using for + * instance a keybind mechanism. If neither of these protocols is supported, + * the window won't be decorated. * * @remark @wayland A full screen window will not attempt to change the mode, * no matter what the requested size or refresh rate. @@ -2599,8 +2807,8 @@ GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title); * @param[in] images The images to create the icon from. This is ignored if * count is zero. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. * * @pointer_lifetime The specified image data is copied before this function * returns. @@ -2625,19 +2833,19 @@ GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title); */ GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images); -/*! @brief Retrieves the position of the client area of the specified window. +/*! @brief Retrieves the position of the content area of the specified window. * * This function retrieves the position, in screen coordinates, of the - * upper-left corner of the client area of the specified window. + * upper-left corner of the content area of the specified window. * * Any or all of the position arguments may be `NULL`. If an error occurs, all * non-`NULL` position arguments will be set to zero. * * @param[in] window The window to query. * @param[out] xpos Where to store the x-coordinate of the upper-left corner of - * the client area, or `NULL`. + * the content area, or `NULL`. * @param[out] ypos Where to store the y-coordinate of the upper-left corner of - * the client area, or `NULL`. + * the content area, or `NULL`. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. @@ -2657,10 +2865,10 @@ GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* i */ GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos); -/*! @brief Sets the position of the client area of the specified window. +/*! @brief Sets the position of the content area of the specified window. * * This function sets the position, in screen coordinates, of the upper-left - * corner of the client area of the specified windowed mode window. If the + * corner of the content area of the specified windowed mode window. If the * window is a full screen window, this function does nothing. * * __Do not use this function__ to move an already visible window unless you @@ -2670,8 +2878,8 @@ GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos); * cannot and should not override these limits. * * @param[in] window The window to query. - * @param[in] xpos The x-coordinate of the upper-left corner of the client area. - * @param[in] ypos The y-coordinate of the upper-left corner of the client area. + * @param[in] xpos The x-coordinate of the upper-left corner of the content area. + * @param[in] ypos The y-coordinate of the upper-left corner of the content area. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. @@ -2692,9 +2900,9 @@ GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos); */ GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos); -/*! @brief Retrieves the size of the client area of the specified window. +/*! @brief Retrieves the size of the content area of the specified window. * - * This function retrieves the size, in screen coordinates, of the client area + * This function retrieves the size, in screen coordinates, of the content area * of the specified window. If you wish to retrieve the size of the * framebuffer of the window in pixels, see @ref glfwGetFramebufferSize. * @@ -2703,9 +2911,9 @@ GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos); * * @param[in] window The window whose size to retrieve. * @param[out] width Where to store the width, in screen coordinates, of the - * client area, or `NULL`. + * content area, or `NULL`. * @param[out] height Where to store the height, in screen coordinates, of the - * client area, or `NULL`. + * content area, or `NULL`. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. @@ -2724,7 +2932,7 @@ GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height); /*! @brief Sets the size limits of the specified window. * - * This function sets the size limits of the client area of the specified + * This function sets the size limits of the content area of the specified * window. If the window is full screen, the size limits only take effect * once it is made windowed. If the window is not resizable, this function * does nothing. @@ -2736,14 +2944,14 @@ GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height); * dimensions and all must be greater than or equal to zero. * * @param[in] window The window to set limits for. - * @param[in] minwidth The minimum width, in screen coordinates, of the client + * @param[in] minwidth The minimum width, in screen coordinates, of the content * area, or `GLFW_DONT_CARE`. * @param[in] minheight The minimum height, in screen coordinates, of the - * client area, or `GLFW_DONT_CARE`. - * @param[in] maxwidth The maximum width, in screen coordinates, of the client + * content area, or `GLFW_DONT_CARE`. + * @param[in] maxwidth The maximum width, in screen coordinates, of the content * area, or `GLFW_DONT_CARE`. * @param[in] maxheight The maximum height, in screen coordinates, of the - * client area, or `GLFW_DONT_CARE`. + * content area, or `GLFW_DONT_CARE`. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. @@ -2767,7 +2975,7 @@ GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minhe /*! @brief Sets the aspect ratio of the specified window. * - * This function sets the required aspect ratio of the client area of the + * This function sets the required aspect ratio of the content area of the * specified window. If the window is full screen, the aspect ratio only takes * effect once it is made windowed. If the window is not resizable, this * function does nothing. @@ -2808,9 +3016,9 @@ GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minhe */ GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom); -/*! @brief Sets the size of the client area of the specified window. +/*! @brief Sets the size of the content area of the specified window. * - * This function sets the size, in screen coordinates, of the client area of + * This function sets the size, in screen coordinates, of the content area of * the specified window. * * For full screen windows, this function updates the resolution of its desired @@ -2826,9 +3034,9 @@ GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom); * * @param[in] window The window to resize. * @param[in] width The desired width, in screen coordinates, of the window - * client area. + * content area. * @param[in] height The desired height, in screen coordinates, of the window - * client area. + * content area. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. @@ -2919,9 +3127,11 @@ GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int * * This function retrieves the content scale for the specified window. The * content scale is the ratio between the current DPI and the platform's - * default DPI. If you scale all pixel dimensions by this scale then your - * content should appear at an appropriate size. This is especially important - * for text and any UI elements. + * default DPI. This is especially important for text and any UI elements. If + * the pixel dimensions of your UI scaled by this look appropriate on your + * machine then it should appear at a reasonable size on other machines + * regardless of their DPI and scaling settings. This relies on the system DPI + * and scaling settings being somewhat correct. * * On systems where each monitors can have its own content scale, the window * content scale will depend on which monitor the system considers the window @@ -3008,18 +3218,15 @@ GLFWAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity); * previously restored. If the window is already iconified, this function does * nothing. * - * If the specified window is a full screen window, the original monitor - * resolution is restored until the window is restored. + * If the specified window is a full screen window, GLFW restores the original + * video mode of the monitor. The window's desired video mode is set again + * when the window is restored. * * @param[in] window The window to iconify. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * - * @remark @wayland There is no concept of iconification in wl_shell, this - * function will emit @ref GLFW_PLATFORM_ERROR when using this deprecated - * protocol. - * * @thread_safety This function must only be called from the main thread. * * @sa @ref window_iconify @@ -3039,8 +3246,8 @@ GLFWAPI void glfwIconifyWindow(GLFWwindow* window); * (minimized) or maximized. If the window is already restored, this function * does nothing. * - * If the specified window is a full screen window, the resolution chosen for - * the window is restored on the selected monitor. + * If the specified window is an iconified full screen window, its desired + * video mode is set again for its monitor when the window is restored. * * @param[in] window The window to restore. * @@ -3101,6 +3308,11 @@ GLFWAPI void glfwMaximizeWindow(GLFWwindow* window); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * + * @remark @wayland Because Wayland wants every frame of the desktop to be + * complete, this function does not immediately make the window visible. + * Instead it will become visible the next time the window framebuffer is + * updated after this call. + * * @thread_safety This function must only be called from the main thread. * * @sa @ref window_hide @@ -3232,7 +3444,7 @@ GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window); * The window position is ignored when setting a monitor. * * When the monitor is `NULL`, the position, width and height are used to - * place the window client area. The refresh rate is ignored when no monitor + * place the window content area. The refresh rate is ignored when no monitor * is specified. * * If you only wish to update the resolution of a full screen window or the @@ -3245,12 +3457,12 @@ GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window); * @param[in] window The window whose monitor, size or video mode to set. * @param[in] monitor The desired monitor, or `NULL` to set windowed mode. * @param[in] xpos The desired x-coordinate of the upper-left corner of the - * client area. + * content area. * @param[in] ypos The desired y-coordinate of the upper-left corner of the - * client area. - * @param[in] width The desired with, in screen coordinates, of the client area - * or video mode. - * @param[in] height The desired height, in screen coordinates, of the client + * content area. + * @param[in] width The desired with, in screen coordinates, of the content + * area or video mode. + * @param[in] height The desired height, in screen coordinates, of the content * area or video mode. * @param[in] refreshRate The desired refresh rate, in Hz, of the video mode, * or `GLFW_DONT_CARE`. @@ -3303,6 +3515,9 @@ GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int * errors. However, this function should not fail as long as it is passed * valid arguments and the library has been [initialized](@ref intro_init). * + * @remark @wayland The Wayland protocol provides no way to check whether a + * window is iconfied, so @ref GLFW_ICONIFIED always returns `GLFW_FALSE`. + * * @thread_safety This function must only be called from the main thread. * * @sa @ref window_attribs @@ -3400,15 +3615,22 @@ GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window); * * This function sets the position callback of the specified window, which is * called when the window is moved. The callback is provided with the - * position, in screen coordinates, of the upper-left corner of the client area - * of the window. + * position, in screen coordinates, of the upper-left corner of the content + * area of the window. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int xpos, int ypos) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowposfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @remark @wayland This callback will never be called, as there is no way for @@ -3422,20 +3644,27 @@ GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window); * * @ingroup window */ -GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun); +GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun callback); /*! @brief Sets the size callback for the specified window. * * This function sets the size callback of the specified window, which is * called when the window is resized. The callback is provided with the size, - * in screen coordinates, of the client area of the window. + * in screen coordinates, of the content area of the window. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int width, int height) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowsizefun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -3447,7 +3676,7 @@ GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindow * * @ingroup window */ -GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun); +GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun callback); /*! @brief Sets the close callback for the specified window. * @@ -3461,11 +3690,18 @@ GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwind * The close callback is not triggered by @ref glfwDestroyWindow. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowclosefun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @remark @macos Selecting Quit from the application menu will trigger the @@ -3480,12 +3716,12 @@ GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwind * * @ingroup window */ -GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun); +GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun callback); /*! @brief Sets the refresh callback for the specified window. * * This function sets the refresh callback of the specified window, which is - * called when the client area of the window needs to be redrawn, for example + * called when the content area of the window needs to be redrawn, for example * if the window has been exposed after having been covered by another window. * * On compositing window systems such as Aero, Compiz, Aqua or Wayland, where @@ -3493,11 +3729,18 @@ GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwi * very infrequently or never at all. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window); + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowrefreshfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -3509,7 +3752,7 @@ GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwi * * @ingroup window */ -GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun cbfun); +GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun callback); /*! @brief Sets the focus callback for the specified window. * @@ -3522,11 +3765,18 @@ GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GL * and @ref glfwSetMouseButtonCallback. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int focused) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowfocusfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -3537,7 +3787,7 @@ GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GL * * @ingroup window */ -GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun); +GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun callback); /*! @brief Sets the iconify callback for the specified window. * @@ -3545,15 +3795,22 @@ GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwi * is called when the window is iconified or restored. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int iconified) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowiconifyfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * - * @remark @wayland The wl_shell protocol has no concept of iconification, - * this callback will never be called when using this deprecated protocol. + * @remark @wayland The XDG-shell protocol has no event for iconification, so + * this callback will never be called. * * @thread_safety This function must only be called from the main thread. * @@ -3563,7 +3820,7 @@ GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwi * * @ingroup window */ -GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun cbfun); +GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun callback); /*! @brief Sets the maximize callback for the specified window. * @@ -3571,11 +3828,18 @@ GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GL * is called when the window is maximized or restored. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int maximized) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowmaximizefun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -3586,7 +3850,7 @@ GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GL * * @ingroup window */ -GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, GLFWwindowmaximizefun cbfun); +GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, GLFWwindowmaximizefun callback); /*! @brief Sets the framebuffer resize callback for the specified window. * @@ -3594,11 +3858,18 @@ GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, * which is called when the framebuffer of the specified window is resized. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int width, int height) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWframebuffersizefun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -3609,7 +3880,7 @@ GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, * * @ingroup window */ -GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun cbfun); +GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun callback); /*! @brief Sets the window content scale callback for the specified window. * @@ -3617,11 +3888,18 @@ GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window * which is called when the content scale of the specified window changes. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, float xscale, float yscale) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWwindowcontentscalefun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -3633,7 +3911,7 @@ GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window * * @ingroup window */ -GLFWAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow* window, GLFWwindowcontentscalefun cbfun); +GLFWAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow* window, GLFWwindowcontentscalefun callback); /*! @brief Processes all pending events. * @@ -3699,10 +3977,6 @@ GLFWAPI void glfwPollEvents(void); * GLFW will pass those events on to the application callbacks before * returning. * - * If no windows exist, this function returns immediately. For synchronization - * of threads in applications that do not create windows, use your threading - * library of choice. - * * Event processing is not required for joystick input to work. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref @@ -3750,14 +4024,13 @@ GLFWAPI void glfwWaitEvents(void); * GLFW will pass those events on to the application callbacks before * returning. * - * If no windows exist, this function returns immediately. For synchronization - * of threads in applications that do not create windows, use your threading - * library of choice. - * * Event processing is not required for joystick input to work. * * @param[in] timeout The maximum amount of time, in seconds, to wait. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. + * * @reentrancy This function must not be called from a callback. * * @thread_safety This function must only be called from the main thread. @@ -3777,10 +4050,6 @@ GLFWAPI void glfwWaitEventsTimeout(double timeout); * This function posts an empty event from the current thread to the event * queue, causing @ref glfwWaitEvents or @ref glfwWaitEventsTimeout to return. * - * If no windows exist, this function returns immediately. For synchronization - * of threads in applications that do not create windows, use your threading - * library of choice. - * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * @@ -3800,11 +4069,13 @@ GLFWAPI void glfwPostEmptyEvent(void); * * This function returns the value of an input option for the specified window. * The mode must be one of @ref GLFW_CURSOR, @ref GLFW_STICKY_KEYS, - * @ref GLFW_STICKY_MOUSE_BUTTONS or @ref GLFW_LOCK_KEY_MODS. + * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS or + * @ref GLFW_RAW_MOUSE_MOTION. * * @param[in] window The window to query. * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS`, - * `GLFW_STICKY_MOUSE_BUTTONS` or `GLFW_LOCK_KEY_MODS`. + * `GLFW_STICKY_MOUSE_BUTTONS`, `GLFW_LOCK_KEY_MODS` or + * `GLFW_RAW_MOUSE_MOTION`. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_INVALID_ENUM. @@ -3823,13 +4094,14 @@ 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 or @ref GLFW_LOCK_KEY_MODS. + * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS or + * @ref GLFW_RAW_MOUSE_MOTION. * * If the mode is `GLFW_CURSOR`, the value must be one of the following cursor * modes: * - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally. - * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the client - * area of the window but does not restrict the cursor from leaving. + * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the + * content area of the window but does not restrict the cursor from leaving. * - `GLFW_CURSOR_DISABLED` hides and grabs the cursor, providing virtual * and unlimited cursor movement. This is useful for implementing for * example 3D camera controls. @@ -3855,9 +4127,16 @@ GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode); * GLFW_MOD_CAPS_LOCK bit set when the event was generated with Caps Lock on, * and the @ref GLFW_MOD_NUM_LOCK bit when Num Lock was on. * + * If the mode is `GLFW_RAW_MOUSE_MOTION`, the value must be either `GLFW_TRUE` + * to enable raw (unscaled and unaccelerated) mouse motion when the cursor is + * disabled, or `GLFW_FALSE` to disable it. If raw motion is not supported, + * attempting to set this will emit @ref GLFW_PLATFORM_ERROR. Call @ref + * glfwRawMouseMotionSupported to check for support. + * * @param[in] window The window whose input mode to set. * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS`, - * `GLFW_STICKY_MOUSE_BUTTONS` or `GLFW_LOCK_KEY_MODS`. + * `GLFW_STICKY_MOUSE_BUTTONS`, `GLFW_LOCK_KEY_MODS` or + * `GLFW_RAW_MOUSE_MOTION`. * @param[in] value The new value of the specified input mode. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref @@ -3873,6 +4152,35 @@ GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode); */ GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value); +/*! @brief Returns whether raw mouse motion is supported. + * + * This function returns whether raw mouse motion is supported on the current + * system. This status does not change after GLFW has been initialized so you + * only need to check this once. If you attempt to enable raw motion on + * a system that does not support it, @ref GLFW_PLATFORM_ERROR will be emitted. + * + * Raw mouse motion is closer to the actual motion of the mouse across + * a surface. It is not affected by the scaling and acceleration applied to + * the motion of the desktop cursor. That processing is suitable for a cursor + * while raw motion is better for controlling for example a 3D camera. Because + * of this, raw mouse motion is only provided when the cursor is disabled. + * + * @return `GLFW_TRUE` if raw mouse motion is supported on the current machine, + * or `GLFW_FALSE` otherwise. + * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * + * @thread_safety This function must only be called from the main thread. + * + * @sa @ref raw_mouse_motion + * @sa @ref glfwSetInputMode + * + * @since Added in version 3.3. + * + * @ingroup input + */ +GLFWAPI int glfwRawMouseMotionSupported(void); + /*! @brief Returns the layout-specific name of the specified printable key. * * This function returns the name of the specified printable key, encoded as @@ -3925,9 +4233,11 @@ GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * + * @remark The contents of the returned string may change when a keyboard + * layout change event is received. + * * @pointer_lifetime The returned string is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the next call to @ref - * glfwGetKeyName, or until the library is terminated. + * should not free it yourself. It is valid until the library is terminated. * * @thread_safety This function must only be called from the main thread. * @@ -3968,8 +4278,7 @@ GLFWAPI int glfwGetKeyScancode(int key); * * This function returns the last state reported for the specified key to the * specified window. The returned state is one of `GLFW_PRESS` or - * `GLFW_RELEASE`. The higher-level action `GLFW_REPEAT` is only reported to - * the key callback. + * `GLFW_RELEASE`. The action `GLFW_REPEAT` is only reported to the key callback. * * If the @ref GLFW_STICKY_KEYS input mode is enabled, this function returns * `GLFW_PRESS` the first time you call it for a key that was pressed, even if @@ -4011,8 +4320,8 @@ GLFWAPI int glfwGetKey(GLFWwindow* window, int key); * `GLFW_RELEASE`. * * If the @ref GLFW_STICKY_MOUSE_BUTTONS input mode is enabled, this function - * `GLFW_PRESS` the first time you call it for a mouse button that was pressed, - * even if that mouse button has already been released. + * 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. * * @param[in] window The desired window. * @param[in] button The desired [mouse button](@ref buttons). @@ -4032,11 +4341,11 @@ GLFWAPI int glfwGetKey(GLFWwindow* window, int key); */ GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button); -/*! @brief Retrieves the position of the cursor relative to the client area of +/*! @brief Retrieves the position of the cursor relative to the content area of * the window. * * This function returns the position of the cursor, in screen coordinates, - * relative to the upper-left corner of the client area of the specified + * relative to the upper-left corner of the content area of the specified * window. * * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor @@ -4052,9 +4361,9 @@ GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button); * * @param[in] window The desired window. * @param[out] xpos Where to store the cursor x-coordinate, relative to the - * left edge of the client area, or `NULL`. + * left edge of the content area, or `NULL`. * @param[out] ypos Where to store the cursor y-coordinate, relative to the to - * top edge of the client area, or `NULL`. + * top edge of the content area, or `NULL`. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. @@ -4070,11 +4379,11 @@ GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button); */ GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); -/*! @brief Sets the position of the cursor, relative to the client area of the +/*! @brief Sets the position of the cursor, relative to the content area of the * window. * * This function sets the position, in screen coordinates, of the cursor - * relative to the upper-left corner of the client area of the specified + * relative to the upper-left corner of the content area of the specified * window. The window must have input focus. If the window does not have * input focus when this function is called, it fails silently. * @@ -4089,9 +4398,9 @@ GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); * * @param[in] window The desired window. * @param[in] xpos The desired x-coordinate, relative to the left edge of the - * client area. + * content area. * @param[in] ypos The desired y-coordinate, relative to the top edge of the - * client area. + * content area. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. @@ -4130,8 +4439,8 @@ GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos); * @return The handle of the created cursor, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. * * @pointer_lifetime The specified image data is copied before this function * returns. @@ -4201,7 +4510,7 @@ GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor); /*! @brief Sets the cursor for the window. * * This function sets the cursor image to be used when the cursor is over the - * client area of the specified window. The set cursor will only be visible + * content area of the specified window. The set cursor will only be visible * when the [cursor mode](@ref cursor_mode) of the window is * `GLFW_CURSOR_NORMAL`. * @@ -4250,11 +4559,18 @@ GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor); * scancode may be zero. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new key callback, or `NULL` to remove the currently + * @param[in] callback The new key callback, or `NULL` to remove the currently * set callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int key, int scancode, int action, int mods) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWkeyfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -4266,7 +4582,7 @@ GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor); * * @ingroup input */ -GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun); +GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback); /*! @brief Sets the Unicode character callback. * @@ -4283,16 +4599,21 @@ GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun); * The character callback behaves as system text input normally does and will * not be called if modifier keys are held down that would prevent normal text * input on that platform, for example a Super (Command) key on macOS or Alt key - * on Windows. There is a - * [character with modifiers callback](@ref glfwSetCharModsCallback) that - * receives these events. + * on Windows. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, unsigned int codepoint) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWcharfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -4304,7 +4625,7 @@ GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun); * * @ingroup input */ -GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun); +GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback); /*! @brief Sets the Unicode character with modifiers callback. * @@ -4322,11 +4643,18 @@ GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun); * [key callback](@ref glfwSetKeyCallback) instead. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or an * [error](@ref error_handling) occurred. * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, unsigned int codepoint, int mods) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWcharmodsfun). + * * @deprecated Scheduled for removal in version 4.0. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. @@ -4339,7 +4667,7 @@ GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun); * * @ingroup input */ -GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun cbfun); +GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun callback); /*! @brief Sets the mouse button callback. * @@ -4353,11 +4681,18 @@ GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmods * [window focus callback](@ref glfwSetWindowFocusCallback) has been called. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int button, int action, int mods) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWmousebuttonfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -4369,21 +4704,28 @@ GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmods * * @ingroup input */ -GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun); +GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun callback); /*! @brief Sets the cursor position callback. * * This function sets the cursor position callback of the specified window, * which is called when the cursor is moved. The callback is provided with the * position, in screen coordinates, relative to the upper-left corner of the - * client area of the window. + * content area of the window. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, double xpos, double ypos); + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWcursorposfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -4394,20 +4736,27 @@ GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmo * * @ingroup input */ -GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun); +GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun callback); -/*! @brief Sets the cursor enter/exit callback. +/*! @brief Sets the cursor enter/leave callback. * * This function sets the cursor boundary crossing callback of the specified - * window, which is called when the cursor enters or leaves the client area of + * window, which is called when the cursor enters or leaves the content area of * the window. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int entered) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWcursorenterfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -4418,7 +4767,7 @@ GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursor * * @ingroup input */ -GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun); +GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun callback); /*! @brief Sets the scroll callback. * @@ -4430,11 +4779,18 @@ GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcu * wheel or a touchpad scrolling area. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new scroll callback, or `NULL` to remove the currently - * set callback. + * @param[in] callback The new scroll callback, or `NULL` to remove the + * currently set callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, double xoffset, double yoffset) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWscrollfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -4445,12 +4801,12 @@ GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcu * * @ingroup input */ -GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun); +GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback); -/*! @brief Sets the file drop callback. +/*! @brief Sets the path drop callback. * - * This function sets the file drop callback of the specified window, which is - * called when one or more dragged files are dropped on the window. + * This function sets the path drop callback of the specified window, which is + * called when one or more dragged paths are dropped on the window. * * Because the path array and its strings may have been generated specifically * for that event, they are not guaranteed to be valid after the callback has @@ -4458,11 +4814,18 @@ GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cb * make a deep copy. * * @param[in] window The window whose callback to set. - * @param[in] cbfun The new file drop callback, or `NULL` to remove the + * @param[in] callback The new file drop callback, or `NULL` to remove the * currently set callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(GLFWwindow* window, int path_count, const char* paths[]) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWdropfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @remark @wayland File drop is currently unimplemented. @@ -4475,7 +4838,7 @@ GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cb * * @ingroup input */ -GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun cbfun); +GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback); /*! @brief Returns whether the specified joystick is present. * @@ -4581,7 +4944,7 @@ GLFWAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count); * Each element in the array is one of the following values: * * Name | Value - * --------------------- | -------------------------------- + * ---- | ----- * `GLFW_HAT_CENTERED` | 0 * `GLFW_HAT_UP` | 1 * `GLFW_HAT_RIGHT` | 2 @@ -4663,7 +5026,7 @@ GLFWAPI const unsigned char* glfwGetJoystickHats(int jid, int* count); */ GLFWAPI const char* glfwGetJoystickName(int jid); -/*! @brief Returns the SDL comaptible GUID of the specified joystick. +/*! @brief Returns the SDL compatible GUID of the specified joystick. * * This function returns the SDL compatible GUID, as a UTF-8 encoded * hexadecimal string, of the specified joystick. The returned string is @@ -4794,11 +5157,18 @@ GLFWAPI int glfwJoystickIsGamepad(int jid); * called by joystick functions. The function will then return whatever it * returns if the joystick is not present. * - * @param[in] cbfun The new callback, or `NULL` to remove the currently set + * @param[in] callback The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set or the * library had not been [initialized](@ref intro_init). * + * @callback_signature + * @code + * void function_name(int jid, int event) + * @endcode + * For more information about the callback parameters, see the + * [function pointer type](@ref GLFWjoystickfun). + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function must only be called from the main thread. @@ -4809,7 +5179,7 @@ GLFWAPI int glfwJoystickIsGamepad(int jid); * * @ingroup input */ -GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun cbfun); +GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback); /*! @brief Adds the specified SDL_GameControllerDB gamepad mappings. * @@ -4860,6 +5230,8 @@ GLFWAPI int glfwUpdateGamepadMappings(const char* string); * joystick is not present, does not have a mapping or an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref GLFW_INVALID_ENUM. + * * @pointer_lifetime The returned string is allocated and freed by GLFW. You * should not free it yourself. It is valid until the specified joystick is * disconnected, the gamepad mappings are updated or the library is terminated. @@ -4877,7 +5249,7 @@ GLFWAPI const char* glfwGetGamepadName(int jid); /*! @brief Retrieves the state of the specified joystick remapped as a gamepad. * - * This function retrives the state of the specified joystick remapped to + * This function retrieves the state of the specified joystick remapped to * an Xbox-like gamepad. * * If the specified joystick is not present or does not have a gamepad mapping @@ -4901,6 +5273,8 @@ GLFWAPI const char* glfwGetGamepadName(int jid); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_INVALID_ENUM. * + * @thread_safety This function must only be called from the main thread. + * * @sa @ref gamepad * @sa @ref glfwUpdateGamepadMappings * @sa @ref glfwJoystickIsGamepad @@ -4922,8 +5296,6 @@ GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * - * @remark @wayland Clipboard is currently unimplemented. - * * @pointer_lifetime The specified string is copied before this function * returns. * @@ -4949,10 +5321,8 @@ GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string); * @return The contents of the clipboard as a UTF-8 encoded string, or `NULL` * if an [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @remark @wayland Clipboard is currently unimplemented. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_FORMAT_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR. * * @pointer_lifetime The returned string is allocated and freed by GLFW. You * should not free it yourself. It is valid until the next call to @ref @@ -4970,23 +5340,26 @@ GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string); */ GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window); -/*! @brief Returns the value of the GLFW timer. +/*! @brief Returns the GLFW time. * - * This function returns the value of the GLFW timer. Unless the timer has - * been set using @ref glfwSetTime, the timer measures time elapsed since GLFW - * was initialized. + * This function returns the current GLFW time, in seconds. Unless the time + * has been set using @ref glfwSetTime it measures time elapsed since GLFW was + * initialized. + * + * This function and @ref glfwSetTime are helper functions on top of @ref + * glfwGetTimerFrequency and @ref glfwGetTimerValue. * * The resolution of the timer is system dependent, but is usually on the order * of a few micro- or nanoseconds. It uses the highest-resolution monotonic * time source on each supported platform. * - * @return The current value, in seconds, or zero if an + * @return The current time, in seconds, or zero if an * [error](@ref error_handling) occurred. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * * @thread_safety This function may be called from any thread. Reading and - * writing of the internal timer offset is not atomic, so it needs to be + * writing of the internal base time is not atomic, so it needs to be * externally synchronized with calls to @ref glfwSetTime. * * @sa @ref time @@ -4997,23 +5370,26 @@ GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window); */ GLFWAPI double glfwGetTime(void); -/*! @brief Sets the GLFW timer. +/*! @brief Sets the GLFW time. * - * This function sets the value of the GLFW timer. It then continues to count - * up from that value. The value must be a positive finite number less than - * or equal to 18446744073.0, which is approximately 584.5 years. + * This function sets the current GLFW time, in seconds. The value must be + * a positive finite number less than or equal to 18446744073.0, which is + * approximately 584.5 years. + * + * This function and @ref glfwGetTime are helper functions on top of @ref + * glfwGetTimerFrequency and @ref glfwGetTimerValue. * * @param[in] time The new value, in seconds. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_INVALID_VALUE. * - * @remark The upper limit of the timer is calculated as + * @remark The upper limit of GLFW time is calculated as * floor((264 - 1) / 109) and is due to implementations * storing nanoseconds in 64 bits. The limit may be increased in the future. * * @thread_safety This function may be called from any thread. Reading and - * writing of the internal timer offset is not atomic, so it needs to be + * writing of the internal base time is not atomic, so it needs to be * externally synchronized with calls to @ref glfwGetTime. * * @sa @ref time @@ -5290,13 +5666,11 @@ GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname); * This function returns whether the Vulkan loader and any minimally functional * ICD have been found. * - * The availability of a Vulkan loader and even an ICD does not by itself - * guarantee that surface creation or even instance creation is possible. - * For example, on Fermi systems Nvidia will install an ICD that provides no - * actual Vulkan support. Call @ref glfwGetRequiredInstanceExtensions to check - * whether the extensions necessary for Vulkan surface creation are available - * and @ref glfwGetPhysicalDevicePresentationSupport to check whether a queue - * family of a physical device supports image presentation. + * The availability of a Vulkan loader and even an ICD does not by itself guarantee that + * surface creation or even instance creation is possible. Call @ref + * glfwGetRequiredInstanceExtensions to check whether the extensions necessary for Vulkan + * surface creation are available and @ref glfwGetPhysicalDevicePresentationSupport to + * check whether a queue family of a physical device supports image presentation. * * @return `GLFW_TRUE` if Vulkan is minimally available, or `GLFW_FALSE` * otherwise. @@ -5317,7 +5691,7 @@ GLFWAPI int glfwVulkanSupported(void); * * This function returns an array of names of Vulkan instance extensions required * by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the - * list will always contains `VK_KHR_surface`, so if you don't require any + * list will always contain `VK_KHR_surface`, so if you don't require any * additional extensions you can pass this list directly to the * `VkInstanceCreateInfo` struct. * @@ -5342,9 +5716,6 @@ GLFWAPI int glfwVulkanSupported(void); * returned array, as it is an error to specify an extension more than once in * the `VkInstanceCreateInfo` struct. * - * @remark @macos This function currently only supports the - * `VK_MVK_macos_surface` extension from MoltenVK. - * * @pointer_lifetime The returned array is allocated and freed by GLFW. You * should not free it yourself. It is guaranteed to be valid only until the * library is terminated. @@ -5426,7 +5797,7 @@ GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* p * GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR. * * @remark @macos This function currently always returns `GLFW_TRUE`, as the - * `VK_MVK_macos_surface` extension does not provide + * `VK_MVK_macos_surface` and `VK_EXT_metal_surface` extensions do not provide * a `vkGetPhysicalDevice*PresentationSupport` type function. * * @thread_safety This function may be called from any thread. For @@ -5483,8 +5854,10 @@ GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhys * @ref glfwVulkanSupported and @ref glfwGetRequiredInstanceExtensions should * eliminate almost all occurrences of these errors. * - * @remark @macos This function currently only supports the - * `VK_MVK_macos_surface` extension from MoltenVK. + * @remark @macos GLFW prefers the `VK_EXT_metal_surface` extension, with the + * `VK_MVK_macos_surface` extension as a fallback. The name of the selected + * extension, if any, is included in the array returned by @ref + * glfwGetRequiredInstanceExtensions. * * @remark @macos This function creates and sets a `CAMetalLayer` instance for * the window content view, which is required for MoltenVK to function. @@ -5525,6 +5898,7 @@ GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window */ #ifndef GLAPIENTRY #define GLAPIENTRY APIENTRY + #define GLFW_GLAPIENTRY_DEFINED #endif /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */ diff --git a/examples/others/external/include/GLFW/glfw3native.h b/examples/others/external/include/GLFW/glfw3native.h index 4372cb766..7be0227d5 100644 --- a/examples/others/external/include/GLFW/glfw3native.h +++ b/examples/others/external/include/GLFW/glfw3native.h @@ -3,7 +3,7 @@ * A library for OpenGL, window and input *------------------------------------------------------------------------ * Copyright (c) 2002-2006 Marcus Geelnard - * Copyright (c) 2006-2016 Camilla Löwy + * Copyright (c) 2006-2018 Camilla Löwy * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages @@ -62,7 +62,6 @@ extern "C" { * * `GLFW_EXPOSE_NATIVE_COCOA` * * `GLFW_EXPOSE_NATIVE_X11` * * `GLFW_EXPOSE_NATIVE_WAYLAND` - * * `GLFW_EXPOSE_NATIVE_MIR` * * The available context API macros are: * * `GLFW_EXPOSE_NATIVE_WGL` @@ -75,6 +74,16 @@ extern "C" { * and which platform-specific headers to include. It is then up your (by * definition platform-specific) code to handle which of these should be * defined. + * + * If you do not want the platform-specific headers to be included, define + * `GLFW_NATIVE_INCLUDE_NONE` before including the @ref glfw3native.h header. + * + * @code + * #define GLFW_EXPOSE_NATIVE_WIN32 + * #define GLFW_EXPOSE_NATIVE_WGL + * #define GLFW_NATIVE_INCLUDE_NONE + * #include + * @endcode */ @@ -82,46 +91,65 @@ extern "C" { * System headers and types *************************************************************************/ -#if defined(GLFW_EXPOSE_NATIVE_WIN32) - // This is a workaround for the fact that glfw3.h needs to export APIENTRY (for - // example to allow applications to correctly declare a GL_ARB_debug_output - // callback) but windows.h assumes no one will define APIENTRY before it does - #if defined(GLFW_APIENTRY_DEFINED) - #undef APIENTRY - #undef GLFW_APIENTRY_DEFINED - #endif - #include -#elif defined(GLFW_EXPOSE_NATIVE_COCOA) - #include - #if defined(__OBJC__) - #import - #else - typedef void* id; - #endif -#elif defined(GLFW_EXPOSE_NATIVE_X11) - #include - #include -#elif defined(GLFW_EXPOSE_NATIVE_WAYLAND) - #include -#elif defined(GLFW_EXPOSE_NATIVE_MIR) - #include -#endif +#if !defined(GLFW_NATIVE_INCLUDE_NONE) -#if defined(GLFW_EXPOSE_NATIVE_WGL) - /* WGL is declared by windows.h */ -#endif -#if defined(GLFW_EXPOSE_NATIVE_NSGL) - /* NSGL is declared by Cocoa.h */ -#endif -#if defined(GLFW_EXPOSE_NATIVE_GLX) - #include -#endif -#if defined(GLFW_EXPOSE_NATIVE_EGL) - #include -#endif -#if defined(GLFW_EXPOSE_NATIVE_OSMESA) - #include -#endif + #if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL) + /* This is a workaround for the fact that glfw3.h needs to export APIENTRY (for + * example to allow applications to correctly declare a GL_KHR_debug callback) + * but windows.h assumes no one will define APIENTRY before it does + */ + #if defined(GLFW_APIENTRY_DEFINED) + #undef APIENTRY + #undef GLFW_APIENTRY_DEFINED + #endif + #include + #elif defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL) + #if defined(__OBJC__) + #import + #else + #include + #include + #endif + #elif defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX) + #include + #include + #elif defined(GLFW_EXPOSE_NATIVE_WAYLAND) + #include + #endif + + #if defined(GLFW_EXPOSE_NATIVE_WGL) + /* WGL is declared by windows.h */ + #endif + #if defined(GLFW_EXPOSE_NATIVE_NSGL) + /* NSGL is declared by Cocoa.h */ + #endif + #if defined(GLFW_EXPOSE_NATIVE_GLX) + /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by + * default it also acts as an OpenGL header + * However, glx.h will include gl.h, which will define it unconditionally + */ + #if defined(GLFW_GLAPIENTRY_DEFINED) + #undef GLAPIENTRY + #undef GLFW_GLAPIENTRY_DEFINED + #endif + #include + #endif + #if defined(GLFW_EXPOSE_NATIVE_EGL) + #include + #endif + #if defined(GLFW_EXPOSE_NATIVE_OSMESA) + /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by + * default it also acts as an OpenGL header + * However, osmesa.h will include gl.h, which will define it unconditionally + */ + #if defined(GLFW_GLAPIENTRY_DEFINED) + #undef GLAPIENTRY + #undef GLFW_GLAPIENTRY_DEFINED + #endif + #include + #endif + +#endif /*GLFW_NATIVE_INCLUDE_NONE*/ /************************************************************************* @@ -135,6 +163,8 @@ extern "C" { * of the specified monitor, or `NULL` if an [error](@ref error_handling) * occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -150,6 +180,8 @@ GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor); * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -164,6 +196,16 @@ GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor); * @return The `HWND` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * + * @remark The `HDC` associated with the window can be queried with the + * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc) + * function. + * @code + * HDC dc = GetDC(glfwGetWin32Window(window)); + * @endcode + * This DC is private and does not need to be released. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -180,6 +222,17 @@ GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window); * @return The `HGLRC` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * + * @remark The `HDC` associated with the window can be queried with the + * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc) + * function. + * @code + * HDC dc = GetDC(glfwGetWin32Window(window)); + * @endcode + * This DC is private and does not need to be released. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -196,6 +249,8 @@ GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window); * @return The `CGDirectDisplayID` of the specified monitor, or * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -210,6 +265,8 @@ GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor); * @return The `NSWindow` of the specified window, or `nil` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -226,6 +283,9 @@ GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window); * @return The `NSOpenGLContext` of the specified window, or `nil` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -242,6 +302,8 @@ GLFWAPI id glfwGetNSGLContext(GLFWwindow* window); * @return The `Display` used by GLFW, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -256,6 +318,8 @@ GLFWAPI Display* glfwGetX11Display(void); * @return The `RRCrtc` of the specified monitor, or `None` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -270,6 +334,8 @@ GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor); * @return The `RROutput` of the specified monitor, or `None` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -284,6 +350,8 @@ GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor); * @return The `Window` of the specified window, or `None` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -350,6 +418,9 @@ GLFWAPI const char* glfwGetX11SelectionString(void); * @return The `GLXContext` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -364,6 +435,9 @@ GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window); * @return The `GLXWindow` of the specified window, or `None` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -380,6 +454,8 @@ GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* window); * @return The `struct wl_display*` used by GLFW, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -394,6 +470,8 @@ GLFWAPI struct wl_display* glfwGetWaylandDisplay(void); * @return The `struct wl_output*` of the specified monitor, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -408,6 +486,8 @@ GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor); * @return The main `struct wl_surface*` of the specified window, or `NULL` if * an [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -418,56 +498,17 @@ GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor); GLFWAPI struct wl_surface* glfwGetWaylandWindow(GLFWwindow* window); #endif -#if defined(GLFW_EXPOSE_NATIVE_MIR) -/*! @brief Returns the `MirConnection*` used by GLFW. - * - * @return The `MirConnection*` used by GLFW, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI MirConnection* glfwGetMirDisplay(void); - -/*! @brief Returns the Mir output ID of the specified monitor. - * - * @return The Mir output ID of the specified monitor, or zero if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI int glfwGetMirMonitor(GLFWmonitor* monitor); - -/*! @brief Returns the `MirWindow*` of the specified window. - * - * @return The `MirWindow*` of the specified window, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI MirWindow* glfwGetMirWindow(GLFWwindow* window); -#endif - #if defined(GLFW_EXPOSE_NATIVE_EGL) /*! @brief Returns the `EGLDisplay` used by GLFW. * * @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * + * @remark Because EGL is initialized on demand, this function will return + * `EGL_NO_DISPLAY` until the first context has been created via EGL. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -482,6 +523,9 @@ GLFWAPI EGLDisplay glfwGetEGLDisplay(void); * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -496,6 +540,9 @@ GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window); * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -519,6 +566,9 @@ GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window); * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -540,6 +590,9 @@ GLFWAPI int glfwGetOSMesaColorBuffer(GLFWwindow* window, int* width, int* height * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * @@ -554,6 +607,9 @@ GLFWAPI int glfwGetOSMesaDepthBuffer(GLFWwindow* window, int* width, int* height * @return The `OSMesaContext` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * + * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref + * GLFW_NOT_INITIALIZED. + * * @thread_safety This function may be called from any thread. Access is not * synchronized. * diff --git a/examples/others/external/lib/libglfw3.a b/examples/others/external/lib/libglfw3.a index 90e7a4759d032cb44de7e0551b3e9ed81cb9ddff..60f9e59f89276e07aac687c19f59c41103ace104 100644 GIT binary patch literal 290550 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μ$hS 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%0D5|M&mDAy|(vNRMdR1ep4X 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 Ut5PB7`@!UcQ%ews3L=Jl0V+R{f&c&j literal 269591 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%0DnGH*5m!zz$@Ff}>g_=XLXy292wLUn@s*r2@h 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