Разработчики стека шрифтов Linux отказались от поддержки мягкого сглаживания

Некоторые пользователи, которые используют метод хинтинга «hintfull», могли заметить, что при переходе с версии Pango 1.43 на 1.44 кёрнинг некоторых семейств шрифтов ухудшился или полностью сломался.

Разработчики стека шрифтов Linux отказались от поддержки мягкого сглаживания

Проблема вызвана тем, что библиотека Pango перешла от использования FreeType для получения информации о кёрнинге (расстоянии между глифами) шрифтов к HarfBuzz, а разработчики последнего приняли решение не поддерживать сглаживание шрифтов по методу «hintfull». Отмечается, что на экранах с высокой плотностью пикселей (Hi-DPI) проблемы с отображением шрифтов при использовании методов хинтинга, отличного от «hintfull», не возникают.

Ответ разработчика HarfBuzz (Behdad Esfahbod) из соответствующего обсуждения проблемы:

Я пытался использовать стили хинтинга отличные от hintfull, но только он даёт отображение шрифтов близкое к ClearType v2 в Windows 7, которое, по моему мнению, имеет наилучший рендеринг из всех существующих решений.

Верно. Поэтому мы решили не поддерживать его больше. Вы можете попытаться привыкнуть к «мыльному» рендерингу или попытаться найти что-то еще. Вы же используете Open Source, понимаете?

Дополнение по следам дальнейшего обсуждения:

В последующих комментариях разработчик пояснил, что СПО предоставляет возможность выбора и тем кого не устраивает текущее состояние могут создать форк Pango. Разработчики же HarfBuzz не могут влиять на его сопровождение и принимаемые в нём решения. Behdad Esfahbod, нынешний сопровождающий HarfBuzz, который занимает первое место по числу коммитов в обоих
проектах, упомянул, что он уже более 10 лет не связан с Red Hat и не является сопровождающим Pango. С 2010 года он перешёл в Google и теперь занимается там только HarfBuzz, который ранее был его персональным проектом. HarfBuzz не контролирует процесс отрисовки и Pango может переопределять запрошенные режимы хинтинга на своей стороне.

Другой разработчик HarfBuzz подчеркнул, что проблема на стороне Pango, так как HarfBuzz не является системой рендеринга шрифтов и не поддерживает хинтинг по своей архитектуре. Если Pagno необходимо сохранение хинтинга, то переход на HarfBuzz не тот выбор, который позволяет расчитывать на его поддержку. В качестве причин отказа реализовать хинтинг в HarfBuzz указано то, что некоторые режимы хинтинга приводят к изменению изначальной ширины глифа и это изменение зависит от пиксельного размера. Ранее Pango выполнял подобные операции через FreeType, поддерживающий хинтинг, но затем переключился на HarfBuzz, который обеспечивает обработку глифов без привязки к их размеру. Поэтому решение возникших при использовании Pango проблем лежит в области ответственности Pango, а не HarfBuzz.

В конечном счёте Behdad Esfahbod опубликовал большую ретроспективу развития шрифтового стека Linux. После его ухода в Google библиотеки Pango и Cairo оказались практически заброшены и впали в стагнацию. В HarfBuzz работа сконцентрировалась на поддержке адаптивных изменчивых шрифтов (variable-font), а Red Hat сосредоточил основное внимание на GTK и Glib. Со временем наработки в области изменчивых шрифтов были перенесены в FreeType, fontconfig и Cairo, но остались недоделанными в Pango из-за нехватки разработчиков. Доступ к новым API в Pango был предоставлен через абстракцию FontMap и поддерживался только для бэкендов на базе FreeType. Бэкенды же для Windows и macOS более 10 лет как находятся без сопровождения.

После экспансии мобильных устройств и браузеров, Microsoft прекратил в Windows 8 поддержку субпиксельного рендеринга шрифтов и отрисовки в стиле GDI. macOS же всегда поддерживал отрисовку, которую в данном обсуждении и называют «размытой». C 2018 года несколько разработчиков HarfBuzz попытались перенести добавленные за последние годы возможности HarfBuzz в Pango. Параллельно при разработке GTK4 был выполнен переход на отрисовку на базе OpenGL, подразумевающую линейное масштабирование текста, что обострило противостояние между пиксельной отрисовкой и масштабируемой раскладкой.

LibreOffice, Chrome и Firefox перешли на использование HarfBuzz в качестве унифицированного shaping-движка, ценой прекращения поддержки растровых шрифтов и формата Type1. Для растровых шрифтов тем кому они необходимы было предложено преобразовать их в контейнер OpenType. В Adobe отправлялся запрос на реализацию Type1 для HarfBuzz, но они ответили, что в этом нет смысла, так как сами прекращают поддержку Type1 в этом году.

Для того, чтобы нагнать вырвавшиеся вперёд технологии, аналогичное решение о переходе на HarfBuzz было принято и для библиотеки Pango. Ценой стало прекращение поддержки некоторых старых технологий 20 летней давности. Указано, что с учётом ограниченных ресурсов у разработчиков на всё не хватает рук и заинтересованные в сохранении старых технологий могут попытаться найти того, кто будет готов заниматься сопровождением недостающей им функциональности. В качестве сравнения приводится GNOME3, после появления которого недовольные смогли продолжить развитие устаревших технологий GNOME2 в рамках проектов Mate и Cinnamon. Тоже самое применимо и для Pango, но желающих пока не нашлось.

Источник: opennet.ru

Добавить комментарий