Wine 1.8 发布
Wine
![](/data/attachment/album/201512/20/130440d6z6h97et0h6e5cj.png)


Wine 团队很高兴的向您宣布，稳定版的 Wine 1.8 现在发布了！


经过了17个月的开发，我们完成了 13000 处修改，最重要的是实现了 DirectWrite 和 Direct2D，以及新的 Pulse Audio 驱动。


这么多的改进可以让它支持许多新应用和游戏，具体请阅读下面的主要更新内容。


### 源代码


* <http://dl.winehq.org/wine/source/1.8/wine-1.8.tar.bz2>
* <http://mirrors.ibiblio.org/wine/source/1.8/wine-1.8.tar.bz2>
* <http://www.winehq.org/git>


### 二进制下载


* <http://www.winehq.org/download>


### 文档


* <http://www.winehq.org/documentation>


Wine 的开发完成要感谢许许多多的人们的付出，参见发布里面的 AUTHORS 文件。


### Wine 1.8 的主要更新内容


#### 文本与字体


* 实现了 DirectWrite，并支持了一些应用。包括：可以从系统或指定字体集中载入字体、构建字体族、字体匹配算法、支持基本的字体布局等
* 字符表基于 Unicode 8.0.0
* 内置 Wingdings 字体


#### 图形


* 支持 Direct2D。包括：绘制文字、支持位图、颜色笔刷和位图笔刷、透明度笔刷
* PNG 文件可以以交错模式编码
* 可以从 PNG 文件中载入 Gamma 信息
* GdiPlus 中正确支持了动画 GIF


#### Direct3D


* 支持 Direct3D 11，和对 Direct3D 10的支持程度差不多
* 支持使用 Direct3D 10的简单应用，但是仍有很多未实现的功能
* 实现了一些新的 DXGI 1.1 接口
* Direct3D 应用可以正确的最小化和恢复显示
* wined3d 显卡数据库现在可以识别更多的显卡。显卡检测代码进行了简化和改进


#### DirectDraw


* SetCooperativeLevel() 工作得更好了，个别情况下影响到了 DirectDraw 排除模式
* DirectDraw 模式控制支持得更好了，主要影响到使用 8-bpp 显示模式的老式应用


#### 音频与视频


* 实现了一个 Pulse Audio 驱动，当 Pulse Audio 运行时会自动选择它
* 在 DirectSound 中支持了 5.1 环绕立体声
* 基于 OpenAL Soft 库实现了 XAudio2
* 实现了 Video Mixing Renderer 版本7
* 实现了 AVI 文件编码和压缩


#### 内核


* Wine 现在可以报告 'Windows8.1' 和 'Windows 10' 版本
* 支持了“仅初始化一次”同步机制
* 实现了条件变量
* 实现了廋读写锁
* Windows 设备支持除了 I/O 控制外的读写操作，它们可以重映射到已有的 Unix 设备上
* 在动态载入库中支持线程本地存储
* 实现了进程任务
* 实现了任务调度服务
* 支持 UTF-7 编码
* 进程和线程亲和支持更多的处理器
* 支持新的线程池 API


#### 用户界面


* 在桌面模式支持可选的启动菜单，可以通过 HKCU\Software\Wine\Explorer\Desktops\<name> 下设置"EnableShell" 为 "Y"来基于每桌面启用
* 标准的文件对话框支持用于文件操作的下拉菜单
* “我的文档”文件夹会链接到 XDG 或 Mac OS X 下的“文档”文件夹
* 支持更多的外壳常用文件夹
* 实现了滚动条主题，其它控件的主题工作的更好了
* 工具条通用控制现在可以保存并恢复其状态


#### Mac OS X 支持


* Mac OS X 上支持64位架构；然后并不完全兼容 Win64，因为 OS X 不是标准的64位 ABI
* 精确的报告 Mac OS X 上的内存大小
* 支持垃圾箱文件夹枚举


#### X11 驱动


* 支持 X 拖放协议版本5
* 实现了闪烁窗口标题


#### OLE / COM


