[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#33729: 27.0.50; Partial glyphs not rendered for Gujarati with Harfbu
From: |
Khaled Hosny |
Subject: |
bug#33729: 27.0.50; Partial glyphs not rendered for Gujarati with Harfbuzz enabled (renders fine using m17n) |
Date: |
Sat, 5 Jan 2019 23:04:20 +0200 |
User-agent: |
Mutt/1.11.1 (2018-12-01) |
On Sat, Jan 05, 2019 at 10:53:14PM +0200, Khaled Hosny wrote:
> On Sat, Dec 29, 2018 at 04:49:23PM +0200, Eli Zaretskii wrote:
> > > Date: Mon, 24 Dec 2018 19:37:23 +0200
> > > From: Khaled Hosny <dr.khaled.hosny@gmail.com>
> > > Cc: rgm@gnu.org, far.nasiri.m@gmail.com, behdad@behdad.org,
> > > 33729@debbugs.gnu.org, kaushal.modi@gmail.com
> > >
> > > > > We need to know, for a given lgstring we are shaping:
> > > > > * Its direction (from applying bidi algorithm). Each lgstring we are
> > > > > shaping must be of a single direction.
> > > >
> > > > Communicating this to ftfont_shape_by_hb will need changes in a couple
> > > > of interfaces (the existing shaping engines didn't need this
> > > > information). I will work on this soon.
> > >
> > > Great.
> >
> > Done. Please test. I made sure it compiles, but I couldn't actually
> > test the results, as I don't have access to a GNU/Linux system with
> > GUI display. So it could be that I misunderstood the Harfbuzz APIs,
> > as I was essentially flying blind, guided only by the Harfbuzz docs.
>
> It seems to work, but still not quite right. You seem to be passing the
> paragraph direction, but what HarfBuzz needs is resolved direction of
> the text (i.e. the bidi embedding level of the run). In other words, if
> Emacs is going to draw this text from right to left, then HarfBuzz must
> shape it in right to left direction. Both should use the same direction
> all the time and HarfBuzz direction guessing should never be used (i.e.
> always pass to it an explicit direction).
I pushed a couple of commits that does this based on my limited
understanding of Emacs code, please check.
Regards,
Khaled