Die Veröffentlichung der Bibliothek Louvre 1.2.0 ist jetzt verfügbar. Diese bietet Komponenten zur Entwicklung von Komposit-Servern auf Basis des Wayland-Protokolls. Die Bibliothek übernimmt alle Low-Level-Operationen, einschließlich der Verwaltung von grafischen Buffern, der Interaktion mit Eingabesystemen und grafischen APIs unter Linux und bietet zudem fertige Implementierungen verschiedener Erweiterungen des Wayland-Protokolls an. Ein auf der Louvre-Bibliothek basierender Komposit-Server benötigt deutlich weniger Ressourcen und zeigt eine höhere Leistung im Vergleich zu Weston und Sway. Der Code ist in C++ geschrieben und steht unter der Lizenz GPLv3. Eine Übersicht über die Möglichkeiten von Louvre finden Sie in der Ankündigung der ersten Projektversion.
In der neuen Version:
- Es wurde die Unterstützung für die Festlegung von nicht ganzzahligen Skalierungswerten (fractional scale) und Oversampling hinzugefügt, um Artefakte durch Glättung bei erhöhten Skalierungen zu reduzieren. Für die fractional-scale-Skalierung wird das Wayland-Protokoll fractional-scale verwendet.
- Durch das Tearing-Control-Protokoll wurde die Möglichkeit geschaffen, die vertikale Synchronisierung (VSync) mit einem Frame-Puls, der zur Vermeidung von Tearing in Vollbildanwendungen verwendet wird, zu deaktivieren. In Multimedia-Anwendungen sind Artefakte aufgrund von Tearing unerwünschte Effekte, jedoch kann man in Spielen mit diesen Artefakten leben, solange der Kampf dagegen zu zusätzlichen Verzögerungen führt.
- Unterstützung für die Gamma-Korrektur unter Verwendung des Wayland-Protokolls wlr-gamma-control hinzugefügt.
- Unterstützung für das Wayland-Protokoll 'viewporter' hinzugefügt, das es dem Client ermöglicht, Skalierungs- und Zuschneideoperationen auf der Oberfläche durchzuführen. Server.
- Der Klasse LPainter wurden Methoden zum Zeichnen von Texturbereichen mit hoher Präzision und Transformationsanwendungen hinzugefügt.
- In der Klasse LTextureView wurde Unterstützung für Quellrechtecke ('source rect', rechteckiger Bereich zur Darstellung) und Transformationen implementiert.
- Die Klasse LBitset wurde hinzugefügt, um den Speicherbedarf für die Speicherung von Flags und Zuständen zu reduzieren.
Quelle: opennet.ru
