В библиотеках Enlightenment появилась поддержка дисплейного сервера Wayland

16.01.2012 12:59

В набор библиотек EFL (Enlightenment Foundation Library), компоненты которого составляют основу проекта Enlightenment 17, интегрирована поддержка возможности работы поверх дисплейного сервера Wayland, без использования промежуточных прослоек. Ранее возможность работы поверх Wayland, без привлечения протокола X11, была обеспечена для GTK+, Qt, SDL и Clutter.

 В библиотеках Enlightenment появилась поддержка дисплейного сервера Wayland

В настоящее время для Wayland реализована поддержка отрисовки клиентских приложений. Поверх Wayland уже могут работать клиентские приложения, использующие как низкоуровневый API Ecore-Evas, так и базирующиеся на готовых виджетах Elementary. При запуске напрямую поверх Wayland подобные приложения корректно обрабатывают ввод, поддерживают изменение размера и перемещения окон. Поддерживается отрисовка с использованием совместного доступа к буферам Shared-memory и с использованием OpenGL ES2. В первом случае рендеринг выполняется только силами CPU, т.е. может использоваться для оборудования, не поддерживающего OpenGL. Во втором случае для отрисовки привлекаются средства аппаратного ускорения OpenGL ES 2.

Создание отдельного композитного сервера для Wayland на базе наработок Enlightenment пока относится к планам на будущее (над созданием своих композитных серверов для Wayland также работают проекты KWin и Compiz). После создания композитного сервера появится возможность бесшовной организации работы всего окружения Enlightenment только поверх Wayland, без использования протокола X11. Кроме того, планируется добавить поддержку Wayland в существующий код работающего на базе X11 композитного менеджера Enlightenment 0.17. Пока это лишь планы, но по мнению разработчиков Enlightenment для создания полнофункционального рабочего стола или пользовательского окружения для мобильных устройств потребуется внести дополнения в протокол Wayland.

Wayland отличается от X-сервера тем, что на уровне сервера выполняется только переадресация всех окон (размещение с учётом перекрытий, прозрачности и т.п.), а все операции рендеринга и управления окнами производятся на стороне клиента и передаются для обработки композитному серверу. Сервер не поддерживает API отрисовки и оперирует только с уже сформированными окнами, что позволяет избавится от двойной буферизации при использовании таких библиотек как EFL, GTK+, Qt и Clutter. Все операции отрисовки производятся силами дополнительных библиотек, например, OpenGL ES, FreeType и Cairo. Взаимодействие с аппаратным обеспечением, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM) графических карт, может производиться напрямую через KMS-модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Для обеспечения совместимости с программами, использующими низкоуровневые библиотеки X11, подготовлен компонент XWayland, позволяющий запустить X.Org-сервер в роли клиента Wayland.

 В библиотеках Enlightenment появилась поддержка дисплейного сервера Wayland