Доступен графический тулкит GTK 4.16

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3243
Зарегистрирован: 20.08.2022

#

Доступен графический тулкит GTK 4.16
Дата публикации:Mon, 09 Sep 2024 11:26:45 +0300




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






Среди наиболее заметных улучшений в GTK 4.16:
  • Добавлена настройка gtk-font-rendering, предоставляющая гибкие высокоуровневые возможности для управления отрисовкой шрифтов. Для использования низкоуровневых настроек шрифтов следует выставить параметр gtk-font-rendering в значение 'manual'.


    В библиотеке GSK (GTK Scene Kit), предоставляющей возможности отрисовки графических сцен через OpenGL и Vulkan, по умолчанию для отрисовки в окружениях на базе протокола Wayland задействован движок отрисовки "vulkan", напрямую использующий графический API Vulkan. В остальных случаях продолжает использоваться движок отрисовки "ngl", предлагающий реализацию OpenGL, работающую поверх API Vulkan. Для изменения движка можно использовать переменную окружения "GSK_RENDERER". Так как движки "vulkan" и "ngl" по иному взаимодействуют с графическими драйверами, для стабильной работы с ними рекомендуется использовать последний релиз Mesa 24.2.


    Среди других изменений в библиотеке GSK:


    Реализована техника оптимизации "occlusion culling", исключающая отрисовку объектов, скрытых за другими непрозрачными объектами или находящимися вне поля зрения.
    В процессе композитинга обеспечен учёт информации о цветовом пространстве.
    Улучшено кэширование глифов и текстур.
    Реализована поддержка плиточного наложения (tiling) больших текстур для создания бесшовной поверхности путём повторения текстуры.
    Улучшена отрисовка теней.
    Добавлена возможность привлечения средств аппаратного ускорения для обработки преобразованных текстур, например, для вывода повёрнутого содержимого на экран.


    Улучшено использование механизмов аппаратного ускорения на системах с композитным менеджером kwin.
    Добавлена отладочная опция "GDK_DEBUG=linear" для включения режима линейного композитинга. Улучшено ведение лога при использовании опций "GDK_DEBUG=offload" и "GSK_DEBUG=renderer".
При работе в окружениях на базе протокола Wayland и композитного менеджера kwin реализована возможность использования расширения протокола (color-management) для управление цветом. При выводе закреплённых диалогов использовано Wayland-расширение xdg-dialog. При композитинге задействована шестая версия объекта wl_compositor. Разрешено использование dmabuf в процессе аппаратного ускорения обработки текстур для OpenGL.

Улучшения в библиотеке GDK, предоставляющей прослойку между GTK и графической подсистемой:
  • Существенно расширены возможности для работы с цветовыми пространствами. Обеспечена поддержка цветовых пространств srgb, srgb-linear, rec2100-pq и rec2100-linear, и проведена подготовка к реализации поддержки цветовых пространств для HDR.
    Предложен объект GdkColorState, предоставляющий информацию об интерпретации цветов, которую можно использовать для преобразования одного цветового пространства в другое. Для создания объектов с информацией о цветовых пространствах добавлен объект Gdk.CicpParams. В объект GdkTexture, а также в объекты создания, загрузки и преобразования текстур добавлена возможность использования цветовых пространств.



    Реализован новый API для работы с курсором, основанный на callback-вызовах.
    Реализована возможность выполнения операций MIP-текстурирования (MipMap, создание уменьшенных версий текстур, используемых при удалении объекта от камеры) силами CPU.
    Для преобразования цветов и MIP-текстурирования задействован пул потоков (thread pool) .

    Добавлена поддержка переменной окружения XDG_ACTIVATION_TOKEN с токеном активации для протокола xdg-activation-v1, при помощи которого одно приложение может переключить фокус на другое.

    Добавлен класс GdkMemoryTextureBuilder, позволяющий формировать объекты с текстурами (GdkTexture) из данных, хранимых в оперативной памяти.

Расширены возможности по созданию тем оформления на базе CSS. Добавлена поддержка переменных и пользовательских свойств. Реализованы CSS-функции color(), oklab(), color-mix(), а также математические функции. Предоставлена возможность использования относительного определения цветов (изменения абсолютных цветов функциями), а также задания уровня прозрачности в процентах. При работе с цветами, рамками, тенями и текстом обеспечен учёт информации о цветовых пространствах.

В утилиту rendernode-tool добавлены команды "extract" для загрузки данных по URL и image для манипуляции текстурами. Реализована возможность генерации файлов в формате PDF.

В интерфейс gtk4-node-editor добавлена операция 'Paste as node'.

В виджет выбора файлов GtkFileChooserWidget добавлена поддержка комбинации Ctrl-Shift-N для создания каталогов.
В виджете создания всплывающих окон GtkPopover улучшена обработка изменения размера и позиции.


В виджет GtkGraphicsOffload, используемый для прямой отправки контента, такого как видео, через композитный менеджер минуя рендер GSK, добавлено свойство "black-background" для вывода чёрного фона.

В виджет GtkGLArea, предназначенном для вывода с использованием OpenGL, добавлена возможность формирования текстур в dmabuf, что позволяет использовать виджет GtkGraphicsOffload для прямого вывода напрямую через композитный сервер. Повышена эффективность взаимодействия с композитным сервером.
Изображение


В виджет GtkTextView добавлена поддержка вывода текста с тенью и реализована возможность использования уведомлений GtkTextBufferCommitNotify.




В виджет GtkCheckButton добавлена поддержка группировки стиля кнопок.

Расширены возможности отладки. В интерфейс инспектирования добавлена информация о цветовых пространствах, а также сведения о разрешении монитора. Переменная окружения GDK_DEBUG разделена на GDK_DEBUG и GDK_DISABLE. Добавлены режимы GDK_DISABLE=color-mgmt и GDK_DISABLE=offload. Добавлен режим GTK_DEBUG=css для вывода предупреждений при использовании устаревших возможностей CSS. Добавлены клавиатурные комбинации Super-r для записи лога событий и Super-c для создания скриншота.


Подняты требования к зависимостям и сборочному окружению. Для сборки теперь необходим компилятор с поддержкой C11 и как минимум версии gstreamer 1.24, pango 1.52 и cairo 1.18. Прекращена поддержка устаревших сборочных режимов gtk_doc (следует использовать documentation), update_screenshots (-> screenshots), demo-profile (-> profile) и demos (-> build-demos).


Для macOS 10.15+ реализован интерфейс определения цвета пикселей на экране (color picker).
Для Windows включён режим инкрементального рендеринга с использованием API WGL.











Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61831

Жизнь за Нер'зула!

Ответить