Анонсирован четвёртый стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.4, а также развиваемого параллельно композитного сервера Weston 1.4. Ветка 1.4 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений, расширяющих возможности протокола и композитного сервера Weston. С момента прошлого выпуска в Weston внесено 425 изменений, в Wayland - 46, что объясняется тем, что протокол уже достиг зрелого состояния. В разработке нового выпуска приняли участие 40 разработчиков.
Основные новшества Weston 1.4:
Реализация кнопок управления окном для бэкенда xwayland, нацеленного на обеспечение запуска X11-приложений поверх Wayland, и обеспечение корректного декорирования окон при вложенном запуске композитного сервера;
Оформление компонента рендеринга gl-renderer в форме загружаемого модуля и обеспечение возможности переключения на лету между выводом через pixman и gl-renderer. Указанное изменение позволяет ускорить запуск композитного сервера: можно вначале очень быстро запустить его с выводом через pixman, после чего загрузить gl-renderer и выполнить требующие большего времени операции инициализации EGL+GLES2;
Поддержка форматов фреймбуфера, отличных от XRGB8888 (формат можно настроить через опцию gbm-format в секции core файла конфигурации);
Задействование logind из состава systemd для организации привилегированного доступа, что позволяет запустить Weston поверх KMS без вспомогательного приложения weston-launch, запускаемого с повышенными привилегиями. В этом случае на logind ложится выполнение функций, ранее реализованных в weston-launch: включение доступа к устройству DRM (Direct Rendering Manager) и открытие устройств ввода.
Структура weston_surface разделена на две отдельные структуры weston_surface и weston_view, что позволяет отобразить поверхность в разных местах.
Поддержка горячего отключения устройств вывода. Если ранее, отключение монитора приводило к краху, то теперь окна корректно перемещаются на доступную на другом мониторе видимую область.
Обеспечена анимация смены фокуса ввода с клавиатуры и наглядный выбор активного окна;
Улучшена поддержка сенсорных экранов, в том числе добавлена возможность использование drag-and-drop интерфейса на сенсорном экране, перемещения и активации поверхностей касанием.
Началась работа над протоколом xdg-shell для организации взаимодействия между приложениями и десктоп-окружением, востребованного для обеспечения полноценной работы GNOME Shell поверх Wayland;
Поддержка проброса буферов из вложенных композитных серверов (когда один композитный сервер запускается поверх другого). Для этого определено новое EGL-расширение, позволяющее вложенному композитному серверу передать буфер первичному композитному серверу, т.е. пропустить операцию рендеринга и передать контент первичному композитному серверу в виде поверхности;
Добавлен протокол для обрезания краёв(Crop) и масштабирования (Scale), позволяющий клиенту указать, что должна быть представлена только заданная прямоугольная часть поверхности, с возможностью увеличения масштаба при необходимости;
В эмулятор терминала weston-terminal добавлена поддержка вывода истории операций, которую можно прокручивать через комбинации Ctrl+Shift UP/DOWN. Добавлено контекстное меню для упрощения доступа к запуску нового терминала, операциям выделения и вставки (Ctrl-Shift-C/V/N). Обеспечена поддержка выделения на сенсорном экране.
Основные новшества Wayland 1.4:
Добавлен триггер SIBGUS для о защиты от некорректного доступа клиентов к совместно используемым буферам (SHM Buffer);
Протокол для манипулирования субповерхностями (subsurface) перемещён в репозиторий wayland и теперь позиционируется как официальный протокол wayland;
Вwl_proxy_set_queue() обеспечена возможность указания NULL-очередей для возврата к очереди по умолчанию;
Устранено состояние гонки между вызовами wl_proxy_create() и wl_proxy_marshal().
Ряд изменений представлен для компонентов Mesa, их появление ожидается в следующем выпуске Mesa 10.1:
Поддержка вызова eglSwapInterval(dpy, 0), позволяющего приложению инициировать максимально возможную производительность рендеринга, но без синхронизации с кадровым гасящим импульсом (vblank). В weston-simple-egl данный режим может быть включен через опцию "-b";
Поддержка RGB565 в настойках EGL (EGLConfigs), даже если композитный сервер использует для фреймбуфера иной пиксельный формат;
Для выделения драйвером буфера без задействования flink теперь используется вызов __DRIimageLoaderExtension, что позволяет клиентам использовать узлы рендеринга drm (render nodes).
Вызов eglSwapBuffers() теперь очищает wl_display().
Подробности: http://www.opennet.ru/opennews/art.shtml?num=38923