* OLE 存储文件支持文件锁定，大小可以超过4GB
* 在 64 位环境下类型库正确注册
* 64位程序可以载入32位类型库
* 用于控制窗口服务的 RPC 接口现在兼容原生版本


#### 互联网与网络


* 从 Firefox 40 更新了 Gecko 引擎，在 MSHTML 中实现了很多对象和属性
* 互联网代理可以自动配置
* 部分实现了 Web 服务 API
* 在 JavaScript 中支持条件编译
* 可以使用 Samba 的 NetAPI 库配置远程网络共享
* 实现了包捕获 DLL
* 实现了网络接口改变提醒


#### 打印


* 通过 PostScript 驱动打印时支持垂直文字
* 当打印彩色图片时，黑白打印支持更好


#### 其它


* WMI 实现了几个 WBEM 系统类
* 在 MSI 中更好的支持了应用安装补丁
* 支持更多新版本的 C/C++运行时库，包括新的 UCRTBASE 库，旧式的 MSVCIRT C++ 运行时也部分实现了
* 实现了 ATL 版本 9、10、11
* 实现了 XML 文件写入


#### 内置应用


* 任务管理器应用显示哪个进程运行在 WoW64 下
* 注册表编辑器对导入导出支持更好
* wine控制台支持设置对话框的配置插入/覆写模式


#### 平台相关的改变


* ARM 平台上正确汇报系统和硬件信息
* ARM64 平台支持 WoW64模式
* 在 Android 上支持64位架构


#### 构建环境


* 源代码可以跨 DLL 共享，可以从同样的源代码构建多个版本的 DLL。
* 支持 #pragma 指令
* 消息编译器使用 mo 文件，替代了 po 文件


#### 新的外部依赖


* liblcms2 替代了 liblcms 1
* 来自 Samba 的 libnetapi 用于配置远程网络共享
* libpcap 用于实现包捕获 DLL
* libpulse 用于 Pulse Audio 驱动
* OpenAL Soft 库用于实现 XAudio2


#### 已知问题


* 因为 WineD3D 的 OpenGL 内核上下文支持仍然没有完全做好，在旧式上下文中需要支持 Direct3D 10 和 11，所以它们当前不支持 Mesa

OK
# Wine Announcement

