13.04.2024

Новая версия Louvre 1.2, библиотеки для разработки композитных серверов на базе Wayland

Доступен выпуск библиотеки Louvre 1.2.0, предоставляющей компоненты для разработки композитных серверов на базе протокола Wayland. Библиотека берёт на себя выполнение всех низкоуровневых операций, включая управления графическими буферами, взаимодействие с подсистемами ввода и графическими API в Linux, и также предлагает готовые реализации различных расширений протокола Wayland. Созданный на базе Louvre композитный сервер, потребляет заметно меньше ресурсов и демонстрирует более высокую производительность, по сравнению с Weston и Sway. Код написан на языке С++ и распространяется под лицензией GPLv3. Обзор возможностей Louvre можно прочитать в анонсе первого выпуска проекта.

В новой версии:

  • Добавлена поддержка выставлении нецелых значений масштаба (fractional scale) и пересэмплирования (oversampling) для снижения артефактов от сглаживания при увеличении масштаба. Для дробного масштабирования задействован Wayland-протокол fractional-scale.
  • При помощи протокола tearing-control реализована возможность отключения вертикальной синхронизации (VSync) с кадровым гасящим импульсом, применяемой для защиты от появления разрывов при выводе (tearing) в полноэкранных приложениях. В мультимедийных приложениях появление артефактов из-за разрывов является нежелательным эффектом, но в игровых программах с артефактами можно смириться, если борьба с ними приводит к дополнительным задержкам.
  • Добавлена поддержка гамма-коррекции с использованием Wayland-протокола wlr-gamma-control.
  • Добавлена поддержка Wayland-протокола «viewporter«, который позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
  • В класс LPainter добавлены методы для отрисовки областей текстур с высокой точностью и применением трансформаций.
  • В классе LTextureView реализована поддержка исходных прямоугольников («source rect», прямоугольная область для отображения) и трансформаций.
  • Добавлен класс LBitset для снижения потребления памяти при хранении флагов и состояний.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60606 Источник.