GTK 4.14 въвежда нови машини за изобразяване, подобрения и много други

GTK4

GTK или GIMP Toolkit е библиотека с графични компоненти за различни платформи за разработване на графични потребителски интерфейси.

В тази нова версия, която е представена на GTK 4.14 Нови унифицирани машини за рендиране, наречени „NGL“ и „Vulkan“, се открояват които използват както OpenGL (GL 3.3+ и GLES 3.0+), така и графичните API на Vulkan. И двата двигателя Те са базирани на Vulkan API, но двигателят „NGL“ представя отделен слой за абстракция за OpenGL, който работи върху Vulkan, като взема предвид разликите между двата API. Този подход позволи използването на обща инфраструктура в двата двигателя за обработка на графики на сцени, трансформации, кеширане на текстури и глифове. Обединението също значително опрости поддръжката на кодовата база на двата двигателя, както и тяхното актуализиране и синхронизиране.

Споменава се, че За разлика от стария двигател "GL", който използва отделен прост шейдър за всеки тип възел за рендиране и периодично пренарежда данните по време на рендиране извън екрана, Новите двигатели използват сложен шейдър (ubershader) за изобразяване извън екрана, интерпретиране на данните в буфера. Отличителните характеристики на новите двигатели включват анти-алиасинг, който ви позволява да запазите фини детайли и да постигнете по-гладки контури, произволно формиране на градиент, което поддържа произволен брой цветове и анти-алиасинг, и частично мащабиране. Новият механизъм за изобразяване „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, подповърхности и FPS за по-лесно отстраняване на грешки и анализ на производителността.
  • Помощната програма gtk4-node-editor вече има поддръжка за автоматичен запис за по-голямо удобство при работа с възли и сложни редакции.

Ако се интересувате да научите повече за това, можете да се консултирате с подробности на следната връзка.