> From: Khaled Hosny <[email protected]>
> Date: Sat, 23 May 2020 09:59:15 +0200
> Cc: [email protected]
> 
> Also either Emacs is currently treating text that it enables shaping for as 
> second-class citizens where limitations/degraded performance is acceptable 
> (which is really really bad)

Could you tell more about which limitations and degraded performance
you had in mind?  I'm not sure we have this, but cannot tell without
understanding the issues.

> or “redesigning the entire Emacs display engine” is not really needed as you 
> can just declare all text as text that needs to be shaped and be done with it.

The Emacs display engine examines the text to be displayed and laid
out one character at a time, and makes layout decisions after each
character or grapheme cluster it lays out.  Its design is therefore
fundamentally incompatible with shaping large substrings of buffer
text at once.  We do support that for short sequences of characters,
which seems to work well enough for complex shaping (a.k.a. "character
compositions") of scripts that require that, but we still do that one
grapheme cluster at a time.  The character composition is implemented
in Lisp, which is called by the display engine, and which then calls
back into C to invoke the shaper.  This implementation is meant to
allow a great deal of control on what should be composed and how.  But
it is also relatively slow, which is another reason why doing that for
all the text to be laid out is impractical: it slows down redisplay to
the degree that it becomes annoying to users.

That is why solving these problems in the way that you suggest
requires a complete rewrite of the Emacs display code.  It simply
cannot currently support what you expect.
_______________________________________________
HarfBuzz mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to