Доступен графический тулкит GTK 4.22 со встроенным движком отрисовки SVG
После шести месяцев разработки опубликован релиз многоплатформенного тулкита для создания графического интерфейса пользователя — GTK 4.22. GTK 4 развивается в рамках процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.
Среди заметных улучшений в GTK 4.22:
Добавлена встроенная система отрисовки и разбора изображений в формате SVG, поддерживающая анимацию и дающая возможность создания анимированных пиктограмм, интерактивных элементов интерфейса и динамически меняющихся индикаторов, таких как индикаторы прогресса. GtkSvg напрямую интегрируется с библиотекой GSK (GTK Scene Kit), предоставляющей возможности отрисовки графических сцен через OpenGL и Vulkan. Библиотека librsvg, ранее используемая для отрисовки SVG-пиктограмм, удалена из числа зависимостей.
Для работы с форматом SVG предложен класс Gtk.Svg, позволяющий обойтись без внешних зависимостей при отрисовке векторных пиктограмм и ресурсов для приложений. Преложенная реализация формата SVG разработана специально для GTK, успешно проходит 1250 из 1616 тестов совместимости из набора resvg (для сравнения, Firefox проходит 1385 тестов, librsvg — 1168, а QtSvg — 591).
Добавлен виджет GtkPopoverBin, упрощающий добавление контекстных меню и выпадающих диалогов в другие виджеты. GtkPopoverBin может использоваться как контейнер для интеграции функциональности всплывающих окон в виджеты, которые сами по себе не умеют это делать.
Добавлен новый тип выражений GtkTryExpression, допускающих определение fallback-операций. GtkTryExpression пытается выполнить каждое выражение из списка, до тех пор пока одно из них не будет выполнено успешно.
Задействован новый формат символьных пиктограмм, поддерживающий анимацию и меняющиеся состояния (например, для индикации активности). Для управления шириной пиктограмм добавлено CSS-свойство »-gtk-icon-weight». Добавлено демонстрационное приложение org.gtk.Shaper с реализацией редактора для нового формата символьных пиктограмм.

В бэкенде для работы в окружениях на базе протокола Wayland реализована экспериментальная поддержка протокола xx-session-management, который может использоваться для восстановление состояния окон прерванных сеансов (например, после аварийного завершения композитного менеджера). Для включения следует выставить переменную окружения «GDK_DEBUG=session-mgmt».
В API GtkApplication добавлена возможность сохранения состояния, используя протокол xx-session-management. В GNOME 50 данная функциональность задействована для сохранения сеансов и восстановления позиций окон.
Для доступа к настройкам в бэкенде для Wayland задействован портал freedesktop.portal.Settings.
В API GtkFileLauncher реализована возможность доступа к файлам на запись, при использовании внутри flatpak-пакетов.
В GSK (GTK Scene Kit) добавлена поддержка профилирования и возможность смещения пикселей исходного изображения на основе «карты смещения» (displacement map) для создания сложных графических эффектов.
Добавлен API GskRenderNodeReplay для обработки дерева узлов отрисовки (Render Node). Добавлены новые типы узлов «copy» и «paste», позволяющие скопировать и вставить в другое место графа сцены область под текущим элементом. Добавлен новый тип узлов «composite», позволяющий использовать дополнительные операции композитинга при отрисовке элементом поверх фона, такие как наложение с использованием маски.
В CSS добавлено свойство «backdrop-filter» для применения эффектов к фоновой области, таких как размытие фона.
В CSS добавлена поддержка настройки «reduced-motion», информирующей о необходимости минимизировать использование анимации.
Источник: http://www.opennet.ru/opennews/art.shtml? num=64939
OpenNet прочитано 584 раза
