Někteří uživatelé, kteří používají metodu hintingu „hintfull“, si mohli všimnout, že při přechodu z verze Pango 1.43 na 1.44 některých rodin písem nebo .
Problém je způsoben tím, že knihovna přešla od používání pro získávání informací o kerningu (vzdálenosti mezi glify) písem k , a vývojáři posledně uvedeného se rozhodli vyhlazování písem pomocí metody „hintfull“. Upozorňujeme, že na obrazovkách s vysokou hustotou pixelů (Hi-DPI) problémy se zobrazením písem při použití metod hintingu odlišných od „hintfull“ nevznikají.
vývojář HarfBuzz (Behdad Esfahbod) z odpovídající diskuze o problému:
Snažil jsem se používat styly hintingu odlišné od hintfull, ale pouze on poskytuje zobrazení písem blízké ClearType v2 ve Windows 7, což podle mého názoru má nejlepší renderování ze všech existujících řešení.
Správně. Proto jsme se rozhodli ho již více nepodporovat. Můžete se snažit zvyknout si na „mléčné“ renderování nebo se pokusit najít něco jiného. Používáte přeci Open Source, že?
Dodatek na základě další diskuse:
V následujících komentářích vývojář , že OSS poskytuje možnost volby a ti, kteří nejsou spokojeni se současným stavem, mohou vytvořit fork Pango. Vývojáři HarfBuzz však nemohou ovlivnit jeho údržbu a rozhodnutí v něm přijatá. Behdad Esfahbod, současný udržovatel HarfBuzz, který se umístil na prvním místě v počtu commitů v
, uvedl, že již více než 10 let není spojen s Red Hat a není udržovatelem Pango. Od roku 2010 přešel do Google a nyní se tam věnuje pouze HarfBuzz, který byl dříve jeho osobním projektem. HarfBuzz proces vykreslování a Pango může přepisovat požadované režimy hintingu na své straně.
Další vývojář HarfBuzz , že problém je na straně Pango, protože HarfBuzz není systém pro vykreslování písem a podle své architektury nepodporuje hinting. Pokud Pango potřebuje zachování hintingu, pak přechod na HarfBuzz není ta volba, která by umožnila očekávat jeho podporu. V Důvodem pro odmítnutí implementace hintingu v HarfBuzz je, že některé hintovací režimy vedou ke změně původní šířky glifu a tato změna závisí na pixelové velikosti. Dříve Pango prováděl podobné operace prostřednictvím FreeType, který podporoval hinting, ale poté přešel na HarfBuzz, který zajišťuje zpracování glifů bez vazby na jejich velikost. Proto řešení problémů vzniklých při použití Pango leží v odpovědnosti Panga, nikoli HarfBuzz.
Nakonec Behdad Esfahbod velkou retrospektivu vývoje fontového stacku Linuxu. Po jeho odchodu do Googlu byly knihovny Pango a Cairo prakticky zanedbávány a upadly do stagnace. V HarfBuzz se práce soustředila na podporu adaptivních proměnlivých fontů (variable-font) a Red Hat se zaměřil především na GTK a Glib. V průběhu času byly výsledky vývoje v oblasti proměnlivých fontů přeneseny do FreeType, fontconfig a Cairo, ale v Pango zůstaly nedokončené kvůli nedostatku vývojářů. Přístup k novým API v Pango byl poskytnut prostřednictvím abstrakce FontMap a byl podporován pouze pro backendy založené na FreeType. Backend pro Windows a macOS nebyl více než 10 let udržován.
Po expanzi mobilních zařízení a prohlížečů Microsoft přestal ve Windows 8 podporovat subpixelové vykreslování fontů a vykreslování ve stylu GDI. macOS však vždy podporoval vykreslování, které je v této diskusi nazýváno „rozmazané“. Od roku 2018 se několik vývojářů HarfBuzz pokusilo přenést možnosti HarfBuzz přidané v posledních letech do Pango. Současně byla při vývoji GTK4 provedena změna na vykreslování založené na OpenGL, což znamenalo lineární škálování textu, což zhoršilo konflikt mezi pixelovým vykreslováním a škálovatelnou sazbou.
LibreOffice, Chrome a Firefox přešly na použití HarfBuzz jako jednotného shaping engine, a to za cenu ukončení podpory rastrových fontů a formátu Type1. Pro rastrové fonty byla těm, kteří je potřebují, nabídnuta možnost převést je na kontejner OpenType. Byla zaslána žádost do Adobe o implementaci Type1 pro HarfBuzz, ale odpověděli, že to nemá význam, protože sami končí s podporou Type1 tento rok.
Aby drželi krok s rychle se měnícími technologiemi, bylo podobné rozhodnutí o přechodu na HarfBuzz učiněno také pro knihovnu Pango. Cena za to byla zastavení podpory některých starých technologií ze dvacátých let. Bylo uvedeno, že vzhledem k omezeným zdrojům mají vývojáři problém se vším stihnout, a ti, kteří mají zájem o zachování starých technologií, se mohou pokusit najít někoho, kdo bude ochoten se starat o chybějící funkcionalitu. Jako příklad je zmíněn GNOME3, po jehož vzniku nespokojení uživatelé mohli pokračovat v rozvoji zastaralých technologií GNOME2 v rámci projektů Mate a Cinnamon. Totéž platí i pro Pango, ale zatím se nenašli žádní zájemci.
Zdroj: opennet.ru
