后 展示了一年的开发和 30 个实验版本 Win32 API 开放实现的新稳定版本 葡萄酒7.0 其中实施了大约 9100 项更改。
新版本的主要成就包括 以 PE 格式翻译大多数 Wine 模块, 支持主题,支持 HID 接口的游戏杆和输入设备的堆栈扩展, WoW64架构实现 在 32 位环境中运行 64 位程序。
Wine 7.0的主要新闻
在这个新版本中 几乎所有的 DLL 都被转换为使用 PE 可执行文件格式 (便携式可执行文件)而不是 ELF。 PE 的使用解决了支持各种复制保护方案的问题,这些方案可以验证磁盘和内存中系统模块的身份。
除了它 PE 模块可以与 Unix 库接口 使用标准的 NT 内核系统调用,可以隐藏 Windows 调试器对 Unix 代码的访问并监视线程日志。
该 现在仅当磁盘上有相应的 PE 文件时才加载内置 DLL,无论它是实际库还是存根。 此更改允许应用程序始终看到指向 PE 文件的正确链接。 您可以使用 WINEBOOTSTRAPMODE 环境变量来禁用此行为。
除了它 WoW64架构已经实现,它允许在 32 位 Unix 进程中运行 64 位 Windows 应用程序。 支持是通过连接将 32 位 NT 系统调用转换为对 NTDLL 的 64 位调用的层来实现的。
新增了一个 新的 Win32u 库,其中包括部分 GDI32 和 USER32 库 与图形处理和内核级窗口管理有关。 将来,将开始将 winex11.drv 和 winemac.drv 等驱动程序组件迁移到 Win32u。
另一方面,它脱颖而出 新的渲染引擎 (将 Direct3D 调用转换为 Vulkan 图形 API) 得到了显着改善. 在大多数情况下,基于 Vulkan 的引擎中对 Direct3D 10 和 11 的支持级别已与较旧的基于 OpenGL 的引擎相匹配。 要通过 Vulkan 启用渲染引擎,请将 Direct3D“renderer”注册表变量设置为“vulkan”。
已实施 Direct3D 10 和 11 的许多功能,包括惰性上下文,在设备上下文中运行的状态对象,缓冲区中的恒定偏移量,清理混乱的纹理表示,以无类型格式在资源之间复制数据。
还强调了 增加了对多显示器设置的支持,它允许您选择一个监视器以全屏模式显示 Direct3D 应用程序。 在通过 Vulkan API 渲染代码时,如果系统支持 VK_EXT_host_query_reset 扩展,则查询处理效率得到了提高。
添加了 显示虚拟帧缓冲区的能力 (SwapChain) 通过 GDI,如果 OpenGL 或 Vulkan 不能用于显示,例如从不同进程导出到窗口时,例如在基于 CEF(Chromium Embedded Framework)的程序中。
已添加卡片 AMD Radeon RX 5500M、6800/6800 XT/6900 XT、AMD 梵高、英特尔 UHD 显卡 630 和 NVIDIA GT 1030 基于 Direct3D 显卡。
“UseGLSL”键已从 HKEY_CURRENT_USER\Software\Wine\Direct3D 注册表中删除,而不是从 Wine 5.0 开始使用“shader_backend”。
继续实施媒体基金会框架,添加了对 IMFPMediaPlayer 功能、采样器的支持,改进了对 EVR 和 SAR 渲染缓冲区的支持。
删除了 wineqtdecoder 库 它为 QuickTime 格式提供解码器(GStreamer 现在用于所有编解码器)
在其他突出的变化中:
- 为支持 HID 协议的操纵杆添加了新的 DirectInput 后端。
- 已经实现了在操纵杆上使用反馈效果的能力。
- 改进的操纵杆控制面板。
- 优化与 XInput 兼容设备的交互。
- WinMM 将操纵杆支持移至 DInput,而不是在 Linux 上使用 evdev 后端,在 macOS IOHID 上使用 IOHID。
- 删除了旧的 winejoystick.drv 游戏杆驱动程序。
- 基于虚拟 HID 设备的使用向 DInput 模块添加了新的测试,不需要物理设备。
- C 运行时实现了一整套数学函数,主要是从 Musl 库中继承而来。
- 所有 CPU 平台都提供对浮点函数的正确支持。
- 添加了对 DTLS 协议的支持。
- NSI(网络存储接口)服务已经实现,它存储和传输有关计算机上的路由和网络接口的信息到其他服务。
- WinSock API 处理程序(例如 setsockopt 和 getsockopt)已移至 NTDLL 库和 afd.sys 驱动程序以匹配 Windows 体系结构。
最后 如果您有兴趣了解更多有关它的信息,您可以在中查看详细信息 以下链接。
如何在 Ubuntu 和衍生产品上安装 Wine 7.0?
对于那些有兴趣能够安装这个新版本的 Wine 的人,只需打开一个终端并在其中输入以下命令:
-
sudo apt install libgnutls30:i386 libgpg-error0:i386 libxml2:i386 libasound2-plugins:i386 libsdl2-2.0-0:i386 libfreetype6:i386 libdbus-1-3:i386 libsqlite3-0:i386
-
sudo dpkg --add-architecture i386 wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key
-
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ '$(lsb_release -cs)' main'
-
sudo apt install --install-recommends winehq-stable