Skip to content

Cursive attachment intermixed with mark attachment is different from Uniscribe #211

@behdad

Description

@behdad

Uniscribe seems to allow cursive attachment on marks. We don't. Enabling it is not as easy as changing
CursivePosFormat1::apply(), as currently we do deferrred mark attachment but cursive is immediate. So we get wrong results.

Test font attached in ttx format. Here's what we get currently:

$ ./hb-unicode-encode 0B1F 0B4D 0B1A 0B4D 0B1A | hb-shape NotoSansOriya-Regular.ttf.subset
[ttaorya=0+1307|casubscriptorya=0@-242,104+0|casubscriptnarroworya=0+487]

Here's what Uniscribe gets:

$ ./hb-unicode-encode 0B1F 0B4D 0B1A 0B4D 0B1A | hb-shape NotoSansOriya-Regular.ttf.subset --shaper uniscribe
[ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487]

Here's what we get if I just allow marks in CursivePosFormat1::apply():

$ ./hb-unicode-encode 0B1F 0B4D 0B1A 0B4D 0B1A | hb-shape NotoSansOriya-Regular.ttf.subset
[ttaorya=0+1307|casubscriptorya=0@-242,104+1076|casubscriptnarroworya=0@20,104+507]

Note that the Uniscribe output looks wrong to me. The font has same y anchor point in the cursive for the last two glyphs in our sequence, so their y position should align. But looks like Uniscribe is not doing that. So, I'm thinking that Uniscribe is also doing some things deferred, but in another order (doing cursive before mark attachment for example).

At any rate, I don't think we need to fix this necessarily. Just documenting it here.
NotoSansOriya-Regular.ttf.txt

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions