Nach achtmonatiger Entwicklung wurde eine stabile Version des Composite-Servers Weston 12.0 veröffentlicht, die Technologien weiterentwickelt, die vollständige Unterstützung des Wayland-Protokolls in Enlightenment, GNOME, KDE und anderen Desktop-Umgebungen ermöglichen. Die Entwicklung von Weston zielt darauf ab, eine qualitativ hochwertige Codebasis und Arbeitsbeispiele zur Nutzung von Wayland in Desktop-Umgebungen und eingebetteten Lösungen bereitzustellen, wie zum Beispiel Plattformen für automobile Infotainmentsysteme, Smartphones, Fernseher und andere Verbraucheranwendungen. Der Code des Projekts wird unter der MIT-Lizenz veröffentlicht.
Der Wechsel zu einer signifikanten Version von Weston ist auf Änderungen der ABI zurückzuführen, die die Kompatibilität beeinträchtigen. Änderungen im neuen Zweig von Weston:
- Ein Back-End zur Bereitstellung von Remote-Desktop-Zugriff wurde hinzugefügt – backed-vnc, das Funktionen ähnlich wie backend-rpd bietet. Das VNC-Protokoll wird mithilfe von aml und neatvnc implementiert. Die Benutzerauthentifizierung und die Verschlüsselung des Kommunikationskanals (TLS) werden unterstützt.
- Ein Back-End zur Multimedia-Verarbeitung wurde hinzugefügt. Server PipeWire.
- Änderungen im DRM-Back-End (Direct Rendering Manager):
- Unterstützung für Konfigurationen mit mehreren GPUs wurde implementiert. Um zusätzliche GPUs zu aktivieren, wurde die Option „—additional-devices liste_der_ausgabegeräte“ angeboten.
- Unterstützung für das Protokoll tearing-control zur Deaktivierung der vertikalen Synchronisation (VSync) mit einem Frame-Stopimpuls wurde hinzugefügt, um das Auftreten von Tearing zu vermeiden. In Gaming-Anwendungen kann die Deaktivierung von VSync Latenzen beim Bildschirmausgang verringern, jedoch auf Kosten der Erzeugung von Artefakten durch Tearing.
- Unterstützung für die Erkennung von Inhaltsarten für HDMI (Grafik, Fotos, Filme und Spiele) wurde hinzugefügt.
- Die Eigenschaft zur Drehung der Fläche wurde hinzugefügt und, wo möglich, aktiviert.
- Unterstützung für verzögerte Connectoren (writeback connector), die zur Erstellung von Screenshots verwendet werden, wurde hinzugefügt.
- Eine Eigenschaft zur Bestimmung des Transparenzniveaus der Fläche wurde hinzugefügt.
- Zur Auswertung von EDID-Metadaten wurde die externe Bibliothek libdisplay-info verwendet.
- Im backend-wayland wurden Größenänderungen unter Verwendung der xdg-shell-Erweiterung implementiert.
- Im Remote-Access-Backend backend-rdp wurde eine vorläufige Unterstützung für Multimonitorsysteme (multi-head) hinzugefügt.
- Im backend-headless, das für Systeme ohne Display vorgesehen ist, wurde Unterstützung für die Ausgabe-Dekoration hinzugefügt, die zum Testen des color-lcms-Plugins verwendet wird.
- Der veraltete und standardmäßig deaktivierte Launcher-Komponenten launcher-logind wurde ausgegliedert, stattdessen wird empfohlen, launcher-libseat zu verwenden, das ebenfalls logind unterstützt.
- In libweston/desktop (libweston-desktop) wurde die Unterstützung für den Wartestatus implementiert, der in der Phase vor der Anbindung des Ausgabepuffers an den Client angewendet wird, was beispielsweise für den Start eines Clients im Vollbildmodus von Anfang an verwendet werden kann.
- Das Protokoll weston-output-capture wurde implementiert, das für die Erstellung von Screenshots vorgesehen ist und eine funktionale Alternative zum alten Protokoll weston-screenshooter darstellt.
- Die Unterstützung für das Protokoll xwayland_shell_v1 wurde hinzugefügt, das die Erstellung eines Objekts xwayland_surface_v1 für eine bestimmte Oberfläche wl_surface ermöglicht.
- In der Bibliothek libweston wurde die Unterstützung für die Benutzerauthentifizierung über PAM implementiert, und die Unterstützung für die 4. Version der Programmierschnittstelle wl_output wurde hinzugefügt.
- Im Kompositor-Prozess wurde ein vereinfachter Modus für die Auswahl von Backend, Shell und Renderer hinzugefügt, der die Verwendung der Syntax "—backend=headless", "—shell=foo" und "—renderer=gl|pixman" anstelle von "—backend=headless-backend.so", "—shell=foo-shell.so" und "—renderer=gl-renderer.so" ermöglicht.
- Im Client simple-egl wurde die Unterstützung für das Protokoll fractional-scale hinzugefügt, das die Verwendung von nicht ganzzahligen Maßstabswerten ermöglicht, und der Modus für die vertikale Darstellung der Leiste wurde implementiert.
- In der Shell für Fahrzeug-Infotainment-Systeme, ivi-shell, wurde die Aktivierung des Eingabefokus mit der Tastatur für die Oberfläche xdg-shell implementiert, ähnlich der Aktivierung des Eingangs in desktop-shell und kiosk-shell.
- Die gemeinsame Bibliothek libweston-desktop wurde in die Bibliothek libweston integriert; die Verknüpfung von Anwendungen mit libweston ermöglicht den Zugriff auf alle zuvor in libweston-desktop bereitgestellten Funktionen.
Quelle: opennet.ru
