Yra biblioteka „Louvre 1.0“, skirta „Wayland“ pagrindu sukurti sudėtinius serverius

Разработчики проекта Cuarzo OS представили первый выпуск библиотеки Louvre, предоставляющей компоненты для разработки композитных серверов на базе протокола Wayland. Код написан на языке С++ и распространяется под лицензией GPLv3.

Библиотека берёт на себя выполнение всех низкоуровневых операций, включая управления графическими буферами, взаимодействие с подсистемами ввода и графическими API в Linux, и также предлагает готовые реализации различных расширений протокола Wayland. Наличие готовых компонентов даёт возможность не тратить месяцы работы на создание типовых низкоуровневых элементов, а сразу получить готовый и работающий каркас композитного сервера, который можно адаптировать под свои потребности и дополнить необходимой расширенной функциональностью. При необходимости разработчик может переопределить предоставляемые библиотекой методы для обработки протоколов, событий ввода и отрисовки.

По заявлению разработчиков, библиотека заметно опережает по производительности конкурирующие решения. Например, написанный при помощи Louvre пример композитного сервера louvre-weston-clone, воспроизводящий функциональность проекта Weston, по сравнению с Weston и Sway потребляет в проведённых тестах меньше ресурсов CPU и GPU, а также позволяет добиться стабильно высокого FPS, даже в сложных сценариях.

Yra biblioteka „Louvre 1.0“, skirta „Wayland“ pagrindu sukurti sudėtinius serverius

Основные возможности 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-приложений.

Yra biblioteka „Louvre 1.0“, skirta „Wayland“ pagrindu sukurti sudėtinius serverius
Yra biblioteka „Louvre 1.0“, skirta „Wayland“ pagrindu sukurti sudėtinius serverius


Šaltinis: opennet.ru

Добавить комментарий