GTK или GIMP Toolkit — это кроссплатформенная библиотека графических компонентов для разработки графических пользовательских интерфейсов.
В этой новой версии GTK 4.14 представлена Выделяются новые унифицированные механизмы рендеринга под названием «NGL» и «Vulkan». которые используют как OpenGL (GL 3.3+ и GLES 3.0+), так и графические API Vulkan. Оба двигателя Они основаны на API Vulkan., но движок «NGL» представляет отдельный уровень абстракции для OpenGL, который работает поверх Vulkan, с учетом различий между обоими API. Такой подход позволил использовать в обоих движках общую инфраструктуру для обработки графики сцены, преобразований, кэширования текстур и глифов. Унификация также существенно упростила обслуживание кодовой базы обоих движков, а также их обновление и синхронизацию.
Упоминается, что В отличие от старого двигателя «GL», который использовал отдельный простой шейдер для каждого типа узла рендеринга и периодически переупорядочивал данные во время рендеринга за кадром, Новые движки используют сложный шейдер (убершейдер) для внеэкранного рендеринга. интерпретация данных в буфере. К отличительным особенностям новых движков относятся сглаживание, позволяющее сохранить мелкие детали и добиться более плавных контуров, произвольное формирование градиента, поддерживающее любое количество цветов и сглаживание, а также дробное масштабирование. Новый механизм рендеринга «NGL» включен по умолчанию, как и поддержка графического API Vulkan. При интеграции конфигурации по умолчанию теперь требуется поддержка Vulkan 1.3.
Еще одно из изменений, которые выделяются в GTK 4.14, — это Библиотека GSK (GTK Scene Kit), обеспечивающая возможность рендеринга графических сцен через OpenGL и Vulkan, произошли значительные улучшения, связанные с отрисовкой шрифтов, всплывающими подсказками и использованием нецелочисленных значений масштаба при отображении текста. Во время растеризации было реализовано сглаживание контуров глифов для улучшения четкости на дисплеях с низким разрешением, а также субпиксельное позиционирование глифов при внесении предложений. Качество рендеринга шрифтов также было улучшено при нецелочисленных значениях масштаба, например 125%. Кроме того, для глифов и текстур была добавлена поддержка удаления элементов кэша, что повысило эффективность кэширования глифов.
В дополнение к этому, В GTK была добавлена поддержка «Пути», позволяющая рисовать фигуры и области, используя последовательность линий или кубические и квадратичные кривые Безье. Для рисования путей в GTK было введено несколько объектов, таких как GskPath для определения параметров линий или кривых, GskPathBuilder для создания кривых, GskPathPoint для установки точки на фигуре и GskPathMeasure для измерения, например, длины пути. .
С другой стороны, библиотека GDK, действующая как прослойка между GTK и графической подсистемой, расширила поддержку механизма DMA-BUF, упоминается, что этот механизм позволяет использовать буферы уровня ядра, адресуемые дескриптором. , что обеспечивает прямую передачу данных между подсистемами ядра без необходимости их копирования. В контексте GTK поддержка DMA-BUF используется для минимизации операций копирования пиксельных данных во время композиции и при работе с видео. Например, видео можно записать с помощью аппаратного декодера в dmabuf, затем прикрепить к поверхности Wayland и, наконец, передать менеджеру композиции для отображения на экране без дополнительных копий данных.
Также есть существенные улучшения для людей с ограниченными возможностями, связанные с отображением сложноформатированного текста, работой WebKitGTK и отображением уведомлений.
Из другие изменения, которые выделяются этой новой версии:
- Улучшена поддержка спецификаций ARIA, а также добавлен интерфейс GtkAccessibleText для использования специальных возможностей в сторонних текстовых виджетах.
- В интерфейсе GtkText расширена поддержка протокола AT-SPI, что позволяет взаимодействовать с программами чтения с экрана.
- Класс GtkPrintDialog был добавлен для создания диалогов печати и предоставления асинхронного API, который можно использовать вместо GtkPrintOperation.
- Этот виджет обновил данные Emoji и теперь предлагает возможность поиска на разных языках с учетом разных локалей.
- Улучшено отслеживание пользовательских изменений в виджете GtkEntry, что упрощает реализацию операции отмены.
- Ускорено открытие диалога выбора файла в виджете GtkFileChooser для улучшения пользовательского опыта.
- Инспектор GTK теперь обеспечивает визуализацию информации об OpenGL, недрах и частоте кадров для упрощения отладки и анализа производительности.
- Утилита gtk4-node-editor теперь поддерживает автоматическую запись для большего удобства при работе с узлами и сложным редактированием.
Если вы хотите узнать больше об этом, вы можете ознакомиться с подробностями на по следующей ссылке.