Po ośmiu miesiącach pracy opublikowano stabilną wersję kompozytowego serwera Weston 12.0, rozwijającego technologie wspierające pełnoprawną obsługę protokołu Wayland w Enlightenment, GNOME, KDE i innych środowiskach użytkownika. Rozwój Weston ma na celu dostarczenie wysokiej jakości bazy kodowej oraz przykładów do wykorzystania Waylanda w środowiskach desktopowych oraz wbudowanych rozwiązaniach, takich jak platformy do samochodowych systemów multimedialnych, smartfonów, telewizorów i innych urządzeń konsumenckich. Kod projektu udostępniany jest na licencji MIT.
Zmiana istotnego numeru wersji Weston jest spowodowana zmianami ABI, które naruszają kompatybilność. Zmiany w nowej gałęzi Weston:
- Dodano backend do organizacji zdalnego dostępu do pulpitu — backed-vnc, pełniący funkcje podobne do backend-rpd. Protokół VNC został zaimplementowany za pomocą aml i neatvnc. Wspierana jest autoryzacja użytkownika oraz szyfrowanie kanału komunikacyjnego (TLS).
- Dodano backend do obsługi multimediów. serwerem PipeWire.
- Zmiany w backendzie DRM (Direct Rendering Manager):
- Wprowadzono obsługę konfiguracji z wieloma GPU. Aby wykorzystać dodatkowe GPU, dodano opcję „—additional-devices lista_urządzeń_wyjściowych”.
- Dodano wsparcie dla protokołu tearing-control, który wyłącza pionową synchronizację (VSync) z impulsami wygaszania klatek, stosowanej w celu zapobiegania zrywaniu obrazu (tearing). W programach gier wyłączenie VSync pozwala na skrócenie opóźnień przy wyświetlaniu na ekranie, kosztem pojawiania się artefaktów spowodowanych zrywaniem.
- Dodano wsparcie dla określania typów zawartości dla HDMI (grafika, zdjęcia, filmy i gry).
- Dodano oraz gdzie to możliwe włączono właściwość obrotu płaszczyzny.
- Dodano wsparcie dla opóźnionych konektorów (writeback connector), wykorzystywanych do tworzenia zrzutów ekranu.
- Dodano właściwość do określenia poziomu przezroczystości płaszczyzny.
- Do analizy metadanych EDID wykorzystano zewnętrzną bibliotekę libdisplay-info.
- W backend-wayland zaimplementowano operacje zmiany rozmiaru, wykorzystując rozszerzenie xdg-shell.
- W backendzie zdalnego dostępu backend-rdp dodano wstępną obsługę systemów wielomonitorowych (multi-head).
- W backendzie backend-headless, przeznaczonym do pracy na systemach bez wyświetlacza, dodano wsparcie dla dekoracji wyjścia, stosowanej do testowania wtyczki color-lcms.
- Komponent launcher-logind został uznany za przestarzały i domyślnie wyłączony, zamiast niego zaleca się korzystanie z launcher-libseat, który również obsługuje logind.
- W libweston/desktop (libweston-desktop) wdrożono obsługę stanu oczekiwania, stosowanego w fazie przed podłączeniem do klienta bufora wyjściowego, co może być używane na przykład do uruchomienia klienta od samego początku w trybie pełnoekranowym.
- Wprowadzono protokół weston-output-capture, zaprojektowany do tworzenia zrzutów ekranu i stanowiący bardziej funkcjonalny zamiennik starego protokołu weston-screenshooter.
- Dodano wsparcie dla protokołu xwayland_shell_v1, który umożliwia stworzenie obiektu xwayland_surface_v1 dla określonej powierzchni wl_surface.
- W bibliotece libweston wprowadzono wsparcie dla uwierzytelniania użytkowników przez PAM i dodano wsparcie czwartej wersji interfejsu programowania wl_output.
- Do procesu compositor dodano uproszczony tryb wyboru backendu, shell i renderera, co pozwala na użycie składni «—backend=headless», «—shell=foo» i «—renderer=gl|pixman» zamiast «—backend=headless-backend.so», «—shell=foo-shell.so» i «—renderer=gl-renderer.so».
- W kliencie simple-egl dodano wsparcie dla protokołu fractional-scale, umożliwiającego użycie niecałkowitych wartości skali, oraz wprowadzono tryb pionowego rysowania panelu.
- W shellu dla samochodowych systemów informacyjno-rozrywkowych ivi-shell wdrożono aktywację fokusu wejścia z klawiatury dla powierzchni xdg-shell, realizowaną na wzór aktywacji wejścia w shellach desktop-shell i kiosk-shell.
- Współdzielona biblioteka libweston-desktop została zintegrowana z biblioteką libweston, co pozwoli na dostęp do wszystkich funkcji wcześniej oferowanych w libweston-desktop.
Źródło: opennet.ru
