Wine 1.8 发布
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
二进制下载
文档
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