Louvre 1.0, ຫໍສະໝຸດສຳລັບການພັດທະນາເຊີບເວີປະສົມໂດຍອີງໃສ່ Wayland, ແມ່ນມີຢູ່

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

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

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

Louvre 1.0, ຫໍສະໝຸດສຳລັບການພັດທະນາເຊີບເວີປະສົມໂດຍອີງໃສ່ Wayland, ແມ່ນມີຢູ່

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

Louvre 1.0, ຫໍສະໝຸດສຳລັບການພັດທະນາເຊີບເວີປະສົມໂດຍອີງໃສ່ Wayland, ແມ່ນມີຢູ່
Louvre 1.0, ຫໍສະໝຸດສຳລັບການພັດທະນາເຊີບເວີປະສົມໂດຍອີງໃສ່ Wayland, ແມ່ນມີຢູ່


ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