Представен KWinFT, форк на KWin, фокусиран върху Wayland

Роман Гилг (Roman Gilg), участващ в разработката на KDE, Wayland, Xwayland и X Server, представи проект KWinFT (KWin Fast Track), развиващ гъвкав и лесен за използване композитен оконен мениджър за Wayland и X11, базиран на кодовата база KWin. Освен оконния мениджър, проектът също разработва библиотеката wrapland с реализиране на обвивка над libwayland за Qt/C++, продължаваща развитието на KWayland, но освободена от привързаността към Qt. Кодът се разпространява под лицензите GPLv2 и LGPLv2.

Целта на проекта е преосмисляне на KWin и KWayland с използване на
съвременни технологии и практики на разработка, позволяващи ускоряване на развитието на проекта, рефакторинг на кода, добавяне на оптимизации и опростяване на добавянето на основни иновации, интегрирането на които в KWin в текущия му вид е затруднено. KWinFT и Wrapland могат да се използват за прозрачна замяна на KWin и KWayland, но не са ограничени от рамките, наложени от връзката с KWin на много продукти, запазването на пълна съвместимост с които е приоритет, пречещ на напредъка на иновациите.

В KWinFT разработчиците имат свобода на действие и могат да експериментират с нови възможности, като запазват стабилността с помощта на по-съвременни техники за разработка. Например, за проверка на кода KWinFT се използва система за непрекъсната интеграция, включваща проверка с различни линтери, автоматично генериране на сборки и разширено тестване. Що се отнася до развитието на функционалността, основното внимание в KWinFT ще бъде насочено към осигуряване на качествена и пълна поддръжка на протокола
Wayland, включително преработка на архитектурните особености на KWin, усложняващи интеграцията с Wayland.

Сред вече добавените в KWinFT експериментални иновации, се открояват:

  • Преработен е процесът на композиране, което е позволило значително подобрение на визуализацията на съдържание под управлението на X11 и Wayland. Допълнително е добавен таймер за минимизиране на закъсненията между създаването на изображения и тяхното извеждане на екрана.
  • Реализирано е разширение на протокола Wayland "viewporter«, позволяващо на клиента да извършва действия по мащабиране и подрязване на ръбовете на повърхността на страна на сървъра. В комбинация с следващото значимо издание, разширението XWayland ще даде възможност за емулация на промяна на резолюцията на екрана за стари игри.
  • Пълна поддръжка на завъртане и огледално отражение на изхода за сесии, базирани на Wayland.

Wrapland предлага дизайнерски софтуерен интерфейс в стил Qt, предоставяйки достъп до функциите на libwayland в удобен за ползване формат в проекти на C++. Първоначално Wrapland беше планиран като fork на KWayland, но поради незадоволителното състояние на кода на KWayland, сега се разглежда като проект за пълна преработка на KWayland. Най-важната разлика между Wrapland и KWayland е освобождаването от зависимостта от Qt и възможността за използване самостоятелно, без инсталиране на Qt. В бъдеще Wrapland ще може да се използва като универсална библиотека с C++ API, освобождавайки разработчиците от необходимостта да използват C API на libwayland.

Готови пакети са формулирани за потребителите на Manjaro Linux. За да активирате KWinFT е необходимо да инсталирате от хранилището kwinft, а за връщане на стандартния KWin — да инсталирате пакета kwin. Използването на Wrapland не е ограничено до KDE, например, е подготвена реализация на клиент за използвания в wlroots протокол за управление на изхода, позволяващ в композитни сървъри базирани на wlroots (Sway, Wayfire) да се използва KScreen за настройка на изхода.

Междувременно, продължават проектът публикува актуализации KWin-lowlatency, оформящ редакция на композитния мениджър KWin с пачове за увеличаване на отзивчивостта на интерфейса и коригиране на някои проблеми, свързани със скоростта на реакция на действията на потребителя, като забавянето при въвеждане. За осигуряване на защита от разкъсвания (tearing) при изхода без негативно влияние върху отзивчивостта, освен DRM VBlank в KWin-lowlatency, се поддържа използването на glXWaitVideoSync, glFinish или NVIDIA VSync (първоначално наличната защита от разкъсвания в KWin е реализирана с таймер и може да доведе до дълги забавяния (до 50мс) при изхода и, следователно, до забавяне при въвеждане). Новите версии на KWin-lowlatency могат да се използват вместо стандартния композитен сървър в KDE Plasma 5.18.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster