You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							483 lines
						
					
					
						
							16 KiB
						
					
					
				
			
		
		
	
	
							483 lines
						
					
					
						
							16 KiB
						
					
					
				/*! | 
						|
 | 
						|
@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_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. | 
						|
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. | 
						|
 | 
						|
*/
 | 
						|
 |