| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494 |
- /*!
- @page news Release notes
- @section news_33 Release notes for 3.3
- @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_inithint Support for initialization hints
- GLFW now supports setting library initialization hints with @ref glfwInitHint
- or @ref glfwInitHintString. 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_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_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](https://moltengl.com/moltenvk/).
- @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.
- @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](http://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
- client 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](http://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](http://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
- client 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.
- */
|