Roman Gilg, w rozwoju KDE, Wayland, Xwayland i X Server, projekt (KWin Fast Track), rozwijający elastyczny i łatwy w użyciu menedżer okien dla Wayland i X11, oparty na kodzie . Oprócz menedżera okien projekt rozwija bibliotekę z realizacją powłoki nad libwayland dla Qt/C++, kontynuując rozwój , ale uwolnioną od powiązania z Qt. Kod udostępniany jest na licencjach GPLv2 i LGPLv2.
Celem projektu jest przekształcenie KWin i KWayland z wykorzystaniem
nowoczesnych technologii i praktyk rozwoju, które pozwalają na przyspieszenie postępu projektu, refaktoryzację kodu, dodanie optymalizacji i uproszczenie wprowadzania fundamentalnych innowacji, których integracja w KWin w obecnej formie jest utrudniona. KWinFT i Wrapland mogą być używane jako przezroczysta alternatywa dla KWin i KWayland, ale nie są ograniczone przez ograniczenia nałożone przez powiązanie KWin z wieloma produktami, gdzie utrzymanie pełnej zgodności jest priorytetem, który utrudnia wprowadzanie innowacji.
W KWinFT deweloperzy mają swobodę działania i mogą eksperymentować z nowymi możliwościami, dążąc do zachowania stabilności poprzez zastosowanie bardziej nowoczesnych technik rozwoju. Na przykład, w celu testowania kodu KWinFT używana jest system ciągłej integracji, obejmujący kontrolę z wykorzystaniem różnych linterów, automatyczne tworzenie kompilacji i zaawansowane testowanie. Jeśli chodzi o rozwój funkcjonalności, główną uwagę w KWinFT poświęcono zapewnieniu wysokiej jakości i pełnego wsparcia dla protokołu
Wayland, w tym przekształceniu architektonicznych cech KWin, które utrudniają integrację z Wayland.
Wśród już dodanych do KWinFT eksperymentalnych innowacji wyróżniają się:
- Przebudowany proces kompozycji, co pozwoliło na znaczne poprawienie renderowania treści pod zarządzaniem X11 i Wayland. Dodatkowo dodany został timer w celu minimalizacji opóźnień między tworzeniem obrazu a jego wyświetleniem na ekranie.
- Zrealizowano rozszerzenie protokołu Wayland "", umożliwiające klientowi wykonywanie działań związanych ze skalowaniem i obcinaniem krawędzi powierzchni po stronie serwera. W połączeniu z następnym znaczącym wydaniem XWayland, rozszerzenie to pozwoli na emulację zmiany rozdzielczości ekranu dla starszych gier.
- Pełne wsparcie dla rotacji i lustrzanego odbicia wyjścia w sesjach opartych na Wayland.
Wrapland to zaprojektowany w stylu Qt interfejs programistyczny, który oferuje dostęp do funkcji libwayland w formie przystosowanej do łatwego wykorzystania w projektach C++. Początkowo planowano rozwijać Wrapland jako fork KWayland, jednak z powodu niezadowalającego stanu kodu KWayland, obecnie traktuje się go jako projekt całkowitej przebudowy KWayland. Najważniejszą różnicą między Wrapland a KWayland jest pozbycie się powiązania z Qt oraz możliwość używania go niezależnie bez instalacji Qt. W przyszłości Wrapland ma być uniwersalną biblioteką z API C++, eliminującą potrzebę korzystania z API C libwayland.
Gotowe pakiety są dostępne dla użytkowników Manjaro Linux. Aby zaangażować KWinFT, wystarczy zainstalować z repozytorium kwinft, a w celu powrotu do standardowego KWin - zainstalować pakiet kwin. Użycie Wrapland nie ogranicza się do KDE, na przykład przygotowano implementację klienta dla stosowanego w protokole zarządzania wyjściem, umożliwiającym w kompozytowych serwerach opartych na wlroots (, ) używanie KScreen do konfiguracji wyjścia.
Tymczasem, publikacja aktualizacji projektu , który tworzy edycję menedżera kompozytowego KWin z łatkami zwiększającymi responsywność interfejsu i naprawiającymi niektóre problemy związane z szybkością reakcji na działania użytkownika, takie jak opóźnienia w wejściu. Aby zapewnić ochronę przed rwiącym wyświetlaniem (tearing) bez negatywnego wpływu na responsywność, KWin-lowlatency oprócz DRM VBlank wspiera użycie glXWaitVideoSync, glFinish lub NVIDIA VSync (pierwotnie w KWin zastosowano zabezpieczenia przed rwiącym wyświetlaniem z użyciem timera, co może prowadzić do dużych opóźnień (do 50 ms) wyjścia, a w konsekwencji do opóźnienia reakcji na wejście). Nowe wydania KWin-lowlatency mogą być stosowane zamiast standardowego serwera kompozytowego w KDE Plasma 5.18.
Źródło: opennet.ru
