Niektórzy użytkownicy stosujący metodę hintingu 'hintfull' mogli zauważyć, że po przejściu z wersji Pango 1.43 na 1.44 niektórych rodzin czcionek lub .
Problem wynika z tego, że biblioteka przeszła od używania do pozyskiwania informacji o kerningu (odległości między glifami) czcionek , a programiści tej ostatniej zdecydowali się wygładzania czcionek metodą 'hintfull'. Zauważono, że na ekranach o wysokiej gęstości pikseli (Hi-DPI) problemy z wyświetlaniem czcionek przy użyciu metod hintingu innych niż 'hintfull' nie występują.
programista HarfBuzz (Behdad Esfahbod) z odpowiedniej dyskusji na temat problemu:
Próbowałem używać stylów hintingu innych niż hintfull, ale tylko ten zapewnia wyświetlanie czcionek zbliżone do ClearType v2 w Windows 7, które moim zdaniem ma najlepszą jakość wyświetlania spośród wszystkich dostępnych rozwiązań.
Dokładnie. Dlatego zdecydowaliśmy się go nie wspierać dalej. Możesz spróbować przyzwyczaić się do 'mydlanej' jakości renderowania lub spróbować znaleźć coś innego. Używasz oprogramowania open source, rozumiesz?
Dodatek w nawiązaniu do dalszej dyskusji:
W kolejnych komentarzach programista , że oprogramowanie otwarte (SPÓ) daje możliwość wyboru i ci, którzy nie są zadowoleni z obecnego stanu, mogą stworzyć fork Pango. Programiści HarfBuzz nie mogą mieć wpływu na jego rozwój ani decyzje w nim podejmowane. Behdad Esfahbod, obecny opiekun HarfBuzz, który zajmuje pierwsze miejsce pod względem liczby commitów w
, wspomniał, że od ponad 10 lat nie ma żadnych powiązań z Red Hat i nie jest opiekunem Pango. Od 2010 roku przeszedł do Google i teraz zajmuje się wyłącznie HarfBuzz, który wcześniej był jego osobistym projektem. HarfBuzz procesu renderowania i Pango może nadpisywać żądane tryby hintingu po swojej stronie.
Inny programista HarfBuzz , że problem leży po stronie Pango, ponieważ HarfBuzz nie jest systemem renderowania czcionek i nie wspiera hintingu z powodu swojej architektury. Jeśli Pango wymaga zachowania hintingu, przejście na HarfBuzz nie jest wyborem, który może liczyć na jego wsparcie. W Powód, dla którego rezygnuje się z realizacji hintingu w HarfBuzz, związany jest z tym, że niektóre tryby hintingu prowadzą do zmiany pierwotnej szerokości glifu, a ta zmiana zależy od rozmiaru pikseli. Wcześniej Pango wykonywał takie operacje za pomocą FreeType, który obsługiwał hinting, ale następnie przeszedł na HarfBuzz, który zapewnia przetwarzanie glifów niezwiązane z ich rozmiarem. Dlatego rozwiązanie problemów występujących przy korzystaniu z Pango leży w gestii Pango, a nie HarfBuzz.
Ostatecznie Behdad Esfahbod obejmuje dużą retrospektywę rozwoju stosu czcionek w systemie Linux. Po jego odejściu do Google biblioteki Pango i Cairo zostały praktycznie porzucone i popadły w stagnację. W HarfBuzz prace skoncentrowały się na wsparciu zmiennych czcionek (variable-font), podczas gdy Red Hat skupił się głównie na GTK i Glib. Z czasem osiągnięcia w zakresie zmiennych czcionek zostały przeniesione do FreeType, fontconfig i Cairo, ale pozostały niedokończone w Pango z powodu braku programistów. Dostęp do nowych API w Pango został zapewniony poprzez abstrakcję FontMap i był wspierany tylko dla backendów opartych na FreeType. Backend dla Windows i macOS przez ponad 10 lat nie był wspierany.
Po ekspansji urządzeń mobilnych i przeglądarek Microsoft zaprzestał w Windows 8 wsparcia dla renderowania czcionek subpikselowych i rysowania w stylu GDI. macOS zawsze wspierał renderowanie, które w tej dyskusji określane jest jako „rozmyte”. Od 2018 roku kilku programistów HarfBuzz próbowało przenieść nowe funkcje HarfBuzz do Pango. Równolegle przy opracowywaniu GTK4 dokonano przejścia na renderowanie oparte na OpenGL, co implicyte zaostrzyło rywalizację między renderowaniem pikselowym a skalowalnym układem.
LibreOffice, Chrome i Firefox przeszły na używanie HarfBuzz jako zunifikowanego silnika shaping, kosztem zaprzestania wsparcia dla czcionek rastrowych i formatu Type1. Dla czcionek rastrowych, tym, którzy ich potrzebują, zaproponowano przekształcenie ich w kontener OpenType. Do Adobe wysłano prośbę o wdrożenie Type1 dla HarfBuzz, ale odpowiedzieli, że nie ma to sensu, ponieważ sami zaprzestają wsparcia dla Type1 w tym roku.
Aby nadążyć za technologiami, które wysunęły się naprzód, podobne rozwiązanie dotyczące przejścia na HarfBuzz zostało podjęte także dla biblioteki Pango. Cena tej decyzji to zaprzestanie wsparcia dla niektórych starych technologii sprzed 20 lat. Zauważono, że przy ograniczonych zasobach deweloperów brakuje rąk do pracy i zainteresowani zachowaniem starych technologii mogą spróbować znaleźć kogoś, kto będzie gotów zająć się utrzymaniem brakującej im funkcjonalności. Jako porównanie przywołano GNOME3, po jego pojawieniu się niezadowoleni mogli kontynuować rozwój przestarzałych technologii GNOME2 w ramach projektów Mate i Cinnamon. To samo dotyczy Pango, jednak jak na razie nie ma chętnych.
Źródło: opennet.ru
