Die neue Version Louvre 1.2, einer Bibliothek zur Entwicklung von kompositorischen Servern auf Basis von Wayland

Die Version 1.2.0 der Bibliothek Louvre ist verfügbar und bietet Komponenten für die Entwicklung von Compositing-Servern auf Basis des Wayland-Protokolls. Die Bibliothek übernimmt alle Low-Level-Operationen, einschließlich der Verwaltung von Grafik-Puffern, der Interaktion mit Eingabeverarbeitungssystemen und grafischen APIs unter Linux und bietet auch vorgefertigte Implementierungen verschiedener Wayland-Protokollerweiterungen an. Der auf Basis von Louvre erstellte Compositing-Server verbraucht deutlich weniger Ressourcen und zeigt eine höhere Leistung im Vergleich zu Weston und Sway. Der Code ist in C++ geschrieben und wird unter der GPLv3-Lizenz veröffentlicht. Eine Übersicht der Funktionen von Louvre kann in der Ankündigung der ersten Version des Projekts gelesen werden.

In der neuen Version:

  • Die Unterstützung für die Festlegung von nicht ganzzahligen Skalierungswerten (fractional scale) und Oversampling zur Reduzierung von Artefakten durch Glättung bei einer Vergrößerung des Maßstabs wurde hinzugefügt. Für das fractionale Scaling wird das Wayland-Protokoll fractional-scale verwendet.
  • Durch das Protokoll tearing-control wurde die Möglichkeit implementiert, die vertikale Synchronisation (VSync) mit einem Frame-Lose-Pulse zu deaktivieren, die zum Schutz vor Bildzerreißern (tearing) in Vollbildanwendungen verwendet wird. In Multimedia-Anwendungen sind Artefakte durch Bildzerreißer unerwünschte Effekte, während in Spielen mit diesen Artefakten umgegangen werden kann, solange die Bekämpfung derselben zu zusätzlichen Verzögerungen führt.
  • Die Unterstützung für Gamma-Korrektur wurde mit dem Wayland-Protokoll wlr-gamma-control hinzugefügt.
  • Die Unterstützung des Wayland-Protokolls „viewporter“ wurde hinzugefügt, das es dem Client ermöglicht, auf der Seite zu skalieren und die Kanten der Oberfläche zuzuschneiden. Server.
  • Der Klasse LPainter wurden Methoden zum präzisen Zeichnen von Texturbereichen unter Verwendung von Transformationen hinzugefügt.
  • In der Klasse LTextureView wurde die Unterstützung für ursprüngliche Rechtecke („source rect“, rechteckiger Bereich zum Anzeigen) und Transformationen implementiert.
  • Die Klasse LBitset wurde hinzugefügt, um den Speicherverbrauch bei der Speicherung von Flags und Zuständen zu reduzieren.

Quelle: opennet.ru

60GB SSD 8Gb DDR4