• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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