Доступен графический тулкит 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 с реализацией редактора для нового формата символьных пиктограмм.

    CFD0C5CECEC5D4_1772994456.png

  • В бэкенде для работы в окружениях на базе протокола 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 прочитано 561 раз