Выпуск графического тулкита GTK 4.2

После трёх месяцеы разработки представлен релиз многоплатформенного тулкита для создания графического интерфейса пользователя – GTK 4.2.0. GTK 4 развивается в рамках нового процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.

В новом выпуске в основном устранены недочёты и внесены улучшения в API, основанные на отзывах разработчиков, портировавших свои программы на GTK4. Из наиболее заментных улучшений в GTK 4.2 можно отметить:

  • Добавлен NGL renderer, новый движок отрисовки через OpenGL, который по умолчанию задействован в Linux, Windows и macOS. NGL renderer обеспечивает более высокую производительность при снижении нагрузки на CPU. Для возвращения старого движка отрисовки следует запустить приложение с переменной окружения GSK_RENDERER=gl.
  • Переделана обработка последовательностей Compose и немых клавиш, изменяющих вид следующего вводимого символа.

  • Реализована возможность использования GTK в форме подпроекта в сборочной системе Meson, что позволяет собирать GTK и все его зависимости в составе сборочного окружения собственного приложения, а также получить все сборочные артефакты для поставки вместе со своим приложением, используя выбранный инструментарий.
  • Улучшена поддержка компиляции GTK для Windows и macOS с использованием родных для данных платформ инструментариев.
  • Переделана документация на API, для формирования которой задействован новый генератор gi-docgen, выдающий более удобное представление информации, включая кнопки для добавления примеров кода в буфер обмена, наглядное представление иерархии предков и интерфейсов каждого класса, список унаследованных свойств, сигналов и методов класса. Интерфейс поддерживает поиск на стороне клиента и автоматически адаптируется к разным размерам экрана. Для документации запущен новый сайт docs.gtk.org, на котором также предложены сопутствующие руководства по интроспекции GObject, Pango и GdkPixbuf.
  • Оптимизирована производительность различных компонентов, начиная с задействованных при отрисовке шейдеров GLSL и заканчивая объектами для людей с ограниченными возможностями.
  • Реализовано субпиксельное позиционирование текста при использовании новых версий библиотеки Cairo.
  • Обеспечена адаптивная компоновка интерфейса для выбора emoji.
  • Улучшена поддержка расширения протокола Wayland для управления вводом.
  • Повышена производительность прокрутки в виджете просмотра текста.
  • Улучшена отрисовка теней во всплывающих виджетах (popover).

Release. Ссылка here.