Бенджамин Отте (Benjamin Otte), один из ключевых разработчиков проекта, в официальном блоге анонсировал внедрение в GTK 4.23.1 механизма под названием «snapping», призванного победить артефакты и размытость изображений при использовании нецелочисленных коэффициентов масштабирования интерфейса. Telegram-канал создателя Трешбокса про технологии
Суть проблемы в том, что координаты рисуемых элементов часто перестают совпадать с реальной физической пиксельной сеткой дисплея. Содержимое попадает «между пикселями», что приводит к характерной смазанной картинке в некоторых приложениях.
Новый механизм, включаемый через вызов gtk_snapshot_set_snap(), решает эту задачу путём принудительного выравнивания прямоугольников по ближайшим целым пикселям при отрисовке. Изображение: Блог GTK
Разработчиками выделено три критических сценария, где эта технология даёт ощутимый положительный эффект. Первый касается спрайтовых сеток в 2D-играх — здесь дробное масштабирование создаёт видимые графические разрывы, которые полностью исчезают после включения «привязки». Второй сценарий отвечает за корректное отображение изображений в режиме масштаба 1:1, что принципиально важно для графических редакторов. Третий случай затрагивает аппаратные оптимизации: некоторые механизмы 2D-ускорения требуют строгого выравнивания данных по пиксельной сетке, иначе оборудование попросту не может правильно работать.
При этом в GTK подчеркивают, что автоматическое включение привязки не является панацеей и может навредить. Главный проблема — плавность медленных анимаций. При постоянном выравнивании контент в процессе скроллинга или движения начинает визуально «прыгать» от одного края пикселя к другому, разрушая иллюзию плавности. По этой причине функция остаётся опциональной, и разработчики приложений должны осознанно выбирать, где им стоит жертвовать чёткостью ради плавности.
Решение уже доступно в предварительной ветке GTK 4.23.1. Ожидается, что данная технология заметно повысит качество картинки на современных HiDPI-экранах в ведущих Linux-средах, сокращая технологический разрыв с проприетарными ОС.
Источник: trashbox.ru