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

Деякі користувачі, які використовують метод хінтингу hintfull, могли помітити, що при переході з версії Pango 1.43 на 1.44 кернінг деяких сімейств шрифтів погіршився або повністю зламався.

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

Проблема викликана тим, що бібліотека Панго перейшла від використання 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 завжди підтримував відмальовування, яке в даному обговоренні і називають «розмитим». З 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

Додати коментар або відгук