The Wine team is proud to announce that the stable release Wine 1.8
is now available.
This release represents 17 months of development effort and around
13,000 individual changes. The main highlights are the implementation
of DirectWrite and Direct2D, and the new Pulse Audio driver.
It also contains a lot of improvements across the board, as well as
support for many new applications and games. See the release notes
below for a summary of the major changes.
The source is available from the following locations:
[http://dl.winehq.org/wine/source/1.8/wine-1.8.tar.bz2](http://dl.winehq.org/wine/source/1.8/wine-1.8.tar.bz2)
[http://mirrors.ibiblio.org/wine/source/1.8/wine-1.8.tar.bz2](http://mirrors.ibiblio.org/wine/source/1.8/wine-1.8.tar.bz2)
Binary packages for various distributions will be available from:
[http://www.winehq.org/download](http://www.winehq.org/download)
You will find documentation on [http://www.winehq.org/documentation](http://www.winehq.org/documentation)
You can also get the current source directly from the git
repository. Check [http://www.winehq.org/git](http://www.winehq.org/git) for details.
Wine is available thanks to the work of many people. See the file
[AUTHORS](https://gitlab.winehq.org/wine/wine/-/raw/wine-1.8/AUTHORS) in the distribution for the complete list.
----------------------------------------------------------------
What's new in Wine 1.8
======================
*** Text and fonts
- 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.
*** Mac OS X support
- The 64-bit architecture is supported on Mac OS X; however, it's not
100% compatible with Win64, because of the OS X non-standard 64-bit
ABI.
- Memory size is reported accurately on Mac OS X.
- Joysticks are supported at the WinMM level on Mac OS X.
- Debugging information and stack unwinding are improved on Mac OS X.
- Trash folder enumeration is supported on Mac OS X.
- All mouse events are supported in the system tray with the Mac driver.
- Window maximization is supported in the Mac driver.
- The Cocoa-style full-screen mode is supported in the Mac driver.
- Multiple keyboard layouts are supported in the Mac driver.
*** X11 driver
- X Drag & Drop protocol version 5 is supported.
- Flashing a window caption is implemented in the X11 driver using the
NET_WM_STATE_DEMANDS_ATTENTION style.
*** OLE / COM
- OLE Storage files support file locking, and sizes larger than 4 GB.
- Type libraries are registered correctly on 64-bit setups.
- 32-bit type libraries can be loaded from 64-bit programs.
- The OLE data cache supports DIB images.
- The RPC interface to control Windows services is compatible with the
native version.
- OLE Accessible Objects are implemented for better accessibility support.
*** Internet and networking
- The Gecko engine is updated to the version from Firefox 40. Many
more objects and properties are implemented in MSHTML.
- Internet proxies can be configured automatically.
- RPC over HTTP supports the NTLM and Negotiate authentication
schemes.
- The Web Services API is partially implemented.
- Download of Gecko and Mono add-ons can be canceled from the
progress dialog.
- Conditional compilation is supported in JavaScript.
- Arrays, math functions, and exception unwinding are implemented in
VBScript.
- Remote network shares can be configured using Samba's NetAPI library.
- The Packet Capture DLL is implemented.
- Network interface change notifications are implemented.
- IPv6 DNS addresses are supported in IphlpAPI.
- The Deflate content encoding is supported in Wininet.
- The TransmitFile API is implemented in Windows Sockets.
- The BITS file transfer service is better supported.
*** Printing
- Vertical text is supported when printing through the PostScript driver.
- The PostScript driver generates standard glyph names when possible.
- Monochrome printers are better supported, in particular when
printing color images.
- Collation is supported in the PostScript driver.
*** Miscellaneous
- Windows Management Instrumentation (WMI) implements several more
WBEM system classes.
- Applying installation patches is better supported in MSI.
- Hyperlink controls are supported in installers.
- More recent versions of the C/C++ runtimes are supported, including
the new UCRTBASE library. The old MSVCIRT C++ runtime is also
partially implemented.
- Version 9, 10, and 11 of ATL (Active Template Library) are
implemented.
- The Windows Scripting Runtime supports many more classes, including
file and folder collections and dictionaries.
- Writing XML files is implemented.
- The Invariant locale is supported.
*** Built-in applications
- The 'taskmgr' application displays whether processes are running
under WoW64.
- The 'regedit' tool better supports import/export of registry files.
- The 'wineconsole' tool supports configuring the insert/overwrite
mode in the settings dialog.
*** Platform-specific changes
- System and hardware information is properly reported on ARM
platforms.
- WoW64 mode is supported for the ARM64 platform.
- The 64-bit architecture is supported on Android.
- Binaries are built as PIE on Android, for compatibility with Android
version 5.
*** Build environment
- Source files can be shared across DLLs, to allow building multiple
versions of a DLL from the same source. This is more compatible than
forwarding calls to a single master DLL. It's used mainly for the
C/C++ runtime libraries.
- #pragma directives are supported in various source files to specify
dependencies, for more accurate makefile generation.
- The IDL compiler supports WinRT namespaces.
- The message compiler uses mo files instead of po files for faster
processing.
- Architecture-specific compile flags like -march= are supported in
Winegcc and passed along to the assembler.
*** New external dependencies
- liblcms2 is used instead of liblcms version 1.
- libnetapi from Samba is used for configuring remote network shares.
- libpcap is used to implement the Packet Capture DLL.
- libpulse is used by the Pulse Audio driver.
- The OpenAL Soft library is used to implement XAudio2.
- The prelink tool is no longer necessary as long as the linker
supports the -Ttext-segment option.
*** Known issues
- Since the support for OpenGL core contexts in WineD3D is not
complete enough yet, Direct3D 10 and 11 need to be supported in a
legacy context / the compatibility profile, which means that they
currently don't work on Mesa.
- Setting the PULSE_LATENCY_MSEC variable was sometimes necessary with
the Alsa audio driver, but it can cause trouble with the Pulse
driver. It is recommended to unset the variable.
--
Alexandre Julliard
[[email protected]](/cdn-cgi/l/email-protection)