#16213: app_server: Glyphs render above each other
---------------------------------+----------------------------
Reporter: nephele | Owner: axeld
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: Servers/app_server | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Platform: All |
---------------------------------+----------------------------
Comment (by madmax):
Fallbacks.
A lot of printfs and recompiling (thank you for test_app_server) shows
that when the kanas render above each other, their escapements are
retrieved as 0 because their glyphs are not found, and rendered anyway
because the glyphs are found!
The escapements are retrieved using the whole string. I'm guessing for
some sizes Noto Sans Regular does not give return any glyph, Noto Sans
Display is selected as fallback with the first "H" and, as only one
fallback is used for the whole string, the kanas are missing.
The rendering, on the other hand, is done a character at a time, so when
rendering latin letters Noto Sans Display is used if needed and when
rendering tha kanas Noto Sans CJP is chosen.
The thing is https://git.haiku-
os.org/haiku/tree/src/servers/app/font/GlyphLayoutEngine.h#n249 only looks
for a fallback font once in a whole layout string, so when one needs two
or more fallback fonts for different characters in the same hunk, we are
out of luck.
I've played a bit with the call and the locks but as expected I only got
deadlocks. Time for someone who knows to try.
--
Ticket URL: <https://dev.haiku-os.org/ticket/16213#comment:2>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.