Die Ausgabe des Pakets wayland-protocols 1.39 wurde veröffentlicht, das eine Reihe von Protokollen und Erweiterungen enthĂ€lt, die das grundlegende Wayland-Protokoll ergĂ€nzen und die notwendigen Funktionen fĂŒr den Aufbau von Kompositionsservern und Benutzerumgebungen bereitstellen.
Alle Protokolle durchlaufen nacheinander die Phasen der Entwicklung, des Tests und der Stabilisierung. Nach Abschluss der Entwicklungsphase (Kategorie âunstableâ) wird das Protokoll in den Branch âstagingâ ĂŒberfĂŒhrt und offiziell Bestandteil des Katalogs der wayland-protocols. Nach Beendigung der Tests wird es in die stabile Kategorie verschoben. Protokolle aus der Kategorie âstagingâ können bereits in Composite-Servern und -Clients verwendet werden, wo die entsprechende FunktionalitĂ€t erforderlich ist. Im Gegensatz zur Kategorie âunstableâ sind im âstagingâ keine Ănderungen erlaubt, die die KompatibilitĂ€t beeintrĂ€chtigen. Bei der Entdeckung von Problemen oder MĂ€ngeln wĂ€hrend der Tests kann jedoch ein erheblicher Austausch des Protokolls oder einer anderen Wayland-Erweiterung nicht ausgeschlossen werden.
In der neuen Version wurde eine zusĂ€tzliche Phase fĂŒr die Förderung von Protokollen eingefĂŒhrt â âexperimentalâ, die darauf abzielt, die HĂŒrden fĂŒr die Einbeziehung von Protokollen in das Wayland-Protokollset zu verringern, die Ăbermittlung der Protokolle an die Entwickler zu beschleunigen und die frĂŒhzeitige Implementierung in bestehenden Projekten zu fördern. Diese neue Phase ermöglicht es den Protokollentwicklern, lange Diskussionen und Verzögerungen vor der Aufnahme in die Wayland-Protokolle zu vermeiden.
Um ein Protokoll in die Phase âstagingâ zu bringen, ist es erforderlich, ein UnterstĂŒtzungsteam zu bilden und eine bestimmte Anzahl von BestĂ€tigungen (ACK) von den Begutachtern zu erhalten. FĂŒr die Aufnahme in âexperimentalâ genĂŒgt es, dass innerhalb einer zweiwöchigen Begutachtungsfrist keine EinwĂ€nde (NACK) erhoben werden. In der Phase âexperimentalâ sind Ănderungen, die die KompatibilitĂ€t beeintrĂ€chtigen, sowie die HinzufĂŒgung von ârohenâ Protokollen zulĂ€ssig, die schrittweise auf das erforderliche Niveau gebracht werden können.
Die Protokolle wurden in die Kategorie âstagingâ hinzugefĂŒgt:
- ext-data-control â ermöglicht privilegierten Kunden die Verwaltung der Datenverarbeitung, beispielsweise zur Implementierung von Clipboard-Managern.
- ext-workspace â implementiert das Konzept virtuellen ArbeitsflĂ€chen und bietet Ereignisse mit Informationen ĂŒber den Status der Desktops sowie Möglichkeiten zur Aktivierung und Deaktivierung von Desktops. Das Protokoll kann verwendet werden, um Panels und Indikatoren zu erstellen, die eine Liste verfĂŒgbarer virtueller Desktops anzeigen und den Wechsel zwischen ihnen ermöglichen.
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.
- âlinux-dmabufâ â ermöglicht die gemeinsame Nutzung mehrerer Grafikkarten durch die DMA-BUF-Technologie (ermöglicht die Erstellung eines wl_buffer auf Basis von DMA-BUF).
- "tablet" â Organisation der Eingabe von Grafiktabels.
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.
- âext-transient-seatâ ist fĂŒr die Schaffung temporĂ€rer unabhĂ€ngiger Sitzungen (seats) vorgesehen, die fĂŒr die Nutzung mit virtuellen EingabegerĂ€ten ausgelegt sind. Beispielsweise ermöglicht das Protokoll die Bereitstellung separater Sitzungen mit virtueller Tastatur und Maus fĂŒr jeden Benutzer bei der Implementierung der Möglichkeit zur Verbindung mit einem Remote-Desktop.
- âxdg-toplevel-dragâ erweitert den Mechanismus âDrag & Dropâ um die Möglichkeit, Top-Level-Fenster an den Ziehvorgang zu koppeln, was beispielsweise verwendet werden kann, um das Ziehen von Werkzeugleisten oder Browser-Tabs zu organisieren. Das neue Protokoll erlaubt es, abtrennbare Teile eines Fensters zu erstellen, die beim Ziehen aus diesem Fenster neue Fenster werden und ĂŒber dem bestehenden Fenster verschoben werden können, bevor sie wieder angeheftet werden.
- âxdg-dialogâ ermöglicht es, Top-Level-OberflĂ€chen spezifische Merkmale fĂŒr Dialogfenster zuzuweisen, zum Beispiel können modale Dialoge erstellt werden, die die Interaktion des Benutzers mit dem restlichen Teil der BenutzeroberflĂ€che blockieren.
- «linux-drm-syncobj» â bietet Werkzeuge fĂŒr die explizite Synchronisierung von Buffern mithilfe von DRM-Synchronisationsobjekten (Direct Rendering Manager). Im Kontext der Synchronisation beim Rendern in einen Buffer wird erwartet, dass das vorgeschlagene Protokoll die Zusammenarbeit mit Treibern auf Basis der Grafik-APIs Vulkan und OpenGL verbessert (die Implementierung basiert auf Handlern in den Treibern). Das neue Protokoll ermöglicht es, sicherzustellen, dass der Rendering-Vorgang in den Buffer abgeschlossen ist, bevor der Composite-Manager diesen Buffer anzeigt.
- Der alpha-Modifikator ermöglicht es den Kunden, den Transparenzgrad der OberflÀche zu Àndern und Transparenzoperationen an den Composite-Server auszulagern, der diese Operationen wiederum an KMS weiterleiten kann.
- xdg-toplevel-icon â bindet das Icon an das oberste Fenster.
- 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 die Ausgabe eines Systemsignals, das beispielsweise als Warnung in Terminalemulatoren verwendet werden kann. Die Art der Signalausgabe liegt im Ermessen des Compositormanagers; es kann nicht nur ein Ton, sondern auch eine visuelle RĂŒckmeldung sein.
- fifo â implementiert den FIFO-Mechanismus (First In, First Out) fĂŒr die Verarbeitung der Aktualisierungswarteschlange der angezeigten OberflĂ€che. Praktisch gesehen erlaubt das Protokoll, beim Rendern das Warten auf den Abschluss des vertikalen Synchronizationssignals (vblank) anstelle von Callback-Aufrufen bei jeder neuen Bilddarstellung zu nutzen, was das Problem mit der hohen GPU-Auslastung bei Verwendung von VSync löst.
- commit-timing â ermöglicht es, eine ZeitbeschrĂ€nkung an den Inhalt der OberflĂ€che zu binden (der komposite Server sollte Ănderungen am Inhalt möglichst innerhalb der angegebenen Zeit anzeigen, jedoch nicht frĂŒher).
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.
- «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
