[haiku-bugs] Re: [Haiku] #16213: app_server: Glyphs render above each other

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Thu, 30 Jul 2020 19:37:16 -0000

#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.

Other related posts: