1/*! 2 3@page news New features 4 5@section news_32 New features in 3.2 6 7 8@subsection news_32_vulkan Support for Vulkan 9 10GLFW now supports basic integration with Vulkan with @ref glfwVulkanSupported, 11@ref glfwGetRequiredInstanceExtensions, @ref glfwGetInstanceProcAddress, @ref 12glfwGetPhysicalDevicePresentationSupport and @ref glfwCreateWindowSurface. 13Vulkan header inclusion can be selected with 14[GLFW_INCLUDE_VULKAN](@ref build_macros). 15 16 17@subsection news_32_setwindowmonitor Window mode switching 18 19GLFW now supports switching between windowed and full screen modes and updating 20the monitor and desired resolution and refresh rate of full screen windows with 21@ref glfwSetWindowMonitor. 22 23 24@subsection news_32_maximize Window maxmimization support 25 26GLFW now supports window maximization with @ref glfwMaximizeWindow and the 27[GLFW_MAXIMIZED](@ref window_attribs_wnd) window hint and attribute. 28 29 30@subsection news_32_focus Window input focus control 31 32GLFW now supports giving windows input focus with @ref glfwFocusWindow. 33 34 35@subsection news_32_sizelimits Window size limit support 36 37GLFW now supports setting both absolute and relative window size limits with 38@ref glfwSetWindowSizeLimits and @ref glfwSetWindowAspectRatio. 39 40 41@subsection news_32_keyname Localized key names 42 43GLFW now supports querying the localized name of printable keys with @ref 44glfwGetKeyName, either by key token or by scancode. 45 46 47@subsection news_32_waittimeout Wait for events with timeout 48 49GLFW now supports waiting for events for a set amount of time with @ref 50glfwWaitEventsTimeout. 51 52 53@subsection news_32_icon Window icon support 54 55GLFW now supports setting the icon of windows with @ref glfwSetWindowIcon. 56 57 58@subsection news_32_timer Raw timer access 59 60GLFW now supports raw timer values with @ref glfwGetTimerValue and @ref 61glfwGetTimerFrequency. 62 63 64@subsection news_32_joystick Joystick connection callback 65 66GLFW now supports notifying when a joystick has been connected or disconnected 67with @ref glfwSetJoystickCallback. 68 69 70@subsection news_32_noapi Context-less windows 71 72GLFW now supports creating windows without a OpenGL or OpenGL ES context with 73[GLFW_NO_API](@ref window_hints_ctx). 74 75 76@subsection news_32_contextapi Run-time context creation API selection 77 78GLFW now supports selecting the context creation API at run-time with the 79[GLFW_CONTEXT_CREATION_API](@ref window_hints_ctx) window hint value. 80 81 82@subsection news_32_noerror Error-free context creation 83 84GLFW now supports creating OpenGL and OpenGL ES contexts that do not emit errors 85with the [GLFW_CONTEXT_NO_ERROR](@ref window_hints_ctx) window hint, provided 86the machine supports the `GL_KHR_no_error` extension. 87 88 89@subsection news_32_cmake CMake config-file package support 90 91GLFW now supports being used as a 92[config-file package](@ref build_link_cmake_package) from other projects for 93easy linking with the library and its dependencies. 94 95 96@section news_31 New features in 3.1 97 98These are the release highlights. For a full list of changes see the 99[version history](http://www.glfw.org/changelog.html). 100 101 102@subsection news_31_cursor Custom mouse cursor images 103 104GLFW now supports creating and setting both custom cursor images and standard 105cursor shapes. They are created with @ref glfwCreateCursor or @ref 106glfwCreateStandardCursor, set with @ref glfwSetCursor and destroyed with @ref 107glfwDestroyCursor. 108 109@see @ref cursor_object 110 111 112@subsection news_31_drop Path drop event 113 114GLFW now provides a callback for receiving the paths of files and directories 115dropped onto GLFW windows. The callback is set with @ref glfwSetDropCallback. 116 117@see @ref path_drop 118 119 120@subsection news_31_emptyevent Main thread wake-up 121 122GLFW now provides the @ref glfwPostEmptyEvent function for posting an empty 123event from another thread to the main thread event queue, causing @ref 124glfwWaitEvents to return. 125 126@see @ref events 127 128 129@subsection news_31_framesize Window frame size query 130 131GLFW now supports querying the size, on each side, of the frame around the 132client area of a window, with @ref glfwGetWindowFrameSize. 133 134@see [Window size](@ref window_size) 135 136 137@subsection news_31_autoiconify Simultaneous multi-monitor rendering 138 139GLFW now supports disabling auto-iconification of full screen windows with 140the [GLFW_AUTO_ICONIFY](@ref window_hints_wnd) window hint. This is intended 141for people building multi-monitor installations, where you need windows to stay 142in full screen despite losing input focus. 143 144 145@subsection news_31_floating Floating windows 146 147GLFW now supports floating windows, also called topmost or always on top, for 148easier debugging with the [GLFW_FLOATING](@ref window_hints_wnd) window hint. 149 150 151@subsection news_31_focused Initially unfocused windows 152 153GLFW now supports preventing a windowed mode window from gaining input focus on 154creation, with the [GLFW_FOCUSED](@ref window_hints_wnd) window hint. 155 156 157@subsection news_31_direct Direct access for window attributes and cursor position 158 159GLFW now queries the window input focus, visibility and iconification attributes 160and the cursor position directly instead of returning cached data. 161 162 163@subsection news_31_charmods Character with modifiers callback 164 165GLFW now provides a callback for character events with modifier key bits. The 166callback is set with @ref glfwSetCharModsCallback. Unlike the regular character 167callback, this will report character events that will not result in a character 168being input, for example if the Control key is held down. 169 170@see @ref input_char 171 172 173@subsection news_31_single Single buffered framebuffers 174 175GLFW now supports the creation of single buffered windows, with the 176[GLFW_DOUBLEBUFFER](@ref window_hints_fb) window hint. 177 178 179@subsection news_31_glext Macro for including extension header 180 181GLFW now includes the extension header appropriate for the chosen OpenGL or 182OpenGL ES header when [GLFW_INCLUDE_GLEXT](@ref build_macros) is defined. GLFW 183does not provide these headers. They must be provided by your development 184environment or your OpenGL or OpenGL ES SDK. 185 186 187@subsection news_31_release Context release behaviors 188 189GLFW now supports controlling whether the pipeline is flushed when a context is 190made non-current, with the 191[GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref window_hints_ctx) window hint, provided the 192machine supports the `GL_KHR_context_flush_control` extension. 193 194 195@subsection news_31_wayland (Experimental) Wayland support 196 197GLFW now has an _experimental_ Wayland display protocol backend that can be 198selected on Linux with a CMake option. 199 200 201@subsection news_31_mir (Experimental) Mir support 202 203GLFW now has an _experimental_ Mir display server backend that can be selected 204on Linux with a CMake option. 205 206 207@section news_30 New features in 3.0 208 209These are the release highlights. For a full list of changes see the 210[version history](http://www.glfw.org/changelog.html). 211 212 213@subsection news_30_cmake CMake build system 214 215GLFW now uses the CMake build system instead of the various makefiles and 216project files used by earlier versions. CMake is available for all platforms 217supported by GLFW, is present in most package systems and can generate 218makefiles and/or project files for most popular development environments. 219 220For more information on how to use CMake, see the 221[CMake manual](http://cmake.org/cmake/help/documentation.html). 222 223 224@subsection news_30_multiwnd Multi-window support 225 226GLFW now supports the creation of multiple windows, each with their own OpenGL 227or OpenGL ES context, and all window functions now take a window handle. Event 228callbacks are now per-window and are provided with the handle of the window that 229received the event. The @ref glfwMakeContextCurrent function has been added to 230select which context is current on a given thread. 231 232 233@subsection news_30_multimon Multi-monitor support 234 235GLFW now explicitly supports multiple monitors. They can be enumerated with 236@ref glfwGetMonitors, queried with @ref glfwGetVideoModes, @ref 237glfwGetMonitorPos, @ref glfwGetMonitorName and @ref glfwGetMonitorPhysicalSize, 238and specified at window creation to make the newly created window full screen on 239that specific monitor. 240 241 242@subsection news_30_unicode Unicode support 243 244All string arguments to GLFW functions and all strings returned by GLFW now use 245the UTF-8 encoding. This includes the window title, error string, clipboard 246text, monitor and joystick names as well as the extension function arguments (as 247ASCII is a subset of UTF-8). 248 249 250@subsection news_30_clipboard Clipboard text I/O 251 252GLFW now supports reading and writing plain text to and from the system 253clipboard, with the @ref glfwGetClipboardString and @ref glfwSetClipboardString 254functions. 255 256 257@subsection news_30_gamma Gamma ramp support 258 259GLFW now supports setting and reading back the gamma ramp of monitors, with the 260@ref glfwGetGammaRamp and @ref glfwSetGammaRamp functions. There is also @ref 261glfwSetGamma, which generates a ramp from a gamma value and then sets it. 262 263 264@subsection news_30_gles OpenGL ES support 265 266GLFW now supports the creation of OpenGL ES contexts, by setting the 267`GLFW_CLIENT_API` window hint to `GLFW_OPENGL_ES_API`, where creation of such 268contexts are supported. Note that GLFW _does not implement_ OpenGL ES, so your 269driver must provide support in a way usable by GLFW. Modern Nvidia and Intel 270drivers support creation of OpenGL ES context using the GLX and WGL APIs, while 271AMD provides an EGL implementation instead. 272 273 274@subsection news_30_egl (Experimental) EGL support 275 276GLFW now has an experimental EGL context creation back end that can be selected 277through CMake options. 278 279 280@subsection news_30_hidpi High-DPI support 281 282GLFW now supports high-DPI monitors on both Windows and OS X, giving windows full 283resolution framebuffers where other UI elements are scaled up. To achieve this, 284@ref glfwGetFramebufferSize and @ref glfwSetFramebufferSizeCallback have been 285added. These work with pixels, while the rest of the GLFW API works with screen 286coordinates. This is important as OpenGL uses pixels, not screen coordinates. 287 288 289@subsection news_30_error Error callback 290 291GLFW now has an error callback, which can provide your application with much 292more detailed diagnostics than was previously possible. The callback is passed 293an error code and a description string. 294 295 296@subsection news_30_wndptr Per-window user pointer 297 298Each window now has a user-defined pointer, retrieved with @ref 299glfwGetWindowUserPointer and set with @ref glfwSetWindowUserPointer, to make it 300easier to integrate GLFW into C++ code. 301 302 303@subsection news_30_iconifyfun Window iconification callback 304 305Each window now has a callback for iconification and restoration events, 306which is set with @ref glfwSetWindowIconifyCallback. 307 308 309@subsection news_30_wndposfun Window position callback 310 311Each window now has a callback for position events, which is set with @ref 312glfwSetWindowPosCallback. 313 314 315@subsection news_30_wndpos Window position query 316 317The position of a window can now be retrieved using @ref glfwGetWindowPos. 318 319 320@subsection news_30_focusfun Window focus callback 321 322Each windows now has a callback for focus events, which is set with @ref 323glfwSetWindowFocusCallback. 324 325 326@subsection news_30_enterleave Cursor enter/leave callback 327 328Each window now has a callback for when the mouse cursor enters or leaves its 329client area, which is set with @ref glfwSetCursorEnterCallback. 330 331 332@subsection news_30_wndtitle Initial window title 333 334The title of a window is now specified at creation time, as one of the arguments 335to @ref glfwCreateWindow. 336 337 338@subsection news_30_hidden Hidden windows 339 340Windows can now be hidden with @ref glfwHideWindow, shown using @ref 341glfwShowWindow and created initially hidden with the `GLFW_VISIBLE` window hint. 342This allows for off-screen rendering in a way compatible with most drivers, as 343well as moving a window to a specific position before showing it. 344 345 346@subsection news_30_undecorated Undecorated windows 347 348Windowed mode windows can now be created without decorations, e.g. things like 349a frame, a title bar, with the `GLFW_DECORATED` window hint. This allows for 350the creation of things like splash screens. 351 352 353@subsection news_30_keymods Modifier key bit masks 354 355[Modifier key bit mask](@ref mods) parameters have been added to the 356[mouse button](@ref GLFWmousebuttonfun) and [key](@ref GLFWkeyfun) callbacks. 357 358 359@subsection news_30_scancode Platform-specific scancodes 360 361A scancode parameter has been added to the [key callback](@ref GLFWkeyfun). Keys 362that don't have a [key token](@ref keys) still get passed on with the key 363parameter set to `GLFW_KEY_UNKNOWN`. These scancodes will vary between machines 364and are intended to be used for key bindings. 365 366 367@subsection news_30_jsname Joystick names 368 369The name of a joystick can now be retrieved using @ref glfwGetJoystickName. 370 371 372@subsection news_30_doxygen Doxygen documentation 373 374You are reading it. 375 376*/ 377