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