Nach einem halben Jahr Entwicklung wurde das Paket wayland-protocols 1.33 veröffentlicht, das eine Reihe von Protokollen und Erweiterungen enthĂ€lt, die die Funktionen des Basisprotokolls Wayland ergĂ€nzen und die notwendigen Möglichkeiten fĂŒr den Aufbau von Kompositionsservern und Benutzerumgebungen bieten.
Alle Protokolle durchlaufen drei Phasen: Entwicklung, Testung und Stabilisierung. Nach Abschluss der Entwicklungsphase (Kategorie âunstableâ) wird das Protokoll in den Branch âstagingâ ĂŒberfĂŒhrt und offiziell Teil des Pakets wayland-protocols. Nach der Testphase wird es in die stabile Kategorie verschoben. Protokolle aus der Kategorie âstagingâ können bereits in Compositing-Servern und -Clients verwendet werden, wo die zugehörigen Funktionen erforderlich sind. Im Gegensatz zur Kategorie âunstableâ sind in âstagingâ Ănderungen, die die KompatibilitĂ€t beeintrĂ€chtigen, nicht erlaubt. Wenn jedoch wĂ€hrend der Testphase Probleme oder MĂ€ngel entdeckt werden, kann es auch zu einer signifikanten Versionsersetzung des Protokolls oder zu einer anderen Wayland-Erweiterung kommen.
In der neuen Version wurde das Protokoll âlinux-dmabufâ, das die gemeinsame Nutzung mehrerer Grafikkarten mittels der DMA-BUF-Technologie ermöglicht (dies erlaubt die Erstellung eines wl_buffer auf Basis von DMA-BUF), in die Kategorie der stabilen Protokolle eingeordnet. Ein neues Protokoll âext-transient-seatâ wurde hinzugefĂŒgt, das in die Kategorie âstagingâ eingestuft ist. Das neue Protokoll kann zur Erstellung temporĂ€rer unabhĂ€ngiger Sitzungen (seats) verwendet werden, die fĂŒr die Nutzung mit virtuellen EingabegerĂ€ten konzipiert sind, die durch die Protokolle âvirtual_keyboard_unstable_v1â und âwlr_virtual_pointer_unstable_v1â implementiert werden. Zum Beispiel bei der Implementierung der Möglichkeit zur Verbindung mit einem Remote-Desktop Das Protokoll ermöglicht es, fĂŒr jeden Benutzer eine separate Sitzung mit einer virtuellen Tastatur und Maus zu erstellen.
Derzeit umfasst das Paket wayland-protocols die folgenden stabilen Protokolle, die AbwÀrtskompatibilitÀt bieten:
- âviewporterâ â ermöglicht es dem Client, auf der Serverseite Aktionen zur Skalierung und zum Beschneiden der Kanten der OberflĂ€che durchzufĂŒhren.
- presentation-time â gewĂ€hrleistet die Anzeige von Video.
- «xdg-shell» â eine Schnittstelle zur Erstellung und Interaktion mit OberflĂ€chen wie Fenstern, die es ermöglicht, sie auf dem Bildschirm zu bewegen, zu minimieren, zu maximieren, die GröĂe zu Ă€ndern usw.
Protokolle, die im »staging«-Branch getestet werden:
- drm-lease â stellt die Ressourcen bereit, die erforderlich sind, um ein stereoskopisches Bild mit unterschiedlichen Puffern fĂŒr das linke und rechte Auge bei der Ausgabe an Virtual-Reality-Headsets zu erzeugen.
- «ext-session-lock» â definiert die Mittel zur Sperrung der Sitzung, z. B. wĂ€hrend der AktivitĂ€t des Bildschirmschoners oder der Anzeige eines Authentifizierungsdialogs.
- «single-pixel-buffer» â ermöglicht die Erstellung von Ein-Pixel-Puffern, die vier 32-Bit RGBA-Werte enthalten.
- «xdg-activation» â ermöglicht die Ăbertragung des Fokus zwischen verschiedenen obersten OberflĂ€chen (z. B. kann eine Anwendung ĂŒber xdg-activation den Fokus auf eine andere verschieben).
- content-type â ermöglicht es Clients, Daten an den Compositor zu ĂŒbermitteln. Server Informationen zum angezeigten Inhalt, die zur Optimierung des Verhaltens in Bezug auf Inhalte verwendet werden können, wie zum Beispiel die Festlegung spezifischer DRM-Eigenschaften, wie z. B. 'Content Type'. UnterstĂŒtzt werden die folgenden Inhaltstypen: none (keine Informationen ĂŒber den Datentyp), photo (Ausgabe digitaler Fotos, die minimale Verarbeitung erfordern), video (Video oder Animation, die eine genauere Synchronisation erfordert, um Ruckler zu vermeiden) und game (Start von Spielen, bei denen eine Ausgabe mit minimaler Verzögerung erforderlich ist).
- ext-idle-notify â ermöglicht es zusammengesetzten Servern, Benachrichtigungen ĂŒber die InaktivitĂ€t des Benutzers an Clients zu senden, die zur Aktivierung zusĂ€tzlicher Energiesparmodi nach einer bestimmten Zeit der InaktivitĂ€t verwendet werden können.
- tearing-control â ermöglicht das Deaktivieren der vertikalen Synchronisation (VSync) mit einem Frame-Rate-DĂ€mpfungsimpuls in Vollbildanwendungen, um das Auftreten von Tearing zu verhindern. In Multimedia-Anwendungen sind Artefakte durch Tearing unerwĂŒnscht, wĂ€hrend sie in Spieleprogrammen toleriert werden können, wenn deren BekĂ€mpfung zu zusĂ€tzlichen Verzögerungen fĂŒhrt.
- ext-foreign-toplevel-list â Abruf von Informationen ĂŒber OberflĂ€chen, die auf der obersten Ebene (toplevel) platziert sind und die es ermöglichen, Fenster ĂŒber anderem Inhalt zu fixieren, beispielsweise zur Anbindung eigener Panels und Fensterwechsel.
- security-context â ermöglicht die Identifizierung von Klienten, die Sandbox-Isolation verwenden. Der Klient kann eine neue Verbindung zum Kompositserver auf Basis von Wayland registrieren und einen Sicherheitskontext anfĂŒgen, woraufhin der Komposit-Manager die verfĂŒgbaren Möglichkeiten fĂŒr die etablierte Verbindung gemÀà dem angegebenen Sicherheitskontext einschrĂ€nkt.
- cursor-shape â eine alternative Möglichkeit zur Anpassung des Aussehens des Cursors, die auf der Ăbertragung einer Serie von Cursor-Bildern basiert, anstatt an eine OberflĂ€che (wl_surface) gebunden zu sein.
Protokolle, die im »unstable«-Branch entwickelt werden:
- «fullscreen-shell» â Verwaltung der AktivitĂ€ten im Vollbildmodus.
- «input-method» â Verarbeitung von Eingabemethoden.
- «idle-inhibit» â Verhinderung des Starts des Bildschirmschoners.
- «input-timestamps» â Zeitstempel fĂŒr Eingabeereignisse.
- «keyboard-shortcuts-inhibit» â Verwaltung von Tastenkombinationen und Hotkeys.
- «linux-explicit-synchronization» â spezifischer Synchronisationsmechanismus fĂŒr Linux zur Buffersynchronisation in Bezug auf OberflĂ€chen.
- «pointer-gestures» â Steuerung ĂŒber Touchscreen.
- «pointer constraints» â EinschrĂ€nkungen fĂŒr Zeiger (Sperrung).
- «primary-selection» â Ă€hnlich wie in X11, ermöglicht den Betrieb des primĂ€ren Clipboard (primary selection), dessen Informationen normalerweise ĂŒber die mittlere Maustaste eingefĂŒgt werden.
- «relative pointer events» â relative Zeigerereignisse.
- «tablet» â UnterstĂŒtzung fĂŒr die Eingabe von Tablets.
- «text-input» â Text Eingabeorganisation.
- «xdg-foreign» â Schnittstelle zur Interaktion mit oberflĂ€chen âbenachbarterâ Clients.
- «xdg-decoration» â Zeichnung der Fensterdekorationen auf der Serverseite.
- «xdg-output» â zusĂ€tzliche Informationen ĂŒber den Videoausgang (wird fĂŒr skalierte Darstellungen verwendet).
- «xwayland-keyboard-grab» â Eingabeverwaltung in XWayland-Anwendungen.
Quelle: opennet.ru
