msvcrt: Return error if last known character is further in the string then current...
[wine.git] / ANNOUNCE
bloba8a4831e8d6bc5ad288a8f23c3d588be0aeb8acc
1 The Wine team is proud to announce that the stable release Wine 1.8
2 is now available.
4 This release represents 17 months of development effort and around
5 13,000 individual changes. The main highlights are the implementation
6 of DirectWrite and Direct2D, and the new Pulse Audio driver.
8 It also contains a lot of improvements across the board, as well as
9 support for many new applications and games. See the release notes
10 below for a summary of the major changes.
12 The source is available from the following locations:
14   http://dl.winehq.org/wine/source/1.8/wine-1.8.tar.bz2
15   http://mirrors.ibiblio.org/wine/source/1.8/wine-1.8.tar.bz2
17 Binary packages for various distributions will be available from:
19   http://www.winehq.org/download
21 You will find documentation on http://www.winehq.org/documentation
23 You can also get the current source directly from the git
24 repository. Check http://www.winehq.org/git for details.
26 Wine is available thanks to the work of many people. See the file
27 AUTHORS in the distribution for the complete list.
29 ----------------------------------------------------------------
31 What's new in Wine 1.8
32 ======================
35 *** Text and fonts
37 - DirectWrite is implemented, and works for a number of
38   applications. The implemented functionality includes:
39   - Font file loading from system or custom font collections.
40   - Building font families by combining similar font faces.
41   - Font matching algorithm using weight/width/slope model.
42   - Basic text layout support.
43   - Bi-directional level resolution and line breaks resolution.
44   - GDI interoperability API, including rendering to DIB section base target.
45   - Rendering to arbitrary target with generic rendering interface.
46   - Generating black&white and grayscale alpha bitmaps.
48 - Bold glyphs can be synthesized for outline fonts.
50 - Multiple replacements can be specified for a single font by using a
51   multi-string entry under HKCU\Software\Wine\Fonts\Replacements.
53 - Vertical text uses the Unicode data tables for more accurate
54   character ranges support.
56 - Character tables are based on version 8.0.0 of the Unicode Standard.
58 - The built-in Wingdings font contains more glyphs.
60 - Unicode bracketing pairs are supported in Uniscribe.
62 - The RichEdit control uses Uniscribe for more accurate text rendering.
64 - Hebrew and Arabic Mac OS code pages are supported. This improves
65   support for loading translated font names from Mac OS font files.
68 *** Graphics
70 - Direct2D is supported. Among the implemented features are:
71   - DXGI surface and WIC bitmap render targets.
72   - Geometries defined by straight lines and cubic Bézier curves.
73   - Drawing text.
74   - Bitmaps.
75   - Solid color brushes and bitmap brushes.
76   - Opacity brushes.
78 - PNG files can be encoded in interlaced mode.
80 - Gamma information can be loaded from PNG files.
82 - Animated GIFs are correctly supported in GdiPlus.
85 *** Direct3D
87 - Direct3D 11 is supported, to about the same level as Direct3D 10.
89 - Simple applications using Direct3D 10 are supported. There are still
90   many unimplemented features.  Direct3D 10 requires support for at
91   least OpenGL 3.2 and GLSL 1.50. Some of the changes and supported
92   features include:
93   - Several resource update operations are implemented.
94   - Many more shader model 4 opcode are recognized.
95   - Constant buffers are supported.
96   - The various resource views are implemented.
97   - The various state objects are implemented.
98   - Stateblocks are implemented.
100 - A number of new DXGI 1.1 interfaces are implemented. This benefits Direct3D
101   10 and 11 applications.
103 - Direct3D applications correctly minimize and restore the display
104   mode on focus loss.
106 - Fixed function vertex blending is implemented. This requires GLSL support.
108 - Per-vertex point sizes are supported. This requires GLSL support.
110 - The wined3d graphics card database recognizes more graphics
111   cards. The graphics card detection code is simplified and
112   improved. More reasonable fallbacks are picked for unrecognized
113   graphics cards.
115 - On drivers that support it, GL_ARB_texture_mirror_clamp_to_edge or
116   GL_EXT_texture_mirror_clamp are used to implement the "mirror once"
117   texture addressing mode. Previously this required
118   GL_ATI_texture_mirror_once.
120 - GL_ARB_depth_clamp is no longer required to correctly draw pre-transformed
121   vertices with disabled z-buffering. This helps older graphics cards that
122   can't correctly implement GL_ARB_depth_clamp.
124 - On drivers that support it, GL_ARB_blend_func_extended is used to
125   implement the D3DBLEND_SRCALPHASAT blend factor.
127 - On drivers that support it, GL_ARB_sampler_objects is used to apply
128   sampler states independently of the texture object they apply
129   to. This helps applications that bind the same texture to multiple
130   texture stages, but with different sampler states.
132 - On drivers that support it, GL_EXT_texture_snorm is used to support
133   signed (normalized) texture formats. These are typically used for
134   bump mapping. Previously these formats required either
135   GL_NV_texture_shader, or fixups when loading and using them.
137 - On drivers that support is, GL_ARB_timer_query is used to support
138   Direct3D 9 timestamp queries.
140 - Texture format restrictions are more strictly enforced. This allows
141   applications to fall back to a different format instead of continuing with
142   broken rendering.
144 - Direct3D 9 D3DTSS_CONSTANT texture stage constants are supported.
146 - Color keyed blits can be done by the graphics card. Previously these
147   needed to be done by the CPU.
149 - NV12 surfaces are supported. This is used by some applications for
150   playing back video.
152 - ATI1N textures and surfaces are supported, in addition to ATI2N
153   textures and surfaces. This requires support for
154   GL_ARB_texture_compression_rgtc from the OpenGL driver.
156 - When GLSL is supported, lighting for Direct3D 1-3 is more
157   correct. However, for most application the difference will only be
158   very slight.
160 - The IDirect3DSwapChain9Ex interface is supported.
162 - OpenGL core contexts, OpenGL ES contexts, and multi-threaded OpenGL
163   command submission (known as "CSMT") have been added, however that
164   work is not finished yet.
167 *** DirectDraw
169 - SetCooperativeLevel() works better, affecting DirectDraw exclusive
170   mode in particular.
172 - DirectDraw surface flipping is more correct. This affects applications that
173   use more than 1 back buffer in particular.
175 - DirectDraw palette handling is better supported. This mostly affects
176   older applications using 8-bpp display modes (but not exclusively.)
178 - "Client memory" surfaces are better supported, in particular related
179   to the handling of pitch and texture compression.
182 *** Audio and video
184 - A Pulse Audio driver is implemented. It is selected automatically
185   when Pulse Audio is running.
187 - 5.1 surround sound is supported in DirectSound. Stereo is the
188   default, but other speaker configurations can be set through the
189   Audio tab in Winecfg.
191 - XAudio2 is implemented, based on the OpenAL Soft library.
193 - The OpenAL library defaults to the native version.
195 - The Video Mixing Renderer version 7 is implemented.
197 - AVI file encoding and compression is implemented.
200 *** Kernel
202 - Wine can be configured to report the Windows version as 'Windows
203   8.1' and 'Windows 10'.
205 - Keyed event synchronization objects are implemented.
207 - The "init once" synchronization mechanism is supported.
209 - Condition variables are implemented.
211 - Slim Reader/Writer locks are implemented.
213 - Activation contexts are used for loading DLLs, type libraries, and
214   COM classes, avoiding the need for explicit registration.
216 - Windows devices support read and write operations in addition to I/O
217   controls. They can be remapped directly to existing Unix devices.
219 - Thread local storage is supported in dynamically loaded libraries.
221 - Process jobs are implemented.
223 - The Task Scheduler service is implemented.
225 - The UTF-7 encoding is supported.
227 - ATL thunk emulation supports a wider range of possible instructions.
229 - Process and thread affinity is supported even with a large number of
230   processors.
232 - Dynamic DST (Daylight Saving Time) is supported through the
233   registry. Timezone data is updated for a number of timezones.
235 - USER_SHARED_DATA access is emulated on x86-64 platforms.
237 - The new thread pool API is supported.
239 - OpenMP (parallel programming API) is implemented.
241 - Preliminary support for HID devices is implemented, but it's not
242   enabled yet.
245 *** User interface
247 - There is an optional Start Menu in desktop mode, that can be enabled
248   on a per-desktop basis by setting "EnableShell" to "Y" under
249   HKCU\Software\Wine\Explorer\Desktops\<name>.
251 - The standard Open File dialog supports a drop-down menu for file
252   manipulations.
254 - The 'My Documents' folder links to the XDG or Mac OS X 'Documents'
255   folder if it exists.
257 - Many more shell Known Folders are supported.
259 - Scrollbar theming is implemented. Theming of other controls also
260   works better.
262 - The Toolbar common control can save and restore its state.
265 *** Mac OS X support
267 - The 64-bit architecture is supported on Mac OS X; however, it's not
268   100% compatible with Win64, because of the OS X non-standard 64-bit
269   ABI.
271 - Memory size is reported accurately on Mac OS X.
273 - Joysticks are supported at the WinMM level on Mac OS X.
275 - Debugging information and stack unwinding are improved on Mac OS X.
277 - Trash folder enumeration is supported on Mac OS X.
279 - All mouse events are supported in the system tray with the Mac driver.
281 - Window maximization is supported in the Mac driver.
283 - The Cocoa-style full-screen mode is supported in the Mac driver.
285 - Multiple keyboard layouts are supported in the Mac driver.
288 *** X11 driver
290 - X Drag & Drop protocol version 5 is supported.
292 - Flashing a window caption is implemented in the X11 driver using the
293   NET_WM_STATE_DEMANDS_ATTENTION style.
296 *** OLE / COM
298 - OLE Storage files support file locking, and sizes larger than 4 GB.
300 - Type libraries are registered correctly on 64-bit setups.
302 - 32-bit type libraries can be loaded from 64-bit programs.
304 - The OLE data cache supports DIB images.
306 - The RPC interface to control Windows services is compatible with the
307   native version.
309 - OLE Accessible Objects are implemented for better accessibility support.
312 *** Internet and networking
314 - The Gecko engine is updated to the version from Firefox 40. Many
315   more objects and properties are implemented in MSHTML.
317 - Internet proxies can be configured automatically.
319 - RPC over HTTP supports the NTLM and Negotiate authentication
320   schemes.
322 - The Web Services API is partially implemented.
324 - Download of Gecko and Mono add-ons can be canceled from the
325   progress dialog.
327 - Conditional compilation is supported in JavaScript.
329 - Arrays, math functions, and exception unwinding are implemented in
330   VBScript.
332 - Remote network shares can be configured using Samba's NetAPI library.
334 - The Packet Capture DLL is implemented.
336 - Network interface change notifications are implemented.
338 - IPv6 DNS addresses are supported in IphlpAPI.
340 - The Deflate content encoding is supported in Wininet.
342 - The TransmitFile API is implemented in Windows Sockets.
344 - The BITS file transfer service is better supported.
347 *** Printing
349 - Vertical text is supported when printing through the PostScript driver.
351 - The PostScript driver generates standard glyph names when possible.
353 - Monochrome printers are better supported, in particular when
354   printing color images.
356 - Collation is supported in the PostScript driver.
359 *** Miscellaneous
361 - Windows Management Instrumentation (WMI) implements several more
362   WBEM system classes.
364 - Applying installation patches is better supported in MSI.
366 - Hyperlink controls are supported in installers.
368 - More recent versions of the C/C++ runtimes are supported, including
369   the new UCRTBASE library. The old MSVCIRT C++ runtime is also
370   partially implemented.
372 - Version 9, 10, and 11 of ATL (Active Template Library) are
373   implemented.
375 - The Windows Scripting Runtime supports many more classes, including
376   file and folder collections and dictionaries.
378 - Writing XML files is implemented.
380 - The Invariant locale is supported.
383 *** Built-in applications
385 - The 'taskmgr' application displays whether processes are running
386   under WoW64.
388 - The 'regedit' tool better supports import/export of registry files.
390 - The 'wineconsole' tool supports configuring the insert/overwrite
391   mode in the settings dialog.
394 *** Platform-specific changes
396 - System and hardware information is properly reported on ARM
397   platforms.
399 - WoW64 mode is supported for the ARM64 platform.
401 - The 64-bit architecture is supported on Android.
403 - Binaries are built as PIE on Android, for compatibility with Android
404   version 5.
407 *** Build environment
409 - Source files can be shared across DLLs, to allow building multiple
410   versions of a DLL from the same source. This is more compatible than
411   forwarding calls to a single master DLL. It's used mainly for the
412   C/C++ runtime libraries.
414 - #pragma directives are supported in various source files to specify
415   dependencies, for more accurate makefile generation.
417 - The IDL compiler supports WinRT namespaces.
419 - The message compiler uses mo files instead of po files for faster
420   processing.
422 - Architecture-specific compile flags like -march= are supported in
423   Winegcc and passed along to the assembler.
426 *** New external dependencies
428 - liblcms2 is used instead of liblcms version 1.
430 - libnetapi from Samba is used for configuring remote network shares.
432 - libpcap is used to implement the Packet Capture DLL.
434 - libpulse is used by the Pulse Audio driver.
436 - The OpenAL Soft library is used to implement XAudio2.
438 - The prelink tool is no longer necessary as long as the linker
439   supports the -Ttext-segment option.
442 *** Known issues
444 - Since the support for OpenGL core contexts in WineD3D is not
445   complete enough yet, Direct3D 10 and 11 need to be supported in a
446   legacy context / the compatibility profile, which means that they
447   currently don't work on Mesa.
449 - Setting the PULSE_LATENCY_MSEC variable was sometimes necessary with
450   the Alsa audio driver, but it can cause trouble with the Pulse
451   driver. It is recommended to unset the variable.
454 Alexandre Julliard
455 julliard@winehq.org