Die Veröffentlichung des Pakets wayland-protocols 1.43, das eine Sammlung von Protokollen und Erweiterungen enthĂ€lt, die das Basisprotokoll Wayland ergĂ€nzen und Funktionen bereitstellen, die fĂŒr den Aufbau von Compositing-Servern und Benutzerumgebungen erforderlich sind.
In Wayland-Protocols 1.43 wurde das neue Protokoll âxdg-toplevel-tagâ eingefĂŒhrt, das es Wayland-Clients ermöglicht, Tags an OberflĂ€chen der obersten Ebene anzuhĂ€ngen, die der Compositing-Server zur Identifizierung von Fenstern nach dem Neustart der Anwendung verwenden kann (zum Beispiel kann die Anwendung die Tags âHauptfensterâ und âEinstellungenâ fĂŒr das Hauptfenster und das Einstellungsfenster festlegen). Eine solche Identifizierung ist nĂŒtzlich, um die Position, GröĂe und Eigenschaften von Fenstern nach dem Neustart wiederherzustellen und um bestimmte Regeln fĂŒr verschiedene Fenstertypen zu bestimmen.
Zu weiteren Verbesserungen gehört die HinzufĂŒgung von Informationen zu den EinschrĂ€nkungen von Operationen an den RĂ€ndern der obersten OberflĂ€che im Protokoll xdg-shell, die vom Compositing-Manager verwendet werden können, um Wayland-Clients ĂŒber bestehende EinschrĂ€nkungen zu informieren, zum Beispiel, ob Fenster ihre GröĂe Ă€ndern können oder nicht.
Alle Protokolle durchlaufen konsequent Entwicklungs-, Test- und Stabilisierungsphasen. Nach Abschluss der Entwicklungsphase (Kategorie âunstableâ) wird das Protokoll in den Branch âstagingâ verschoben und offiziell in das Set von wayland-protocols aufgenommen, und nach Abschluss der Tests wird es in die stabile Kategorie verschoben. Protokolle aus der Kategorie âstagingâ können bereits in Kompositionsservern und Clients verwendet werden, wo die damit verbundenen Funktionen erforderlich sind. Im Gegensatz zur Kategorie âunstableâ sind in âstagingâ Ănderungen, die die KompatibilitĂ€t verletzen, verboten, aber im Falle von Problemen und MĂ€ngeln wĂ€hrend der Tests ist ein Austausch durch eine neue signifikante Version des Protokolls oder eine andere Wayland-Erweiterung nicht ausgeschlossen.
Um die Ăbermittlung von Protokollen an Entwickler zu beschleunigen und die frĂŒhe Implementierung von Protokollen in bestehenden Projekten zu fördern, wurde seit der letzten Version zusĂ€tzlich die Phase âexperimentalâ eingefĂŒhrt, in der Ănderungen vorgenommen werden dĂŒrfen, die die KompatibilitĂ€t verletzen, sowie âroheâ Protokolle hinzugefĂŒgt werden können, die schrittweise auf das erforderliche Niveau gebracht werden. WĂ€hrend zur Erreichung der Phase âstagingâ ein UnterstĂŒtzerteam gebildet und eine bestimmte Anzahl von BestĂ€tigungen (ACK) von den PrĂŒfern eingeholt werden muss, genĂŒgt es fĂŒr die Phase âexperimentalâ, dass innerhalb eines zweiwöchigen PrĂŒfzeitraums keine WidersprĂŒche (NACK) vorliegen.
Aktuell umfasst das Set von wayland-protocols folgende stabile Protokolle, die AbwÀrtskompatibilitÀt gewÀhrleisten:
- â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â â eine Schnittstelle zur Erstellung und Interaktion mit OberflĂ€chen als Fenstern, die es erlaubt, diese auf dem Bildschirm zu verschieben, zu minimieren, zu maximieren, die GröĂe zu Ă€ndern usw.
- âlinux-dmabufâ â bietet Möglichkeiten zur Erstellung von wl_buffer auf Basis von DMA-BUF.
- âtabletâ â Eingabeverarbeitung 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 den Clients, dem Kompositionsserver Informationen ĂŒber den darzustellenden Inhalt zu ĂŒbermitteln, die zur Optimierung des Verhaltens in Anbetracht des Inhalts verwendet werden können, z. B. zur Festlegung spezifischer DRM-Eigenschaften wie âcontent typeâ. Folgende Inhaltstypen werden unterstĂŒtzt: none (keine Daten ĂŒber den Datentyp), photo (darstellung digitaler Fotos, die minimale Verarbeitung erfordert), video (Video oder Animation, die eine genauere Synchronisation erfordert, um Ruckler auszuschlieĂen) und game (Spiele mit minimaler Verzögerung).
- 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â ist fĂŒr die Erstellung temporĂ€rer unabhĂ€ngiger Sitzungen (seats) vorgesehen, die fĂŒr die Verwendung mit virtuellen EingabegerĂ€ten vorgesehen sind. Beispielsweise ermöglicht das Protokoll beim Implementieren einer Remote-Desktop-Verbindung die Erstellung separater Sitzungen mit virtueller Tastatur und Maus fĂŒr jeden Benutzer.
- â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 zur expliziten Synchronisation von Puffer mittels DRM-Synchronisationsobjekten (Direct Rendering Manager). Es wird davon ausgegangen, dass das vorgeschlagene Protokoll im Kontext der Synchronisation beim Rendern in den Puffer die Arbeit mit Treibern auf Basis der Grafik-APIs Vulkan und OpenGL verbessern wird (die Implementierung basiert auf Handler in den Treibern). Das neue Protokoll ermöglicht es, sicherzustellen, dass die Zeichnung in den Puffer abgeschlossen ist, bevor der Kompositionsmanager diesen Puffer anzeigt.
- alpha-modifier, der es Kunden ermöglicht, den Transparenzgrad der OberflÀche zu Àndern und die VorgÀnge zur GewÀhrleistung der Transparenz an den Compositing-Server auszulagern, der diese VorgÀnge dann an KMS weiterleiten kann.
- xdg-toplevel-icon â bindet das Symbol an das Fenster der oberen Ebene.
- ext-image-capture-source und ext-image-copy-capture â organisieren die Erfassung von Inhalten, die auf dem Bildschirm angezeigt werden.
- xdg-system-bell â ermöglicht das Ausgeben eines Systemsignals, das beispielsweise als Warnung im Terminalemulator verwendet werden kann. Die Form der Signalgebung wird nach Ermessen des Compositing-Managers festgelegt, dies kann nicht nur Ton, sondern auch eine visuelle RĂŒckmeldung sein.
- fifo â implementiert einen FIFO-Mechanismus (first in, first out) zur Verarbeitung der Aktualisierungswarteschlange fĂŒr den angezeigten Inhalt. Praktisch ermöglicht das Protokoll die Ausgabe unter Nutzung des Wartens auf das Ende der vertikalen Synchronisierung (vblank) anstelle von Callback-Aufrufen bei jeder Bereitschaft zur Anzeige eines neuen Frames, was das Problem der hohen GPU-Belastung bei Verwendung von VSync löst.
- commit-timing â ermöglicht es, eine ZeitbeschrĂ€nkung an den Inhalt der OberflĂ€che zu binden (der Compositing-Server sollte Ănderungen des Inhalts nach Möglichkeit innerhalb des angegebenen Zeitrahmens anzeigen, jedoch nicht frĂŒher).
- ext-data-control â ermöglicht privilegierten Clients die Verwaltung der Datenverarbeitung, beispielsweise zur Implementierung von Zwischenablage-Managern.
- ext-workspace â implementiert das Konzept virtuellen ArbeitsplĂ€tzen und bietet Ereignisse mit Informationen ĂŒber den Zustand der ArbeitsflĂ€chen sowie Möglichkeiten zur Aktivierung und Deaktivierung von ArbeitsflĂ€chen. Das Protokoll kann verwendet werden, um Panels und Anzeigen zu erstellen, die eine Liste verfĂŒgbarer virtueller ArbeitsflĂ€chen anzeigen und den Wechsel zwischen diesen ermöglichen.
- color-management â bietet Funktionen fĂŒr die Farbverwaltung und unterstĂŒtzt den erweiterten Dynamikbereich fĂŒr die Helligkeit (HDR, High Dynamic Range). Mithilfe der hinzugefĂŒgten Erweiterung können Clientanwendungen Informationen ĂŒber farbbezogene Eigenschaften von AusgabegerĂ€ten abrufen und dem Compositing-Server Daten ĂŒber die Farbwiedergabeeigenschaften ihres eigenen Inhalts ĂŒbermitteln. Im Compositing- Server kann diese Information fĂŒr die automatische Steuerung der Farbdarstellung beim Anzeigen von Inhalten auf verschiedenen AusgabegerĂ€ten verwendet werden, beispielsweise zur Anpassung von Inhalten, um sie fĂŒr die Anzeige auf HDR-Monitoren geeignet zu machen. FĂŒr die Beschreibung von FarbflĂ€chen werden ICC-Profile verwendet.
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
