[FriBidi] fribidi_reorder_runs()
Eduardo Castiñeyra
eduardo at brainstorm3d.com
Wed Feb 15 17:07:13 UTC 2017
Thanks Behdad!
On 2/8/2017 10:33 PM, Behdad Esfahbod wrote:
> I'll try to put it back in FriBidi. The rollback was necessary
> because the original commit was exposing structs that we didn't want to.
>
> On Wed, Feb 8, 2017 at 10:20 AM, Eduardo Castiñeyra
> <eduardo at brainstorm3d.com <mailto:eduardo at brainstorm3d.com>> wrote:
>
>
>
> On 2/8/2017 7:02 PM, Eli Zaretskii wrote:
>
> Cc: fribidi at lists.freedesktop.org
> <mailto:fribidi at lists.freedesktop.org>
> From: Eduardo Castiñeyra <eduardo at brainstorm3d.com
> <mailto:eduardo at brainstorm3d.com>>
> Date: Wed, 8 Feb 2017 16:59:04 +0100
>
> On 2/7/2017 5:19 PM, Eli Zaretskii wrote:
>
> From: Eduardo Castiñeyra <eduardo at brainstorm3d.com
> <mailto:eduardo at brainstorm3d.com>>
> Date: Tue, 7 Feb 2017 16:39:01 +0100
>
> It turned out that our incorrect way to integrate
> fribidi and harfbuzz
> (let fribidi reorder all the characters and shape
> as full LTR in
> harfbuzz) is "surprisingly" causing problems.
>
> The problem is mainly with the parenthesis. It
> looks like the shaper
> should flip the direction of the parenthesis when
> it belongs to a RTL run.
>
> Shouldn't reordering mirror parentheses if their level
> is even?
>
> AFAIK, parenthesis are neutral, they inherit the direction
> of the text
> surrounding them
>
> Yes, and if the surrounding text is RTL, the parentheses should be
> mirrored as part of reordering. See L4 in the UBA (a.k.a.
> "UAX#9")
> description. It says:
>
> A character is depicted by a mirrored glyph if and only if
> (a) the
> resolved directionality of that character is R, and (b) the
> Bidi_Mirrored property value of that character is Yes.
>
>
> That makes sense. Nevertheless the direction of the parenthesis is
> just an example of why we need that fribidi_reorder_runs function
> which was what my question was actually about.
>
> I think that, in a glyph based renderer, changing the direction of
> the parenthesis should be on harfbuzz's roof not fribidi.
> fribidi's responsibility would be limited to reordering the runs
> and labeling them with their level.
>
> Behdad proposed an algorithm to reorder the runs ourselves
>
> https://github.com/behdad/linear-reorder/blob/master/linear-reorder.c
> <https://github.com/behdad/linear-reorder/blob/master/linear-reorder.c>
>
> but he also implemented it in FriBiDi and then rolled it back. Of
> course we'd rather use the one implemented in FriBiDi as soon as
> it is available. Hence my question.
>
>
> _______________________________________________
> fribidi mailing list
> fribidi at lists.freedesktop.org <mailto:fribidi at lists.freedesktop.org>
> https://lists.freedesktop.org/mailman/listinfo/fribidi
> <https://lists.freedesktop.org/mailman/listinfo/fribidi>
>
>
>
>
> --
> behdad
> http://behdad.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/fribidi/attachments/20170215/b7630965/attachment.html>
More information about the fribidi
mailing list