以下 展示了一年的開發和 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