Разработчиците на проекта Cuarzo OS представиха първото издание на библиотеката Louvre, която предоставя компоненти за разработка на композитни сървъри на базата на протокола Wayland. Кодът е написан на C++ и се разпространява под лиценция GPLv3.
Библиотеката поема изпълнението на всички ниско ниво операции, включително управление на графични буфери, взаимодействие с подсистеми за въвеждане и графични API в Linux, и предлага готови реализации на различни разширения на протокола Wayland. Наличието на готови компоненти позволява да не се губят месеци работа за създаване на стандартни ниско ниво елементи, а веднага да се получи готов и функциониращ каркас на композитен сървър, който може да бъде адаптиран според нуждите и допълнен с необходимата разширена функционалност. При необходимост разработчикът може да преопредели предоставените от библиотеката методи за обработка на протоколи, събития за въвеждане и рендериране.
Според разработчиците библиотеката значително изпреварва конкурентните решения по производителност. Например, написаният с помощта на Louvre пример за композитен сървър louvre-weston-clone, който възпроизвежда функционалността на проекта Weston, консумира по-малко ресурси на CPU и GPU в проведените тестове в сравнение с Weston и Sway, а също така позволява постигане на стабилно високи FPS, дори в сложни сценарии.

Основни възможности на Louvre:
- Поддръжка на работа в конфигурации с множество GPU (Multi-GPU).
- Поддръжка на множество потребителски сесии (Multi-Session, превключване на TTY).
- Система за рендериране с поддръжка на методи на базата на 2D рендериране (LPainter), сцени (Scene) и представяния (Views).
- Възможност за използване на собствени шейдъри и програми OpenGL ES 2.0.
- Автоматично преразпределение, извършвано при необходимост (само при промяна на съдържанието на областта).
- Многопоточна работа, която позволява постигане на високи FPS с включен v-sync дори при рендериране на сложни сценарии (еднопоточните реализации имат проблеми с поддържането на високи FPS поради пропускане на кадри, които не могат да бъдат обработени заради забавяния при синхронизация с вграден импулс за загасване на кадри (vblank).
- Поддръжка на единична, двойна и тройна буферизация.
- Реализация буфера за обмен на текстови данни.
- Поддръжка на Wayland и разширения:
- XDG Shell — интерфейс за създаване и взаимодействие с повърхности, които действат като прозорци, позволяващ им да се местят по екрана, да се минимизират, разширяват, променят размер и др.
- XDG Decoration — рисуване на декорации на прозорци на страната на сървъра.
- Presentation Time — осигурява показването на видео.
- Linux DMA-Buf — споделяне на множество видеокарти чрез технологията dma-buf.
- Поддръжка на работа в среди, базирани на драйвери Intel (i915), AMD (amdgpu) и NVIDIA (патентован драйвер или nouveau).
- Все още неосъществени възможности (в списъка с планове):
- Touch Events — обработка на събития от сензорни екрани.
- Pointer Gestures — управление от сензорни екрани.
- Viewporter — позволява на клиента да извършва действия за мащабиране и изрязване на краищата на повърхността на страната на сървъра.
- Трансформация на обекти LView.
- XWayland — стартиране на X11 приложения.


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