Доступна 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 через пропуск кадрів, які не встигають обробити через затримки на очікування синхронізації з кадровим імпульсом, що гасить) ).
  • Підтримка одиночної, подвійної та потрійної буферизації.
  • Реалізація буфера обміну текстових даних.
  • Підтримка 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

Додати коментар або відгук