Das Paket wayland-protocols 1.35 wurde veröffentlicht, das eine Reihe von Protokollen und Erweiterungen enthĂ€lt, die die Möglichkeiten des grundlegenden Wayland-Protokolls ergĂ€nzen und die erforderlichen Funktionen fĂŒr den Aufbau von Komposition-Servern und Benutzerumgebungen bereitstellen.
Alle Protokolle durchlaufen drei Phasen - Entwicklung, Test und Stabilisierung. Nach Abschluss der Entwicklungsphase (Kategorie âunstableâ) wird das Protokoll in den Branch âstagingâ verschoben und offiziell in das Paket wayland-protocols aufgenommen. Nach Abschluss der Tests wird es in die Kategorie stabiler Protokolle verschoben. Protokolle aus der Kategorie âstagingâ können bereits in Komposition-Servern und Clients verwendet werden, in denen die damit verbundenen Funktionen benötigt werden. Im Gegensatz zur Kategorie âunstableâ ist in âstagingâ die EinfĂŒhrung von Ănderungen, die die KompatibilitĂ€t brechen, untersagt, aber wenn wĂ€hrend der Tests Probleme und MĂ€ngel auftreten, kann ein neues signifikantes Protokoll oder eine andere Wayland-Erweiterung ersetzt werden.
In der neuen Version:
- Das Protokoll tablet-v2 wurde in die stabile Kategorie ĂŒberfĂŒhrt und bietet Funktionen fĂŒr die Eingabe von Grafiktabletts.
- Ein neues Protokoll alpha-modifier wurde der Kategorie âstagingâ hinzugefĂŒgt, das es Clients ermöglicht, die Transparenzstufe einer OberflĂ€che zu Ă€ndern und die Transparenzoperationen an den Komposition-Server auszulagern, der diese Operationen wiederum an KMS weiterleiten kann.
- Im Protokoll xdg-shell wurde die Empfehlung hinzugefĂŒgt, Dekorationen nicht auĂerhalb der geometrischen Grenzen des Fensters anzuzeigen, wenn ein kachelartiges Layout verwendet wird.
Derzeit umfassen die wayland-protocols die folgenden stabilen Protokolle, die abwÀrtskompatibel sind:
- âviewporterâ - ermöglicht es dem Client, MaĂnahmen zur Skalierung und zum Zuschneiden der RĂ€nder einer OberflĂ€che auf der Serverseite durchzufĂŒhren.
- âpresentation-timeâ - sorgt fĂŒr die Wiedergabe von Videos.
- âxdg-shellâ - Schnittstelle zur Erstellung und Interaktion mit OberflĂ€chen wie Fenstern, die es ermöglicht, sie auf dem Bildschirm zu verschieben, zu minimieren, zu maximieren, die GröĂe zu Ă€ndern usw.
- âlinux-dmabufâ - ermöglicht die gemeinsame Nutzung mehrerer Grafikkarten mittels der DMA-BUF-Technologie (erlaubt die Erstellung von wl_buffer auf Basis von DMA-BUF).
- âtabletâ - Organisation der Eingabe von Grafiktabletts.
Protokolle, die im Branch âstagingâ getestet werden:
- drm-lease â bietet die benötigten Ressourcen zur Erstellung eines stereoskopischen Bildes mit unterschiedlichen Puffern fĂŒr das linke und das rechte Auge bei der Ausgabe auf Virtual-Reality-Headsets.
- «ext-session-lock» â definiert Mittel zur Sperrung einer Sitzung, beispielsweise 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 primĂ€ren OberflĂ€chen (zum Beispiel kann eine Anwendung den Fokus auf eine andere ĂŒbertragen).
- content-type â ermöglicht es Clients, Informationen ĂŒber den angezeigten Inhalt zu ĂŒbermitteln, die zur Optimierung des Verhaltens in Bezug auf den Inhalt verwendet werden können, beispielsweise zur Festlegung spezifischer DRM-Eigenschaften wie «content type». UnterstĂŒtzt werden folgende Inhaltstypen: none (keine Informationen ĂŒber den Datentyp), photo (Ausgabe digitaler Fotos, die minimale Verarbeitung erfordert), video (Video oder Animation, die eine genauere Synchronisation erfordert, um Ruckler zu vermeiden) und game (Start von Spielen, die eine Ausgabe mit minimaler Verzögerung erfordern). zu einem Server ext-idle-notify â ermöglicht es Kompositservern, den Clients Benachrichtigungen ĂŒber die InaktivitĂ€t des Benutzers zu ĂŒbermitteln, was zur Aktivierung zusĂ€tzlicher Energiesparmodi nach einer bestimmten InaktivitĂ€tszeit verwendet werden kann.
- tearing-control â ermöglicht die Deaktivierung der vertikalen Synchronisation (VSync) mit vertikalen RĂŒcklaufimpulsen in Fullscreen-Anwendungen, die zum Schutz vor Tearing bei der Ausgabe verwendet wird. In Multimedia-Anwendungen sind Artefakte durch Tearing ein unerwĂŒnschter Effekt, wĂ€hrend in Spielanwendungen mit Artefakten hinzunehmen ist, wenn die BekĂ€mpfung zu zusĂ€tzlichen Verzögerungen fĂŒhrt.
- ext-foreign-toplevel-list â ermöglicht den Zugriff auf Informationen ĂŒber OberflĂ€chen, die auf der obersten Ebene (toplevel) platziert sind und die das Anheften von Fenstern ĂŒber anderen Inhalten ermöglichen, beispielsweise zur Anbindung eigener Panels und Fensterschalter.
- ext-foreign-toplevel-list â ermöglicht den Zugriff auf Informationen ĂŒber OberflĂ€chen, die auf der obersten Ebene (toplevel) platziert sind und die das Anheften von Fenstern ĂŒber anderen Inhalten ermöglichen, beispielsweise zur Anbindung eigener Panels und Fensterschalter.
- security-context â ermöglicht die Identifizierung von Clients, die Sandbox-Isolation verwenden. Der Client kann eine neue Verbindung zu einem Composite-Server auf Basis von Wayland registrieren und einen Sicherheitskontext anhĂ€ngen, wonach der Composite-Manager die verfĂŒgbaren Möglichkeiten fĂŒr die hergestellte Verbindung gemÀà dem angegebenen Sicherheitskontext einschrĂ€nkt.
- cursor-shape â eine alternative Methode zur Anpassung des Aussehens des Cursors, die auf der Ăbertragung einer Reihe von Cursorbildern basiert, anstatt an einer OberflĂ€che (wl_surface) gebunden zu sein.
- âext-transient-seatâ â dient der Erstellung von vorĂŒbergehenden unabhĂ€ngigen Sitzungen (seat), die fĂŒr die Nutzung zusammen mit virtuellen EingabegerĂ€ten ausgelegt sind. Beispielsweise bei der Umsetzung der Möglichkeit, sich mit einem entfernten Desktop kann das Protokoll fĂŒr jeden Benutzer eine separate Sitzung mit einer virtuellen Tastatur und Maus ermöglichen.
- âxdg-toplevel-dragâ â erweitert den âDrag & Dropâ-Mechanismus um die Möglichkeit, Fenster oberster Ebene an Bewegungsoperationen anzuhĂ€ngen, was beispielsweise fĂŒr das Drag & Drop von Symbolleisten oder Browser-Tabs verwendet werden kann. Das neue Protokoll ermöglicht es, abtrennbare Teile eines Fensters zu erstellen, die beim Drag & Drop aus diesem Fenster neue Fenster werden und ĂŒber bestehenden Fenstern bewegt werden können, bevor sie wieder angehĂ€ngt werden.
- âxdg-dialogâ â ermöglicht es, OberflĂ€chen oberster Ebene Merkmale zuzuweisen, die spezifisch fĂŒr Dialogfenster sind, zum Beispiel können modale Dialoge erstellt werden, die die Interaktion des Benutzers mit dem restlichen Teil der OberflĂ€che blockieren.
- âlinux-drm-syncobjâ â bietet Werkzeuge fĂŒr die explizite Synchronisierung von Buffern mithilfe von DRM-Synchronisierungsobjekten (Direct Rendering Manager). Es wird erwartet, dass das vorgeschlagene Protokoll beim Synchronisieren von Render-Operationen im Buffer die Arbeit mit Grafikkarten-APIs wie Vulkan und OpenGL verbessert (die Implementierung basiert auf Handlern in Treibern). Das neue Protokoll ermöglicht es, sicherzustellen, dass die Render-Operation im Buffer abgeschlossen ist, bevor der Composite-Manager diesen Buffer anzeigt.
Protokolle, die im âunstableâ-Zweig entwickelt werden:
- âfullscreen-shellâ â Steuerung des Vollbildmodus.
- âinput-methodâ â Verarbeitung von Eingabemethoden.
- «idle-inhibit» â Verhinderung des Starts des Bildschirmschoners.
- «input-timestamps» â Zeitstempel fĂŒr Eingabeereignisse.
- «keyboard-shortcuts-inhibit» â Verwaltung der Anheftung von Tastenkombinationen und Hotkeys.
- «linux-explicit-synchronization» â Linux-spezifischer Mechanismus zur Synchronisierung von Puffern in Bezug auf OberflĂ€chen.
- «pointer-gestures» â Verwaltung von Touchscreen-Eingaben.
- «pointer constraints» â EinschrĂ€nkungen fĂŒr Zeiger (Sperre).
- «primary-selection» â GewĂ€hrleistet analog zu X11 die FunktionalitĂ€t des primĂ€ren Clipboards (primary selection), dessen Informationen gewöhnlich mit der mittleren Maustaste eingefĂŒgt werden.
- «relative pointer events» â relative Zeigereignisse.
- «text-input» â Organisation der Texteingabe.
- «xdg-foreign» â Schnittstelle zur Interaktion mit OberflĂ€chen eines 'benachbarten' Clients.
- «xdg-decoration» â Zeichnung von Fensterdekorationen auf der Serverseite.
- «xdg-output» â zusĂ€tzliche Informationen ĂŒber die Videoausgabe (verwendet fĂŒr fractional scaling).
- «xwayland-keyboard-grab» â Erfassen von Eingaben in XWayland-Anwendungen.
Quelle: opennet.ru
