| /*! |
| |
| @page news Release notes |
| |
| @section news_33 Release notes for 3.3 |
| |
| @subsection news_33_focusonshow GLFW_FOCUS_ON_SHOW window hint and attribute |
| |
| GLFW now supports the [GLFW_FOCUS_ON_SHOW](@ref GLFW_DECORATED_hint) window hint |
| and attribute for controlling input focus when calling @ref glfwShowWindow |
| |
| @see @ref window_hide |
| |
| @subsection news_33_geterror Error query |
| |
| GLFW now supports querying the last error code for the calling thread and its |
| human-readable description with @ref glfwGetError. |
| |
| @see @ref error_handling |
| |
| |
| @subsection news_33_gamepad SDL_GameControllerDB support and gamepad input |
| |
| GLFW now supports remapping of gamepads and controllers to a 360-like controller |
| layout with @ref glfwJoystickIsGamepad, @ref glfwGetJoystickGUID, @ref |
| glfwGetGamepadName, @ref glfwGetGamepadState and @ref glfwUpdateGamepadMappings, |
| and the input state struct @ref GLFWgamepadstate. |
| |
| @sa @ref gamepad |
| |
| |
| @subsection news_33_attention User attention request |
| |
| GLFW now supports requesting user attention to a specific window (on macOS to |
| the application as a whole) with @ref glfwRequestWindowAttention. |
| |
| @see @ref window_attention |
| |
| |
| @subsection news_33_maximize Window maximization callback |
| |
| GLFW now supports notifying the application that the window has been maximized |
| @ref glfwSetWindowMaximizeCallback. |
| |
| @see @ref window_maximize |
| |
| |
| @subsection news_33_keyscancode Platform-specific key scancode query |
| |
| GLFW now supports querying the platform dependent scancode of any physical key |
| with @ref glfwGetKeyScancode. |
| |
| @see @ref input_key |
| |
| |
| @subsection news_33_setwindowattrib Support for updating window attributes |
| |
| GLFW now supports changing the [GLFW_DECORATED](@ref GLFW_DECORATED_attrib), |
| [GLFW_RESIZABLE](@ref GLFW_RESIZABLE_attrib), |
| [GLFW_FLOATING](@ref GLFW_FLOATING_attrib) and |
| [GLFW_AUTO_ICONIFY](@ref GLFW_AUTO_ICONIFY_attrib) attributes for existing |
| windows with @ref glfwSetWindowAttrib. |
| |
| @see @ref window_attribs |
| |
| |
| @subsection news_33_contentscale Content scale queries for DPI-aware rendering |
| |
| GLFW now supports querying the window and monitor content scale, i.e. the ratio |
| between the current DPI and the platform's default DPI, with @ref |
| glfwGetWindowContentScale and @ref glfwGetMonitorContentScale. |
| |
| Changes of the content scale of a window can be received with the window content |
| scale callback, set with @ref glfwSetWindowContentScaleCallback. |
| |
| The @ref GLFW_SCALE_TO_MONITOR window hint enables automatic resizing of a |
| window by the content scale of the monitor it is placed, on platforms like |
| Windows and X11 where this is necessary. |
| |
| @see @ref window_scale |
| |
| |
| @subsection news_33_inithint Support for initialization hints |
| |
| GLFW now supports setting library initialization hints with @ref glfwInitHint. |
| These must be set before initialization to take effect. |
| |
| @see @ref init_hints |
| |
| |
| @subsection news_33_platformhints Support for platform specific hints |
| |
| GLFW now supports platform specific init and window hints to control system |
| features that are only available on a single platform. |
| |
| @see @ref init_hints_osx |
| @see @ref window_hints_osx |
| |
| |
| @subsection news_33_joyhats Support for joystick hats |
| |
| GLFW now supports querying the hats (or POVs or D-pads) of a joystick with @ref |
| glfwGetJoystickHats. Hats are by default also exposed as buttons, but this can |
| be disabled with the @ref GLFW_JOYSTICK_HAT_BUTTONS init hint. |
| |
| @see @ref joystick_hat |
| |
| |
| @subsection news_33_transparent Support for transparent windows and framebuffers |
| |
| GLFW now supports the creation of windows with transparent framebuffers on |
| systems with desktop compositing enabled with the @ref |
| GLFW_TRANSPARENT_FRAMEBUFFER window hint and attribute. This hint must be set |
| before window creation and leaves any window decorations opaque. |
| |
| GLFW now also supports whole window transparency with @ref glfwGetWindowOpacity |
| and @ref glfwSetWindowOpacity. This value controls the opacity of the whole |
| window including decorations and unlike framebuffer transparency can be changed |
| at any time after window creation. |
| |
| |
| @subsection news_33_centercursor Cursor centering window hint |
| |
| GLFW now supports controlling whether the cursor is centered over newly created |
| full screen windows with the [GLFW_CENTER_CURSOR](@ref GLFW_CENTER_CURSOR_hint) |
| window hint. It is enabled by default. |
| |
| |
| @subsection news_33_hover Mouse cursor hover window attribute |
| |
| GLFW now supports polling whether the cursor is hovering over the window content |
| area with the [GLFW_HOVERED](@ref GLFW_HOVERED_attrib) window attribute. This |
| attribute corresponds to the [cursor enter/leave](@ref cursor_enter) event. |
| |
| |
| @subsection news_33_rawmotion Support for raw mouse motion |
| |
| GLFW now uses raw (unscaled and unaccelerated) mouse motion in disabled cursor |
| mode on platforms where this is available, specifically Windows and X11. |
| |
| |
| @subsection news_33_moltenvk Support for Vulkan on macOS via MoltenVK |
| |
| GLFW now supports the `VK_MVK_macos_surface` window surface creation extension |
| provided by MoltenVK in the [LunarG Vulkan SDK](https://vulkan.lunarg.com/). |
| |
| @see @ref vulkan_guide |
| |
| |
| @subsection news_33_osmesa OSMesa backend for headless software rendering |
| |
| GLFW now supports creating offscreen OpenGL contexts using |
| [OSMesa](https://www.mesa3d.org/osmesa.html) by setting |
| [GLFW_CONTEXT_CREATION_API](@ref GLFW_CONTEXT_CREATION_API_hint) to |
| `GLFW_OSMESA_CONTEXT_API`. |
| |
| There is also a new null backend that uses OSMesa as its native context |
| creation API, intended for automated testing. This backend does not provide |
| input. |
| |
| |
| @subsection news_33_userptr Monitor and joystick user pointers |
| |
| GLFW now supports setting and querying user pointers for connected monitors and |
| joysticks with @ref glfwSetMonitorUserPointer, @ref glfwGetMonitorUserPointer, |
| @ref glfwSetJoystickUserPointer and @ref glfwGetJoystickUserPointer. |
| |
| |
| @subsection news_33_primary X11 primary selection access |
| |
| GLFW now supports querying and setting the X11 primary selection via the native |
| access functions @ref glfwGetX11SelectionString and @ref |
| glfwSetX11SelectionString. |
| |
| |
| @subsection news_33_mir_removal Experimental Mir support has been removed |
| |
| As per the release of Mir 1.0, the recommended API is now Wayland, the |
| experimental Mir display server backend introduced in GLFW 3.1 has thus been |
| removed. To use the experimental Wayland backend, pass -DGLFW_USE_WAYLAND=ON |
| to cmake where you previously passed the now-removed -DGLFW_USE_MIR=ON. |
| |
| |
| @section news_32 Release notes for 3.2 |
| |
| |
| @subsection news_32_vulkan Support for Vulkan |
| |
| GLFW now supports basic integration with Vulkan with @ref glfwVulkanSupported, |
| @ref glfwGetRequiredInstanceExtensions, @ref glfwGetInstanceProcAddress, @ref |
| glfwGetPhysicalDevicePresentationSupport and @ref glfwCreateWindowSurface. |
| Vulkan header inclusion can be selected with |
| @ref GLFW_INCLUDE_VULKAN. |
| |
| |
| @subsection news_32_setwindowmonitor Window mode switching |
| |
| GLFW now supports switching between windowed and full screen modes and updating |
| the monitor and desired resolution and refresh rate of full screen windows with |
| @ref glfwSetWindowMonitor. |
| |
| |
| @subsection news_32_maximize Window maxmimization support |
| |
| GLFW now supports window maximization with @ref glfwMaximizeWindow and the |
| @ref GLFW_MAXIMIZED window hint and attribute. |
| |
| |
| @subsection news_32_focus Window input focus control |
| |
| GLFW now supports giving windows input focus with @ref glfwFocusWindow. |
| |
| |
| @subsection news_32_sizelimits Window size limit support |
| |
| GLFW now supports setting both absolute and relative window size limits with |
| @ref glfwSetWindowSizeLimits and @ref glfwSetWindowAspectRatio. |
| |
| |
| @subsection news_32_keyname Localized key names |
| |
| GLFW now supports querying the localized name of printable keys with @ref |
| glfwGetKeyName, either by key token or by scancode. |
| |
| |
| @subsection news_32_waittimeout Wait for events with timeout |
| |
| GLFW now supports waiting for events for a set amount of time with @ref |
| glfwWaitEventsTimeout. |
| |
| |
| @subsection news_32_icon Window icon support |
| |
| GLFW now supports setting the icon of windows with @ref glfwSetWindowIcon. |
| |
| |
| @subsection news_32_timer Raw timer access |
| |
| GLFW now supports raw timer values with @ref glfwGetTimerValue and @ref |
| glfwGetTimerFrequency. |
| |
| |
| @subsection news_32_joystick Joystick connection callback |
| |
| GLFW now supports notifying when a joystick has been connected or disconnected |
| with @ref glfwSetJoystickCallback. |
| |
| |
| @subsection news_32_noapi Context-less windows |
| |
| GLFW now supports creating windows without a OpenGL or OpenGL ES context by |
| setting the [GLFW_CLIENT_API](@ref GLFW_CLIENT_API_hint) hint to `GLFW_NO_API`. |
| |
| |
| @subsection news_32_contextapi Run-time context creation API selection |
| |
| GLFW now supports selecting and querying the context creation API at run-time |
| with the @ref GLFW_CONTEXT_CREATION_API hint and attribute. |
| |
| |
| @subsection news_32_noerror Error-free context creation |
| |
| GLFW now supports creating and querying OpenGL and OpenGL ES contexts that do |
| not emit errors with the @ref GLFW_CONTEXT_NO_ERROR hint, provided the machine |
| supports the `GL_KHR_no_error` extension. |
| |
| |
| @subsection news_32_cmake CMake config-file package support |
| |
| GLFW now supports being used as a |
| [config-file package](@ref build_link_cmake_package) from other projects for |
| easy linking with the library and its dependencies. |
| |
| |
| @section news_31 Release notes for 3.1 |
| |
| These are the release highlights. For a full list of changes see the |
| [version history](https://www.glfw.org/changelog.html). |
| |
| |
| @subsection news_31_cursor Custom mouse cursor images |
| |
| GLFW now supports creating and setting both custom cursor images and standard |
| cursor shapes. They are created with @ref glfwCreateCursor or @ref |
| glfwCreateStandardCursor, set with @ref glfwSetCursor and destroyed with @ref |
| glfwDestroyCursor. |
| |
| @see @ref cursor_object |
| |
| |
| @subsection news_31_drop Path drop event |
| |
| GLFW now provides a callback for receiving the paths of files and directories |
| dropped onto GLFW windows. The callback is set with @ref glfwSetDropCallback. |
| |
| @see @ref path_drop |
| |
| |
| @subsection news_31_emptyevent Main thread wake-up |
| |
| GLFW now provides the @ref glfwPostEmptyEvent function for posting an empty |
| event from another thread to the main thread event queue, causing @ref |
| glfwWaitEvents to return. |
| |
| @see @ref events |
| |
| |
| @subsection news_31_framesize Window frame size query |
| |
| GLFW now supports querying the size, on each side, of the frame around the |
| content area of a window, with @ref glfwGetWindowFrameSize. |
| |
| @see [Window size](@ref window_size) |
| |
| |
| @subsection news_31_autoiconify Simultaneous multi-monitor rendering |
| |
| GLFW now supports disabling auto-iconification of full screen windows with |
| the [GLFW_AUTO_ICONIFY](@ref GLFW_AUTO_ICONIFY_hint) window hint. This is |
| intended for people building multi-monitor installations, where you need windows |
| to stay in full screen despite losing input focus. |
| |
| |
| @subsection news_31_floating Floating windows |
| |
| GLFW now supports floating windows, also called topmost or always on top, for |
| easier debugging with the @ref GLFW_FLOATING window hint and attribute. |
| |
| |
| @subsection news_31_focused Initially unfocused windows |
| |
| GLFW now supports preventing a windowed mode window from gaining input focus on |
| creation, with the [GLFW_FOCUSED](@ref GLFW_FOCUSED_hint) window hint. |
| |
| |
| @subsection news_31_direct Direct access for window attributes and cursor position |
| |
| GLFW now queries the window input focus, visibility and iconification attributes |
| and the cursor position directly instead of returning cached data. |
| |
| |
| @subsection news_31_charmods Character with modifiers callback |
| |
| GLFW now provides a callback for character events with modifier key bits. The |
| callback is set with @ref glfwSetCharModsCallback. Unlike the regular character |
| callback, this will report character events that will not result in a character |
| being input, for example if the Control key is held down. |
| |
| @see @ref input_char |
| |
| |
| @subsection news_31_single Single buffered framebuffers |
| |
| GLFW now supports the creation of single buffered windows, with the @ref |
| GLFW_DOUBLEBUFFER hint. |
| |
| |
| @subsection news_31_glext Macro for including extension header |
| |
| GLFW now includes the extension header appropriate for the chosen OpenGL or |
| OpenGL ES header when @ref GLFW_INCLUDE_GLEXT is defined. GLFW does not provide |
| these headers. They must be provided by your development environment or your |
| OpenGL or OpenGL ES SDK. |
| |
| |
| @subsection news_31_release Context release behaviors |
| |
| GLFW now supports controlling and querying whether the pipeline is flushed when |
| a context is made non-current, with the @ref GLFW_CONTEXT_RELEASE_BEHAVIOR hint |
| and attribute, provided the machine supports the `GL_KHR_context_flush_control` |
| extension. |
| |
| |
| @subsection news_31_wayland (Experimental) Wayland support |
| |
| GLFW now has an _experimental_ Wayland display protocol backend that can be |
| selected on Linux with a CMake option. |
| |
| |
| @subsection news_31_mir (Experimental) Mir support |
| |
| GLFW now has an _experimental_ Mir display server backend that can be selected |
| on Linux with a CMake option. |
| |
| |
| @section news_30 Release notes for 3.0 |
| |
| These are the release highlights. For a full list of changes see the |
| [version history](https://www.glfw.org/changelog.html). |
| |
| |
| @subsection news_30_cmake CMake build system |
| |
| GLFW now uses the CMake build system instead of the various makefiles and |
| project files used by earlier versions. CMake is available for all platforms |
| supported by GLFW, is present in most package systems and can generate |
| makefiles and/or project files for most popular development environments. |
| |
| For more information on how to use CMake, see the |
| [CMake manual](https://cmake.org/cmake/help/documentation.html). |
| |
| |
| @subsection news_30_multiwnd Multi-window support |
| |
| GLFW now supports the creation of multiple windows, each with their own OpenGL |
| or OpenGL ES context, and all window functions now take a window handle. Event |
| callbacks are now per-window and are provided with the handle of the window that |
| received the event. The @ref glfwMakeContextCurrent function has been added to |
| select which context is current on a given thread. |
| |
| |
| @subsection news_30_multimon Multi-monitor support |
| |
| GLFW now explicitly supports multiple monitors. They can be enumerated with |
| @ref glfwGetMonitors, queried with @ref glfwGetVideoModes, @ref |
| glfwGetMonitorPos, @ref glfwGetMonitorName and @ref glfwGetMonitorPhysicalSize, |
| and specified at window creation to make the newly created window full screen on |
| that specific monitor. |
| |
| |
| @subsection news_30_unicode Unicode support |
| |
| All string arguments to GLFW functions and all strings returned by GLFW now use |
| the UTF-8 encoding. This includes the window title, error string, clipboard |
| text, monitor and joystick names as well as the extension function arguments (as |
| ASCII is a subset of UTF-8). |
| |
| |
| @subsection news_30_clipboard Clipboard text I/O |
| |
| GLFW now supports reading and writing plain text to and from the system |
| clipboard, with the @ref glfwGetClipboardString and @ref glfwSetClipboardString |
| functions. |
| |
| |
| @subsection news_30_gamma Gamma ramp support |
| |
| GLFW now supports setting and reading back the gamma ramp of monitors, with the |
| @ref glfwGetGammaRamp and @ref glfwSetGammaRamp functions. There is also @ref |
| glfwSetGamma, which generates a ramp from a gamma value and then sets it. |
| |
| |
| @subsection news_30_gles OpenGL ES support |
| |
| GLFW now supports the creation of OpenGL ES contexts, by setting the |
| [GLFW_CLIENT_API](@ref GLFW_CLIENT_API_hint) hint to `GLFW_OPENGL_ES_API`, where |
| creation of such contexts are supported. Note that GLFW _does not implement_ |
| OpenGL ES, so your driver must provide support in a way usable by GLFW. Modern |
| Nvidia and Intel drivers support creation of OpenGL ES context using the GLX and |
| WGL APIs, while AMD provides an EGL implementation instead. |
| |
| |
| @subsection news_30_egl (Experimental) EGL support |
| |
| GLFW now has an experimental EGL context creation back end that can be selected |
| through CMake options. |
| |
| |
| @subsection news_30_hidpi High-DPI support |
| |
| GLFW now supports high-DPI monitors on both Windows and macOS, giving windows |
| full resolution framebuffers where other UI elements are scaled up. To achieve |
| this, @ref glfwGetFramebufferSize and @ref glfwSetFramebufferSizeCallback have |
| been added. These work with pixels, while the rest of the GLFW API works with |
| screen coordinates. This is important as OpenGL uses pixels, not screen |
| coordinates. |
| |
| |
| @subsection news_30_error Error callback |
| |
| GLFW now has an error callback, which can provide your application with much |
| more detailed diagnostics than was previously possible. The callback is passed |
| an error code and a description string. |
| |
| |
| @subsection news_30_wndptr Per-window user pointer |
| |
| Each window now has a user-defined pointer, retrieved with @ref |
| glfwGetWindowUserPointer and set with @ref glfwSetWindowUserPointer, to make it |
| easier to integrate GLFW into C++ code. |
| |
| |
| @subsection news_30_iconifyfun Window iconification callback |
| |
| Each window now has a callback for iconification and restoration events, |
| which is set with @ref glfwSetWindowIconifyCallback. |
| |
| |
| @subsection news_30_wndposfun Window position callback |
| |
| Each window now has a callback for position events, which is set with @ref |
| glfwSetWindowPosCallback. |
| |
| |
| @subsection news_30_wndpos Window position query |
| |
| The position of a window can now be retrieved using @ref glfwGetWindowPos. |
| |
| |
| @subsection news_30_focusfun Window focus callback |
| |
| Each windows now has a callback for focus events, which is set with @ref |
| glfwSetWindowFocusCallback. |
| |
| |
| @subsection news_30_enterleave Cursor enter/leave callback |
| |
| Each window now has a callback for when the mouse cursor enters or leaves its |
| content area, which is set with @ref glfwSetCursorEnterCallback. |
| |
| |
| @subsection news_30_wndtitle Initial window title |
| |
| The title of a window is now specified at creation time, as one of the arguments |
| to @ref glfwCreateWindow. |
| |
| |
| @subsection news_30_hidden Hidden windows |
| |
| Windows can now be hidden with @ref glfwHideWindow, shown using @ref |
| glfwShowWindow and created initially hidden with the @ref GLFW_VISIBLE window |
| hint and attribute. This allows for off-screen rendering in a way compatible |
| with most drivers, as well as moving a window to a specific position before |
| showing it. |
| |
| |
| @subsection news_30_undecorated Undecorated windows |
| |
| Windowed mode windows can now be created without decorations, e.g. things like |
| a frame, a title bar, with the @ref GLFW_DECORATED window hint and attribute. |
| This allows for the creation of things like splash screens. |
| |
| |
| @subsection news_30_keymods Modifier key bit masks |
| |
| [Modifier key bit mask](@ref mods) parameters have been added to the |
| [mouse button](@ref GLFWmousebuttonfun) and [key](@ref GLFWkeyfun) callbacks. |
| |
| |
| @subsection news_30_scancode Platform-specific scancodes |
| |
| A scancode parameter has been added to the [key callback](@ref GLFWkeyfun). Keys |
| that don't have a [key token](@ref keys) still get passed on with the key |
| parameter set to `GLFW_KEY_UNKNOWN`. These scancodes will vary between machines |
| and are intended to be used for key bindings. |
| |
| |
| @subsection news_30_jsname Joystick names |
| |
| The name of a joystick can now be retrieved using @ref glfwGetJoystickName. |
| |
| |
| @subsection news_30_doxygen Doxygen documentation |
| |
| You are reading it. |
| |
| */ |