- DirectWrite is implemented, and works for a number of
applications. The implemented functionality includes:
- Font file loading from system or custom font collections.
- Building font families by combining similar font faces.
- Font matching algorithm using weight/width/slope model.
- Basic text layout support.
- Bi-directional level resolution and line breaks resolution.
- GDI interoperability API, including rendering to DIB section base target.
- Rendering to arbitrary target with generic rendering interface.
- Generating black&white and grayscale alpha bitmaps.
- Bold glyphs can be synthesized for outline fonts.
- Multiple replacements can be specified for a single font by using a
multi-string entry under HKCU\Software\Wine\Fonts\Replacements.
- Vertical text uses the Unicode data tables for more accurate
character ranges support.
- Character tables are based on version 8.0.0 of the Unicode Standard.
- The built-in Wingdings font contains more glyphs.
- Unicode bracketing pairs are supported in Uniscribe.
- The RichEdit control uses Uniscribe for more accurate text rendering.
- Hebrew and Arabic Mac OS code pages are supported. This improves
support for loading translated font names from Mac OS font files.
*** Graphics
- Direct2D is supported. Among the implemented features are:
- DXGI surface and WIC bitmap render targets.
- Geometries defined by straight lines and cubic Bézier curves.
- Drawing text.
- Bitmaps.
- Solid color brushes and bitmap brushes.
- Opacity brushes.
- PNG files can be encoded in interlaced mode.
- Gamma information can be loaded from PNG files.
- Animated GIFs are correctly supported in GdiPlus.
*** Direct3D
- Direct3D 11 is supported, to about the same level as Direct3D 10.
- Simple applications using Direct3D 10 are supported. There are still
many unimplemented features. Direct3D 10 requires support for at
least OpenGL 3.2 and GLSL 1.50. Some of the changes and supported
features include:
- Several resource update operations are implemented.
- Many more shader model 4 opcode are recognized.
- Constant buffers are supported.
- The various resource views are implemented.
- The various state objects are implemented.
- Stateblocks are implemented.
- A number of new DXGI 1.1 interfaces are implemented. This benefits Direct3D
10 and 11 applications.
- Direct3D applications correctly minimize and restore the display
mode on focus loss.
- Fixed function vertex blending is implemented. This requires GLSL support.
- Per-vertex point sizes are supported. This requires GLSL support.
- The wined3d graphics card database recognizes more graphics
cards. The graphics card detection code is simplified and
improved. More reasonable fallbacks are picked for unrecognized
graphics cards.
- On drivers that support it, GL_ARB_texture_mirror_clamp_to_edge or
GL_EXT_texture_mirror_clamp are used to implement the "mirror once"
texture addressing mode. Previously this required
GL_ATI_texture_mirror_once.
- GL_ARB_depth_clamp is no longer required to correctly draw pre-transformed
vertices with disabled z-buffering. This helps older graphics cards that
can't correctly implement GL_ARB_depth_clamp.
- On drivers that support it, GL_ARB_blend_func_extended is used to
implement the D3DBLEND_SRCALPHASAT blend factor.
- On drivers that support it, GL_ARB_sampler_objects is used to apply
sampler states independently of the texture object they apply
to. This helps applications that bind the same texture to multiple
texture stages, but with different sampler states.
- On drivers that support it, GL_EXT_texture_snorm is used to support
signed (normalized) texture formats. These are typically used for
bump mapping. Previously these formats required either
GL_NV_texture_shader, or fixups when loading and using them.
- On drivers that support is, GL_ARB_timer_query is used to support
Direct3D 9 timestamp queries.
- Texture format restrictions are more strictly enforced. This allows
applications to fall back to a different format instead of continuing with
broken rendering.
- Direct3D 9 D3DTSS_CONSTANT texture stage constants are supported.
- Color keyed blits can be done by the graphics card. Previously these
needed to be done by the CPU.
- NV12 surfaces are supported. This is used by some applications for
playing back video.
- ATI1N textures and surfaces are supported, in addition to ATI2N
textures and surfaces. This requires support for
GL_ARB_texture_compression_rgtc from the OpenGL driver.
- When GLSL is supported, lighting for Direct3D 1-3 is more
correct. However, for most application the difference will only be
very slight.
- The IDirect3DSwapChain9Ex interface is supported.
- OpenGL core contexts, OpenGL ES contexts, and multi-threaded OpenGL
command submission (known as "CSMT") have been added, however that
work is not finished yet.
*** DirectDraw
- SetCooperativeLevel() works better, affecting DirectDraw exclusive
mode in particular.
- DirectDraw surface flipping is more correct. This affects applications that
use more than 1 back buffer in particular.
- DirectDraw palette handling is better supported. This mostly affects
older applications using 8-bpp display modes (but not exclusively.)
- "Client memory" surfaces are better supported, in particular related
to the handling of pitch and texture compression.
*** Audio and video
- A Pulse Audio driver is implemented. It is selected automatically
when Pulse Audio is running.
- 5.1 surround sound is supported in DirectSound. Stereo is the
default, but other speaker configurations can be set through the
Audio tab in Winecfg.
- XAudio2 is implemented, based on the OpenAL Soft library.
- The OpenAL library defaults to the native version.
- The Video Mixing Renderer version 7 is implemented.
- AVI file encoding and compression is implemented.
*** Kernel
- Wine can be configured to report the Windows version as 'Windows
8.1' and 'Windows 10'.
- Keyed event synchronization objects are implemented.
- The "init once" synchronization mechanism is supported.
- Condition variables are implemented.
- Slim Reader/Writer locks are implemented.
- Activation contexts are used for loading DLLs, type libraries, and
COM classes, avoiding the need for explicit registration.
- Windows devices support read and write operations in addition to I/O
controls. They can be remapped directly to existing Unix devices.
- Thread local storage is supported in dynamically loaded libraries.
- Process jobs are implemented.
- The Task Scheduler service is implemented.
- The UTF-7 encoding is supported.
- ATL thunk emulation supports a wider range of possible instructions.
- Process and thread affinity is supported even with a large number of
processors.
- Dynamic DST (Daylight Saving Time) is supported through the
registry. Timezone data is updated for a number of timezones.
- USER_SHARED_DATA access is emulated on x86-64 platforms.
- The new thread pool API is supported.
- OpenMP (parallel programming API) is implemented.
- Preliminary support for HID devices is implemented, but it's not
enabled yet.
*** User interface
- There is an optional Start Menu in desktop mode, that can be enabled
on a per-desktop basis by setting "EnableShell" to "Y" under
HKCU\Software\Wine\Explorer\Desktops\<name>.
- The standard Open File dialog supports a drop-down menu for file
manipulations.
- The 'My Documents' folder links to the XDG or Mac OS X 'Documents'
folder if it exists.
- Many more shell Known Folders are supported.
- Scrollbar theming is implemented. Theming of other controls also
works better.
- The Toolbar common control can save and restore its state.
Bugs fixed in 1.9.0 (total 43):
3611 CorelDRAW 9: copy/paste of graphics elements between multiple instances of the program doesn't work
8097 Pazuru Alfabet picture display flicker
14290 winhelp: temporary 100% CPU use when loading some help files
15253 VB6 application doesn't fully render text using custom bitmap font (only one character shown)
15951 Origin Pro 6.1 / 7.5 / 8.0 / 8.5: Matrix menu commands don't work (dialog for auto-spacing of levels, colors or linestyles in contour-plots not shown)
17310 Window looses its top returning from fullscreen and is undragable from normal means
18347 Multiple applications crash on unimplemented function gdiplus.dll.GdipImageSetAbort (Cooliris, IPLA 0.9)
20208 Liquid Story Binder - 'z' location broken and window management issues
22871 MinGW gdb 5.2.1 crashes when trying to enter commands
22966 Restricted Area: incorrect rendering of character animations
25104 ChooseFont dialog does not support non standard font sizes
26769 Unable to play mms in Windows Media Player [9|10] with builtin wininet
28915 Eclipse Indigo SR1 (3.7.1) C++ IDE complains "'Periodic workspace save.' has encountered a problem." (java expects NtWriteFile to support FILE_WRITE_TO_END_OF_FILE)
29455 Call of Duty 4: persons are not visible
30621 Web Forum Reader 3.0 shows empty/white page when adding website resource (embedded browser)
30678 Phantasy Star Online: Ambition of The Illuminus (PSU: AOTI): resolution dropdown box empty
30811 Music in Alpha Centauri stutters
32650 LibreOffice 4 beta UI quite slow
32926 PPTV 3.2.1 crashes after installation
33101 FlashDevelop 4.3.0 (.NET 2.0 app) crashes on startup with 'Initialization failed. Please, run FlashDevelop again.'
33641 MS Comptes Bancaires 9.0 crashes on startup
33651 HeeksCAD & HeeksCNC fails
33737 PowerPoint Viewer 2010 cannot start when Windows version is Vista or later ('IFileDialogCustomize::MakeProminent' and 'IFileDialogCustomize::SetControlItemState' are stubs)
34312 3d chat client for there.com crashes
35187 Jade Empire Special Edition configuration tool always resetting video settings