Dostępna jest Louvre 1.0, biblioteka do tworzenia serwerów złożonych opartych na Wayland

Twórcy projektu Cuarzo OS zaprezentowali pierwsze wydanie biblioteki Louvre, która dostarcza komponenty do rozwoju serwerów kompozytowych opartych na protokole Wayland. Kod napisany jest w C++ i rozpowszechniany na licencji GPLv3.

Biblioteka zajmuje się wszystkimi operacjami niskiego poziomu, w tym zarządzaniem buforami graficznymi, interakcją z podsystemami wejściowymi i graficznymi API w systemie Linux, a także oferuje gotowe implementacje różnych rozszerzeń protokołu Wayland. Obecność gotowych komponentów pozwala nie tracić miesięcy pracy na tworzenie standardowych elementów niskopoziomowych, ale od razu otrzymać gotowy i działający złożony framework serwerowy, który można dostosować do swoich potrzeb i uzupełnić o niezbędne rozszerzona funkcjonalność. Jeśli to konieczne, programista może zastąpić metody dostarczone przez bibliotekę do obsługi protokołów, zdarzeń wejściowych i zdarzeń renderowania.

Według twórców biblioteka zauważalnie przewyższa wydajność konkurencyjnymi rozwiązaniami. Przykładowo przykładowy serwer złożony louvre-weston-clone, napisany przy użyciu Louvre, który odtwarza funkcjonalność projektu Weston, w porównaniu z Weston i Sway, zużywa w testach mniej zasobów procesora i karty graficznej, a także pozwala aby osiągnąć niezmiennie wysoką liczbę klatek na sekundę, nawet w złożonych scenariuszach.

Dostępna jest Louvre 1.0, biblioteka do tworzenia serwerów złożonych opartych na Wayland

Najważniejsze cechy Luwru:

  • Obsługa konfiguracji z wieloma procesorami graficznymi (Multi-GPU).
  • Obsługuje wiele sesji użytkownika (wielosesyjne, przełączanie TTY).
  • System renderowania obsługujący metody oparte na renderowaniu 2D (LPainter), scenach i widokach.
  • Możliwość korzystania z własnych shaderów i programów OpenGL ES 2.0.
  • Automatyczne przerysowywanie wykonywane w miarę potrzeb (tylko w przypadku zmiany zawartości obszaru).
  • Praca wielowątkowa, pozwalająca na osiągnięcie wysokiego FPS przy włączonej synchronizacji pionowej nawet przy renderowaniu skomplikowanych scenariuszy (implementacje jednowątkowe mają problemy z utrzymaniem wysokiego FPS ze względu na brakujące klatki, których nie można przetworzyć ze względu na opóźnienia w oczekiwaniu na synchronizację z impulsem wygaszenia klatek (vpuste).
  • Obsługuje pojedyncze, podwójne i potrójne buforowanie.
  • Implementacja schowka na dane tekstowe.
  • Obsługa Waylanda i rozszerzeń:
    • XDG Shell to interfejs do tworzenia i interakcji z powierzchniami w postaci okien, który umożliwia przesuwanie ich po ekranie, minimalizowanie, rozszerzanie, zmianę rozmiaru itp.
    • XDG Dekoracja - renderowanie dekoracji okiennych po stronie serwera.
    • Czas prezentacji – zapewnia wyświetlanie wideo.
    • Linux DMA-Buf - współdzielenie wielu kart graficznych przy użyciu technologii dma-buf.
  • Obsługuje pracę w środowiskach opartych na sterownikach Intel (i915), AMD (amdgpu) i NVIDIA (sterownik autorski lub nouveau).
  • Funkcje jeszcze nie zaimplementowane (na liście planów):
    • Zdarzenia dotykowe - obsługa zdarzeń na ekranie dotykowym.
    • Gesty wskaźnika — sterowanie na ekranie dotykowym.
    • Viewporter — umożliwia klientowi skalowanie i przycinanie krawędzi powierzchni po stronie serwera.
    • Transformacja obiektów LView.
    • XWayland - uruchamianie aplikacji X11.

Dostępna jest Louvre 1.0, biblioteka do tworzenia serwerów złożonych opartych na Wayland
Dostępna jest Louvre 1.0, biblioteka do tworzenia serwerów złożonych opartych na Wayland


Źródło: opennet.ru

Dodaj komentarz