Open dacap opened 8 months ago
https://github.com/aseprite/aseprite/commit/ab18cd986c8e501e0178a689fff424e2c985f9da is the first step. We need a way to specify system fonts in themes and from Edit > Preferences > General with a new font selector.
Added two PRs related to this, first is #4604, which was causing crashes on Windows - and second is #103 which also fixes crashes on Windows and improves the font rendering on Windows in general.
It still suffers from some issues especially when compared to main
. (All comparisons done on Windows, for now)
With some languages like Japanese and Arabic, using the default theme, things render differently. Technically more "correct" but I'm not sure if better legibility-wise for real users (left: beta, right: stable Steam version)
Some comparison gifs of a few themes, where you can see some differences in rendering spacing, font weight, when/how/how well it renders some character underlines to indicate shortcuts, spacing and spacing issues with the selection inside dropdown boxes.
jmswrnr theme | Edgtheme | My own theme (Segoe UI font) |
---|---|---|
- With some languages like Japanese and Arabic, using the default theme, things render differently. Technically more "correct" but I'm not sure if better legibility-wise for real users
Known issue :cry:, probably we could offer an antialias fallback for sprite sheet fonts, here an example with an antialias fallback (on Linux):
and without antialias:
I noticed that the text is quite unaligned (at least on Linux).
I'll close this issue as the text rendering is now using Skia, but I'll review those comments later (and probably users will report a lot of new text rendering issues).
Some days ago I started working to switch to Skia-m124 (in the beta branch of laf and aseprite) for font rendering using native fonts (instead of FreeType as we do now).
Skia uses DirectWrite on Windows, CoreText on macOS, and FreeType/HarfBuzz on Linux for text layout/shaping and rendering. It allows better font rendering and easy handling of available system fonts + better handling of font fallbacks. Also support for emojis:
After this we'll need to enable IME support (#2841) in a near future too (some work was already done to support inserting Emojis on Windows).
This will fix #4397 and probably other issues like #1877