Через 10 месяцев из последней пробной версии, представлен выпуск новой версии GTK 3.96, новая экспериментальная версия будущей стабильной версии GTK 4.
Пока GTK 4 находится в разработке В рамках нового процесса разработки, пытающегося предоставить стабильный API на несколько лет, который можно использовать без каждых шести месяцев, вам придется переделывать приложение из-за изменений API в следующей ветви GTK.
Основные новые функции GTK 3.96
С появлением этого нового релиза в официальном анонсе, можно выделить несколько новинок среди которых одна из них заключается в том, что бэкэнд Broadway GDK был полностью переписан для отображения вывода библиотеки GTK в окне веб-браузера.
В предыдущей реализации Broadway он не соответствовал методам рендеринга GTK 4. предложено (вместо отправки в буфер теперь используется модель на основе узлов рендеринга, в которой вывод организован в виде высокоуровневого дерева операций, которое эффективно обрабатывается графическим процессором с использованием OpenGL и Vulkan).
Новая версия Broadway преобразует узлы рисования в узлы DOM со стилями CSS для отображения интерфейса в браузере. Каждое новое состояние экрана обрабатывается как изменение в дереве DOM относительно предыдущего состояния, уменьшая размер данных, передаваемых удаленному клиенту.
Лас- 3D-преобразования и графические эффекты реализуются через свойство CSS-трансформации.
GDK продолжил реализацию API, которые были разработаны с намерением использовать протокол Wayland и выполнять очистку API с привязкой к X11 или перемещать их в отдельный бэкэнд X11.
Продолжился рефакторинг кода, связанный с выполнением операций перетаскивания, включая предложенные отдельные объекты GdkDrag и GdkDrop.
Возможности трехмерного преобразования доведены до уровня, позволяющего создавать такие эффекты анимации, как вращающийся куб.
В ГСК API (GTK Scene Kit), который предоставляет графические чертежи сцены через OpenGL и Vulkan, он работал над ошибками это стало легче благодаря новому инструменту отладки gtk4-node-editor, что позволяет загружать и отображать узел рендеринга в сериализованном формате (можно сохранить в режиме инспектора GTK), а также сравнивать результат рисования при использовании разных бэкендов.
Прочие изменения
Виджеты GtkAssistant, GtkStack и GtkNotebook добавлены в общедоступные объекты. для вывода дочерних элементов с разбивкой на страницы, которым были переданы дочерние свойства данных виджета, не являющегося макетом.
Поскольку все существующие дочерние свойства преобразуются в обычные свойства, свойства макета или перемещаются в объекты страницы, поддержка дочерних свойств полностью удалена из GtkContainer.
Из других изменений, которые выделяются в этой версии:
- Основные функции GtkEntry были перенесены в новый виджет GtkText, который также включает расширенный интерфейс редактирования GtkEditable. Все существующие подклассы ввода данных преобразуются в реализации GtkEditable на основе нового виджета GtkText.
- Добавлен новый виджет GtkPasswordEntry для форм ввода пароля.
- Добавлены новые модели формирования списков: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel и GtkSingleSelection. В будущем мы планируем добавить поддержку моделей списков в GtkListView.
- В GtkBuilder вместо использования привязки по идентификатору добавлена возможность устанавливать свойства объекта (встроенная).
- В gtk4-builder-tool добавлена команда для преобразования файлов пользовательского интерфейса из GTK 3 в GTK 4.
- Поддержка ключевых тем (ключевая тема), вкладок (табличное меню) и полей со списком прекращена. Виджет GtkInvisible был удален.
Наконец, пока GTK 4 не будет полностью стабилизирован, рекомендуется, чтобы предлагаемые пользовательские приложения продолжали сборку с использованием GTK 3.24.
источник: https://blog.gtk.org