Lots of self-intersecting paths
Finii opened this issue · 8 comments
Many glyphs are incorrectly formulated, will need to check:
$ fontforge bin/scripts/name_parser/check_glyphs src/glyphs/font-logos.ttf 2>/dev/null
Examining 1 font files
F300 00000005 intersect Alpine
F303 00000225 intersect Arch Linux
F306 00000025 intersect Debian
F308 00000025 intersect Docker
F30E 00000205 intersect Linux Mint
F310 00000025 intersect Mageia
F311 00000025 intersect Mandriva
F313 00000005 intersect NixOS
F314 00000025 intersect OpenSUSE
F315 00000225 intersect Raspberry pi
F316 00000225 intersect Red Hat
F31A 00000025 intersect Tux
F31C 00000225 intersect Ubuntu (inverse)
F323 00000025 intersect Ferris
F325 00000225 intersect GNU Guix
F326 00000025 intersect illumos
F327 00000225 intersect Kali Linux
F328 000000A5 intersect OpenBSD
F32C 00000005 intersect Snappy
F337 00000225 intersect Garuda Linux
F349 00000225 intersect Loc-OS
F34A 00000025 intersect XeroLinux
F34E 00000025 intersect OpenSCAD
F34F 00000005 intersect OSH
F356 00000005 intersect dwm
F35D 00000025 intersect Sway
F360 00000025 intersect freedesktop.org
F368 00000025 intersect XFCE
======== font-logos.ttf ========
Sum of problems: open 0, intersect 28, direction 0 (for a total of 119 glyphs)
| font-logos.ttf | 119 | 0 | 28 | 0 |
$
Script checks for open paths, self-intersection, and wrong direction
🙄
$ cat fontnames | xargs fontforge bin/scripts/name_parser/check_glyphs 2>/dev/null
Examining 63 font files
Batch mode enabled
| file | #glyp | open | self | dir |
| 0xProto-Regular.ttf | 845 | 0 | 0 | 0 |
| 3270-Regular.ttf | 2226 | 0 | 0 | 0 |
| Agave-Regular.ttf | 2487 | 0 | 22 | 19 |
| Anonymous Pro.ttf | 623 | 0 | 0 | 0 |
| Arimo-Regular.ttf | 3306 | 0 | 3 | 0 |
| AurulentSansMono-Regular.otf | 267 | 0 | 0 | 0 |
| BigBlue_TerminalPlus.ttf | 781 | 0 | 146 | 0 |
| VeraMono.ttf | 269 | 0 | 0 | 0 |
| CascadiaCode-Regular-vtt.ttf | 3199 | 0 | 2 | 0 |
| CascadiaMono-Regular-vtt.ttf | 3199 | 0 | 2 | 0 |
| Code New Roman-Regular.otf | 2738 | 0 | 0 | 0 |
| ComicShannsMono-Regular.otf | 619 | 0 | 14 | 0 |
| CommitMono-400-Regular.otf | 1924 | 0 | 3 | 0 |
| Cousine-Regular.ttf | 2391 | 0 | 0 | 0 |
| D2Coding-Ver1.3.2-20180524-ligature.ttf | 26559 | 0 | 82 | 8 |
| DaddyTimeMono.otf | 918 | 0 | 0 | 0 |
| DejaVuSansMono.ttf | 3392 | 0 | 9 | 0 |
| Droid Sans Mono for Powerline.otf | 907 | 0 | 1 | 0 |
| Envy Code R.ttf | 648 | 0 | 13 | 16 |
| FantasqueSansMono-Regular.ttf | 1046 | 0 | 0 | 0 |
| FiraCode-Regular.ttf | 2030 | 0 | 1 | 79 |
| FiraMono-Regular.otf | 1485 | 0 | 0 | 0 |
| GeistMono-Regular.otf | 694 | 0 | 0 | 15 |
| gohufont-uni-14.ttf | 841 | 0 | 582 | 0 |
| Go-Mono.ttf | 711 | 0 | 1 | 1 |
| Hack-Regular.ttf | 1572 | 0 | 3 | 0 |
| Hasklig-Regular.otf | 1611 | 0 | 2 | 0 |
| heavy_data.ttf | 252 | 0 | 0 | 0 |
| Hermit-Regular.otf | 393 | 0 | 0 | 0 |
| iAWriterMonoS-Regular.ttf | 850 | 0 | 1 | 0 |
| IBMPlexMono-Regular.ttf | 1032 | 0 | 2 | 0 |
| Inconsolata-Regular.ttf | 963 | 0 | 2 | 18 |
| InconsolataGo-Regular.ttf | 306 | 0 | 0 | 0 |
| Inconsolata-LGC.ttf | 885 | 0 | 3 | 0 |
| iosevka-regular.ttf | 30414 | 0 | 59 | 0 |
| iosevka-term-regular.ttf | 30414 | 0 | 59 | 0 |
| iosevka-term-slab-regular.ttf | 29667 | 0 | 71 | 0 |
| JetBrainsMono-Regular.ttf | 1743 | 0 | 3 | 0 |
| Lekton-Regular.ttf | 953 | 0 | 4 | 0 |
| LiberationMono-Regular.ttf | 2423 | 0 | 0 | 2 |
| Lilex-Regular.ttf | 1230 | 0 | 2 | 0 |
| MartianMono-Regular.ttf | 557 | 0 | 0 | 1 |
| Meslo LG M Regular for Powerline.ttf | 2714 | 0 | 7 | 2 |
| MonaspaceNeon-Regular.otf | 782 | 0 | 0 | 95 |
| Monofur for Powerline.ttf | 690 | 0 | 11 | 0 |
| Monoid-Regular.ttf | 785 | 0 | 0 | 0 |
| mononoki-Regular.ttf | 932 | 0 | 2 | 2 |
| Mplus1Code-Regular.ttf | 6582 | 0 | 206 | 65 |
| NotoMono-Regular.ttf | 896 | 0 | 0 | 0 |
| NotoSansMono-Regular.ttf | 3919 | 0 | 3 | 0 |
| OpenDyslexic-Regular.otf | 748 | 0 | 1 | 541 |
| overpass-mono-regular.otf | 987 | 0 | 0 | 1 |
| ProFontIIx.ttf | 270 | 0 | 2 | 0 |
| ProggyClean.ttf | 256 | 0 | 173 | 0 |
| RobotoMono-Regular.ttf | 1003 | 0 | 29 | 601 |
| ShareTechMono-Regular.ttf | 267 | 0 | 0 | 0 |
| SourceCodePro-Regular.ttf | 1568 | 0 | 2 | 0 |
| SpaceMono-Regular.ttf | 732 | 0 | 0 | 10 |
| TerminusTTF-4.49.2.ttf | 1358 | 0 | 2 | 0 |
| Tinos-Regular.ttf | 2583 | 0 | 0 | 0 |
| Ubuntu-R.ttf | 1266 | 0 | 0 | 0 |
| UbuntuMono-R.ttf | 1298 | 0 | 0 | 0 |
| VictorMono-Regular.ttf | 1331 | 0 | 12 | 0 |
Edit: Correct numbers down in most places (forgot to unref Refs)
Hope the magic works there! In theory that could cause rendering problems but if there are no people complaining we can expect there aren't that many problems in the wild, or not?
Some bugs in glyphs are never noticed or only after a long time. I remember one, was that GO, that had all the paths in the same direction thus the icon was all black just showing the outline. Correcting the directions 'opened' to icon up.
And some other glyph, I believe this Rust mascot, showed differently depending on font renderer with white or black 'face'.
The fixes are addressed in the fonts right? So would still be needed to address them on the svgs?