Function font_catalog_problem
pub fn font_catalog_problem() -> Option<String>Expand description
Build the process’s font system: the database a host built for it when
there is one, otherwise the product font catalog with the system’s fonts
behind it and Tilo’s script fallback (Android copies its catalog out of
the APK first). A binary run from a checkout, a screenshot and the Tilo
image therefore all set text in the same faces, whether or not the
machine has them installed. Only when no catalog loads does it fall back
to the system’s fonts alone with the generic families pinned to the
product names.
Why a capture in this process would set text in the host’s faces instead of
the product’s, when it would: no root holds this build’s catalog. None
when the catalog is there, when a host supplied its own database (the
compositor’s renderers), and under test. A capture that cannot set text in
the product’s faces must fail rather than produce frames that look almost
right: every overflow, truncation and hinting judgement made from them is
about a font the product does not ship.