Некоторые пользователи, которые используют метод хинтинга «hintfull», могли заметить, что при переходе с версии Pango 1.43 на 1.44 некоторых семейств шрифтов ose .
Проблема вызвана тем, что библиотека перешла от использования для получения информации о кёрнинге (расстоянии между глифами) шрифтов к , а разработчики последнего приняли решение сглаживание шрифтов по методу «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, но желающих пока не нашлось.
Burimi: opennet.ru
