trezor / trezor-firmware

:lock: Trezor Firmware Monorepo
https://trezor.io
Other
1.34k stars 652 forks source link

Incorporate manual modifications of font data to gen_font.py #3771

Open obrusvit opened 4 months ago

obrusvit commented 4 months ago

If we run core/tools/codegen/gen_font.py script, it creates a diff in generated font definitions. This is because of manual changes done to individual glyps for better visual appearance on certain models. The changes are documented by commentary but IMHO they should be defined in the script so that manual changes to generated code are not necessary.

Changes are done to

image

obrusvit commented 3 months ago

Note on font_ttsatoshi_demibold_18/21.c. Numerals (0 - 9 mapped to glyph indices 1298-1307 as of #3954 . Done manually by modifying gen_font.py as follows. A systematic solution would be better.

def _load_char(self, c: str) -> None:
        glyph_map = {
            '0': 1298,
            '1': 1299,
            '2': 1300,
            '3': 1301,
            '4': 1302,
            '5': 1303,
            '6': 1304,
            '7': 1305,
            '8': 1306,
            '9': 1307,
        }

        if c in glyph_map:
            self.face.load_glyph(glyph_map[c], freetype.FT_LOAD_RENDER | freetype.FT_LOAD_TARGET_NORMAL)
        else:
            self.face.load_char(c, freetype.FT_LOAD_RENDER | freetype.FT_LOAD_TARGET_NORMAL)  # type: ignore