news.dox 12.4 KB
Newer Older
Nick Sharp's avatar
Nick Sharp committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
/*!

@page news New features

@section news_32 New features in 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
[GLFW_INCLUDE_VULKAN](@ref build_macros).


@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
[GLFW_MAXIMIZED](@ref window_attribs_wnd) 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 with
[GLFW_NO_API](@ref window_hints_ctx).


@subsection news_32_contextapi Run-time context creation API selection

GLFW now supports selecting the context creation API at run-time with the
[GLFW_CONTEXT_CREATION_API](@ref window_hints_ctx) window hint value.


@subsection news_32_noerror Error-free context creation

GLFW now supports creating OpenGL and OpenGL ES contexts that do not emit errors
with the [GLFW_CONTEXT_NO_ERROR](@ref window_hints_ctx) window 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 New features in 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 window_hints_wnd) 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 [GLFW_FLOATING](@ref window_hints_wnd) window hint.


@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 window_hints_wnd) 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
[GLFW_DOUBLEBUFFER](@ref window_hints_fb) window 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 [GLFW_INCLUDE_GLEXT](@ref build_macros) 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 whether the pipeline is flushed when a context is
made non-current, with the
[GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref window_hints_ctx) window hint, 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 New features in 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` window 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 OS X, 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 `GLFW_VISIBLE` window hint.
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 `GLFW_DECORATED` window hint.  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.

*/