wayland-protocols 1.44 套件已發布,包含一組協議和擴展,這些協議和擴展補充了基本 Wayland 協議,並提供了構建複合伺服器和用戶環境所需的功能。
Wayland-Protocols 1.44 引入了一種新協議 color-representation-v1,用於指定 Wayland 表面的顏色表示。新協定允許客戶端傳輸元資料來定義透明度、色彩模型、子取樣和量化範圍,用於將 YCbCr 資料緩衝區轉換為 RGB 表示。
所有協議均按順序經歷開發、測試和穩定階段。完成開發階段(「不穩定」類別)後,協議被放置在「staging」分支並正式包含在 wayland-protocols 集中,測試完成後,將移至穩定類別。 「登台」類別的協定已經可以在需要相關功能的複合伺服器和用戶端中使用。與「不穩定」類別不同,「登台」禁止進行違反相容性的更改,但如果在測試過程中發現問題和缺陷,則不排除替換為協議的新重要版本或其他 Wayland 擴充功能。
為了加快向開發人員交付協議,並鼓勵在現有專案中儘早實施協議,從上一個版本開始,添加了一個「實驗」階段,允許進行破壞兼容性的更改以及添加可以逐步提升到適當級別的「原始」協議。雖然協議需要組建支援團隊並從審閱者那裡收到一定數量的確認(ACK)才能進入準備階段,但它只需要在兩週的審查期間沒有收到任何異議(NACK)即可進入實驗階段。
wayland-protocols 套件目前包含以下穩定協議,這些協議向後相容:
- "viewporter" - 允許客戶端在服務器端的表面邊緣執行縮放和裁剪操作。
- “presentation-time”——提供視頻顯示。
- 「xdg-shell」 是一個用於建立視窗並與其互動的介面,可讓您在螢幕上移動它們、折疊、展開、調整大小等。
- 「linux-dmabuf」-提供基於 DMA-BUF 建立 wl_buffers 的功能。
- “手寫板”- 組織圖形輸入板的輸入。
在“staging”分支中測試的協議:
- drm-lease - 提供在虛擬現實頭盔上顯示時為左右眼形成具有不同緩衝區的立體圖像所需的資源。
- “ext-session-lock” - 定義鎖定會話的方式,例如,在屏幕保護程序的操作或身份驗證對話框的輸出期間。
- “單像素緩衝區”- 允許您創建包含四個 32 位 RGBA 值的單像素緩衝區。
- “xdg-activation” - 允許您在第一層的不同表面之間轉移焦點(例如,使用 xdg-activation,一個應用程序可以將焦點切換到另一個)。
- content-type - 允許客戶端將有關呈現內容的信息傳遞給複合服務器,這可用於優化內容感知行為,例如設置特定於 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 的驅動程式的工作(實作基於驅動程式中的處理程序)。新的協定可以確保在合成管理器顯示該緩衝區之前,對緩衝區的繪製操作已經完成。
- alpha-modifier,允許客戶端更改表面和傳輸操作的透明度級別,以確保複合伺服器一側的透明度,而複合伺服器可以將這些操作重定向到 KMS。
- xdg-toplevel-icon - 將圖示綁定到頂級視窗。
- ext-image-capture-source 和 ext-image-copy-capture - 組織擷取畫面上顯示的內容。
- xdg-system-bell - 讓您輸出系統訊號,該訊號可用作終端模擬器中的警告等。訊號輸出的形式由複合管理器決定;它不僅可以是聲音,還可以是視覺反應。
- fifo - 實作 FIFO(先進先出)機制來處理顯示表面的內容更新佇列。在實用方面,該協定允許輸出使用等待垂直掃描完成(vblank)的方式,而不是每次準備好顯示新幀時使用回調調用,這解決了使用 VSync 時 GPU 負載較高的問題。
- commit-timing - 允許您將時間限制綁定到表面內容(如果可能的話,複合伺服器應在指定時間之後反映內容更改,但不能更早)。
- ext-data-control - 允許特權用戶端控制資料處理,例如實作剪貼簿管理器。
- ext-workspace — 實現了這個概念 虛擬桌面 該協定提供包含桌面狀態資訊的事件,並支援啟用和停用桌面。它還可用於建立儀表板和指示器,顯示可用虛擬桌面的清單並允許在它們之間切換。
- 色彩管理-提供色彩管理功能並支援高動態範圍 (HDR)。此擴充功能允許客戶端應用程式取得輸出裝置的顏色相關屬性訊息,並將自身內容的顏色屬性資料傳遞給複合伺服器。在複合模式下, 服務器 這些資訊可用於在各種輸出裝置上顯示內容時的自動色彩管理,例如,將內容轉換為適合在 HDR 顯示器上顯示的簡報。 ICC 設定檔用於描述色彩空間。
- xdg-toplevel-tag — 允許 Wayland 用戶端將標籤附加到頂層表面,合成伺服器可以在應用程式重新啟動後使用這些標籤來識別視窗(例如,應用程式可能會為主視窗和設定視窗設定「主視窗」和「設定」標籤)。這種識別對於重新啟動後恢復視窗的位置、大小和屬性以及為個別類型的視窗定義特殊規則很有用。
在“不穩定”分支中開發的協議:
- "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 應用程序中捕獲輸入。
此外,我們很高興地宣布發布 Weston 14.0.2 項目,該項目正在開發一個參考複合伺服器,旨在為在桌面環境和嵌入式平台中使用 Wayland 提供高品質的程式碼庫和工作範例。除了修復錯誤之外,Weston 的新版本還能夠使用新版本的 neatvnc 庫來建立用於遠端桌面工作的 VNC 後端。
來源: opennet.ru
