blob: 545cf4aa524ef542403b1289d23e35a02ebf64c1 [file] [log] [blame]
Camilla Berglunde248fb62013-03-29 14:06:23 +01001/*!
2
3@page news New features
4
5@tableofcontents
6
7
8@section news_30 New features in version 3.0
9
10@subsection news_30_cmake CMake build system
11
12GLFW now uses the CMake build system instead of the various makefiles and
13project files used by earlier versions. CMake is available for all platforms
14supported by GLFW, is present in most package systems and can generate
15makefiles and/or project files for most popular development environments.
16
17For more information on how to use CMake, see the
18[CMake manual](http://cmake.org/cmake/help/documentation.html).
19
20
21@subsection new_30_multiwnd Multi-window support
22
23GLFW now supports the creation of multiple windows, each with their own OpenGL
24or OpenGL ES context, and all window functions now take a window handle. Event
25callbacks are now per-window and are provided with the handle of the window that
26received the event. The @ref glfwMakeContextCurrent function has been added to
27select which context is current on a given thread.
28
29
30@subsection news_30_multimon Multi-monitor support
31
32GLFW now explicitly supports multiple monitors. They can be enumerated with
33@ref glfwGetMonitors, queried with @ref glfwGetVideoModes, @ref
34glfwGetMonitorPos, @ref glfwGetMonitorName and @ref glfwGetMonitorPhysicalSize,
Camilla Berglund8282a8f2013-04-10 23:01:12 +020035and specified at window creation to make the newly created window full screen on
Camilla Berglunde248fb62013-03-29 14:06:23 +010036that specific monitor.
37
38
39@subsection news_30_unicode Unicode support
40
41All string arguments to GLFW functions and all strings returned by GLFW use the
42UTF-8 encoding. This includes the window title, error string, clipboard text,
43monitor and joystick names as well as the extension function arguments (as ASCII
44is a subset of UTF-8).
45
46
47@subsection news_30_clipboard Clipboard text I/O
48
49GLFW now supports reading and writing plain text to and from the system
50clipboard, with the @ref glfwGetClipboardString and @ref glfwSetClipboardString
51functions.
52
53
54@subsection news_30_gamma Gamma ramp support
55
56GLFW now supports setting and reading back the gamma ramp of monitors, with the
57@ref glfwGetGammaRamp and @ref glfwSetGammaRamp functions. There is also @ref
58glfwSetGamma, which generates a ramp from a gamma value and then sets it.
59
60
61@subsection news_30_gles OpenGL ES and EGL support
62
63GLFW now supports the creation of OpenGL ES contexts, by setting the
64`GLFW_CLIENT_API` window hint to `GLFW_OPENGL_ES_API`, where creation of such
65contexts are supported. Note that GLFW *does not implement* OpenGL ES, so your
66driver must provide support in a way usable by GLFW. Modern nVidia and Intel
67drivers support creation of OpenGL ES context using the GLX and WGL APIs, while
Camilla Berglund8282a8f2013-04-10 23:01:12 +020068AMD provides an EGL implementation instead.
Camilla Berglunde248fb62013-03-29 14:06:23 +010069
Camilla Berglund8282a8f2013-04-10 23:01:12 +020070GLFW now has an (experimental) EGL context creation back end, which can be
Camilla Berglunde248fb62013-03-29 14:06:23 +010071selected through CMake options.
72
73
74@subsection news_30_error Error callback
75
76GLFW now has an error callback, which can provide your application with much
77more detailed diagnostics than was previously possible. The callback is passed
78an error code and a description string.
79
80
81@subsection news_30_wndptr Per-window user pointer
82
83Each window object has a user-defined pointer, retrieved with @ref
84glfwGetWindowUserPointer and set with @ref glfwSetWindowUserPointer, to make it
85easier to integrate GLFW into C++ code.
86
87
88@subsection news_30_iconifyfun Window iconification callback
89
90Each window object has a callback for iconification and restoration events, which is
91set with @ref glfwSetWindowIconifyCallback.
92
93
94@subsection news_30_wndposfun Window position callback
95
96Each window object has a callback for position events, which is set with @ref
97glfwSetWindowPosCallback.
98
99
100@subsection news_30_wndpos Window position query
101
102The position of a window can now be retrieved using @ref glfwGetWindowPos.
103
104
105@subsection news_30_focusfun Window focus callback
106
107Windows now have a callback for focus events, which is set with @ref
108glfwSetWindowFocusCallback.
109
110
111@subsection news_30_wndtitle Initial window title
112
113The title of a window is now specified at creation time, as one of the arguments
114to @ref glfwCreateWindow.
115
116
117@subsection news_30_hidden Hidden windows
118
119Windows can now be hidden with @ref glfwHideWindow, shown using @ref
120glfwShowWindow and created initially hidden with the `GLFW_VISIBLE` window hint.
Camilla Berglund8282a8f2013-04-10 23:01:12 +0200121This allows for off-screen rendering in a way compatible with most drivers, as
Camilla Berglunde248fb62013-03-29 14:06:23 +0100122well as moving a window to a specific position before showing it.
123
124*/