經過四個月的開發,Wayland 1.26 協定、進程間通訊機制和函式庫的穩定版本已發布。 1.26 分支在 API 和 ABI 層級向下相容 1.x 版本,主要包含錯誤修復和少量協定更新。本專案採用 MIT 許可證。 Weston 參考複合伺服器(提供在桌面環境和嵌入式解決方案中使用 Wayland 的程式碼和工作範例)正在另一個開發週期中開發。
協議主要變化:
- 新增了 wl_pointer.warp 事件,可讓您接收有關指標新位置的通知,而無需處理使用者活動產生的 wl_pointer.motion 事件。
- 新增了 wl_fixes.ack_global_remove 請求,該請求旨在向複合管理器發送確認訊息,表明客戶端已停止處理事件,以防止在移除全域事件時出現競態條件。複合管理器在收到所有客戶端的確認後,即可移除其端與該事件關聯的處理程序。
- 新增了 wl_display_remove_socket_fd() 函數,用於移除先前透過 wl_display_add_socket_fd() 呼叫新增的套接字。
- 在 WAYLAND_DEBUG 偵錯模式下,時間以「HH:MM:ss.xxxxxx」格式記錄,簡化了日誌解析和比較。
自 Wayland 上一個版本發布以來新增的協議擴展,是對 Wayland 核心協議的補充,並在單獨的 Wayland-Protocols 集中提供:
- xx-fractional-scale 功能用於縮放邏輯座標系(其中值以整數指定),以提高定位精確度並將邏輯座標的解析度提升至單一像素層級。此功能解決了邏輯坐標系分辨率有限的問題,該分辨率不足以進行單個像素級別的定位,而這對於完全實現分數縮放至關重要。
- xx-cutouts — 取得螢幕上的切口的資訊(例如,智慧型手機螢幕上前置鏡頭下方的區域)。
- xx-zones-用於建立頂級視窗並將其新增至「區域」(具有自身座標空間的獨立環境)。該協議允許對視窗進行邏輯排列,其中每個視窗都相對於其他所有視窗進行定位。
- xx-keyboard-filter — 允許用戶端攔截選定的鍵盤事件、修改輸入事件或阻止某些事件傳遞到焦點 Wayland 表面。
- xdg-session-management 協定已新增至暫存類別中,它能夠從基於 Wayland 的環境中中斷的會話中恢復視窗的狀態和位置,例如在複合伺服器或應用程式崩潰之後。
- “linux-dmabuf”協定已更新,以支援多GPU系統。在此類系統中,客戶端可以與複合伺服器協商使用哪個GPU。
- 色彩管理 v1 協定已更新,支援 BT.2100 格式的影像元數據,以便在複合伺服器中使用特定的處理程序,從而能夠正確顯示為 HDR 內容而建立的 HDR 內容。 Windows.
自上一期出版以來,與韋蘭相關的重大事件:
- Cinnamon 完全支持 Wayland。
- 在 Chrome 中使用的 ANGLE 函式庫中, Android新增對 Wayland 的支援。
- KDE 在使用 Wayland 時,實現了會話恢復支援和 xx-fractional-scale-v2 Wayland 協議,用於分數縮放。
- Synaptics X.Org 驅動程式已移植到基於 Wayland 的環境。
- 針對視覺特效和動畫平台,已啟動以 Wayland 取代 X11 的準備檢查。
- Xfce 專案中的 Xfwl4 複合伺服器的測試已經開始。
- Unity 的使用者介面已使用 Wayfire 和 Libadwaita 重新建立。
- 更新的複合伺服器和桌面環境:COSMIC 1.3.0、Weston 16、Phosh 0.56、Nourish 1.0.0、miracle-wm 0.10、KDE Plasma 6.7、labwc 0.20、Sway 1.2、Wayland Maker 0.8、H550. 2.4.0、Cage 0.3。
讓我們回想一下,Wayland 是一種用於複合伺服器和與其一起工作的應用程式之間互動的協定。客戶端在單獨的緩衝區中渲染自己的窗口,將更新傳遞給複合伺服器,複合伺服器組合各個應用程式緩衝區的內容以產生最終輸出,該輸出考慮了視窗重疊和透明度等可能的細微差別。換句話說,複合伺服器不提供用於渲染單個元素的 API,而僅在已經形成的視窗上進行操作,這使您可以在使用 GTK 和 Qt 等高級庫時擺脫雙緩衝,這些庫承擔了合成窗口內容的工作。
Wayland 解決了 X.Org Server 中的許多 X11 安全性問題,因為與後者不同,它隔離了每個視窗的輸入和輸出,不允許客戶端存取其他用戶端視窗的內容,也不允許攔截與其他視窗相關的輸入事件(XLibre XServer 實現了 X11 擴充 Xnamespace,它透過命名空間層級的隔離提供用戶端隔離)。大多數平台都實現了對 Wayland 的直接支援。 Linux 圖形庫包括 GTK、Qt、SDL、FLTK、wxWidgets、Clutter 和 EFL(啟蒙基金會庫)。
在 Wayland/Weston 中,與硬體的交互,例如初始化、視訊模式切換(DRM 模式設定)以及顯示卡的記憶體管理(i915 使用 GEM,Radeon 和 Nouveau 使用 TTM),可以直接透過核心層級模組執行,無需超級使用者權限。為了確保標準 X11 應用程式在基於 Wayland 的環境中運行,使用了 XWayland(裝置相關 X)DDX 元件,其運作方式類似於 Win32 的 Xwin 和 Xquartz。 macOS.
來源: opennet.ru
