wayland-protocols 1.35 套件已經發布,包含一組協議和擴展,補充了基礎 Wayland 協議的功能,並提供了構建複合伺服器和用戶環境所需的功能。
所有協議始終經曆三個階段——開發、測試和穩定。 開發階段(“unstable”類別)完成後,協議被放入“staging”分支,正式納入wayland-protocols set,測試完成後移至stable類別。 來自“staging”類別的協議已經可以用於需要與其關聯的功能的複合服務器和客戶端中。 與“不穩定”類別不同,在“暫存”類別中,禁止進行違反兼容性的更改,但如果在測試過程中發現問題和缺陷,則不排除使用協議的新重要版本或其他 Wayland 擴展進行替換。
在新版本中:
- tablet-v2 協定提供了組織圖形輸入的方法,現在已轉入穩定類別。
- 「暫存」類別中新增了新的 alpha 修改器協議,允許用戶端更改表面透明度等級並將透明度操作外包給複合伺服器,而複合伺服器又可以將這些操作轉發給 KMS。
- xdg-shell 協定中加入了一條建議,即在使用平鋪視窗佈局時不要顯示視窗幾何邊界以外的裝飾。
Wayland-protocols 目前包括以下向後兼容的穩定協議:
- "viewporter" - 允許客戶端在服務器端的表面邊緣執行縮放和裁剪操作。
- “presentation-time”——提供視頻顯示。
- “xdg-shell”是一個用於創建窗口等表面並與之交互的界面,它允許它們在屏幕上移動、最小化、最大化、調整大小等。
- 「linux-dmabuf」 - 使用 DMA-BUF 技術提供多個顯示卡的共用(讓您可以建立基於 DMA-BUF 的 wl_buffer)。
- 「平板電腦」- 組織來自圖形輸入板的輸入。
在“staging”分支中測試的協議:
- drm-lease - 提供在虛擬現實頭盔上顯示時為左右眼形成具有不同緩衝區的立體圖像所需的資源。
- “ext-session-lock” - 定義鎖定會話的方式,例如,在屏幕保護程序的操作或身份驗證對話框的輸出期間。
- “單像素緩衝區”- 允許您創建包含四個 32 位 RGBA 值的單像素緩衝區。
- “xdg-activation” - 允許您在第一層的不同表面之間轉移焦點(例如,使用 xdg-activation,一個應用程序可以將焦點切換到另一個)。
- 內容類型 - 允許客戶端傳遞複合內容 伺服器 有關顯示內容的資訊可用於優化內容感知行為,例如設定特定的 DRM 屬性,例如「內容類型」。聲明支援以下內容類型:無(無資料類型資訊)、照片(需要最少處理的數位照片輸出)、影片(影片或動畫,需要更精確的同步以避免卡頓)和遊戲(遊戲啟動,需要輸出延遲最小)。
- ext-idle-notify - 允許複合服務器向客戶端發送用戶不活動通知,可用於在一定數量的不活動後激活額外的省電模式。
- 撕裂控制 - 讓您在全螢幕應用程式中使用垂直阻尼脈衝停用垂直同步 (VSync),用於防止輸出撕裂。 在多媒體應用中,由於撕裂而產生的偽影是一種不受歡迎的效果,但在遊戲程式中,如果處理偽影會導致額外的延遲,則可以容忍這些偽影。
- ext-foreign-toplevel-list - 檢索有關放置在頂層的表面的信息,這允許您組織視窗以停靠在其他內容之上,例如,附加您自己的面板和視窗開關。
- security-context - 允許您使用沙箱隔離來識別客戶端。用戶端可以向基於 Wayland 的組合伺服器註冊一個新連接,並向其附加安全上下文,之後組合管理器將根據指定的安全上下文限制已建立的連接可用的功能。
- 遊標形狀是自訂遊標外觀的另一種方法,它基於傳遞一系列遊標影像而不是捕捉到表面(wl_surface)。
- 「ext-transient-seat」旨在建立臨時的獨立會話(席位),這些會話(席位)專門用於虛擬輸入裝置。例如,在實現連接到…的功能時。 遠端桌面 該協定允許為每個使用者建立一個獨立的會話,每個會話都配備一個虛擬鍵盤和滑鼠。
- “xdg-toplevel-drag” - 擴展“拖放”機制,能夠將頂級視窗附加到拖曳操作,例如,可以使用滑鼠組織工具列或瀏覽器選項卡的拖曳。新協定允許您建立視窗的可拆卸部分,當從該視窗拖曳時,這些部分將成為新窗口,並且可以在重新附加之前移動到現有視窗的頂部。
- 「xdg-dialog」 - 允許您將特定於對話方塊的屬性指派給頂級表面,例如,您可以建立阻止使用者與介面其餘部分互動的模式對話方塊。
- “linux-drm-syncobj” - 提供使用 DRM(直接渲染管理器)同步物件明確同步緩衝區的工具。假設在繪製到緩衝區時的同步上下文中,所提出的協定將改進基於 Vulkan 和 OpenGL 圖形 API 的驅動程式的工作(實作基於驅動程式中的處理程序)。新協定可以確保在複合管理器呈現緩衝區之前完成對緩衝區的呈現操作。
在“不穩定”分支中開發的協議:
- "fullscreen-shell" - 在全屏模式下控制工作。
- “input-method”——輸入法的處理。
- “idle-inhibit”——阻止屏幕保護程序(screen saver)的啟動。
- "input-timestamps" - 輸入事件的時間戳。
- "keyboard-shortcuts-inhibit" - 控制鍵盤快捷鍵和熱鍵的附加。
- 「linux-explicit-synchronization」是特定於 Linux 用於同步緩衝區與表面的機制。
- “指針手勢”- 通過觸摸屏進行控制。
- “指針約束”——指針約束(阻塞)。
- "primary-selection" - 與 X11 類比,它提供了主剪貼板(主選擇),通常使用鼠標中鍵從中插入信息。
- “相對指針事件”——相對指針事件。
- “文本輸入”- 文本輸入的組織。
- “xdg-foreign”是一個用於與“相鄰”客戶端表面交互的接口。
- “xdg-decoration”——在服務器端渲染窗口裝飾。
- "xdg-output" - 關於視頻輸出的附加信息(用於分數縮放)。
- “xwayland-keyboard-grab” - 在 XWayland 應用程序中捕獲輸入。
來源: opennet.ru
