Skip to content

GDEF IVS deltas are not applied to GPOS adjustments? #156

@simoncozens

Description

@simoncozens

Given the attached Oswald-VF.ttf.gz:

$ hb-shape Oswald-VF.ttf AV --features=-kern
[A=0+492|V=1+505]
$ hb-shape Oswald-VF.ttf AV
[A=0+453|V=1+505]
$ ./target/debug/examples/shape  Oswald-VF.ttf AV
A=0+453|V=1+505

# Getting advance width with variations is OK:

$ hb-shape Oswald-VF.ttf AV --features=-kern --variations=wght=700
[A=0+551|V=1+526]
$ ./target/debug/examples/shape Oswald-VF.ttf AV --features=-kern --variations=wght=700
A=0+551|V=1+526

# However, deltas are not being applied to GPOS adjustments

$ hb-shape Oswald-VF.ttf AV --features=+kern --variations=wght=700
[A=0+517|V=1+526]
$ ./target/debug/examples/shape Oswald-VF.ttf AV --features=+kern --variations=wght=700
A=0+512|V=1+526

As we can see, the font at default location has a 39 unit kern. It looks like Rustybuzz is still applying a 39 unit kern despite the fact that GDEF deltas will apply to the GPOS kerning value. Try it again at wght=200 and we still see a 39 unit kern:

$ ./target/debug/examples/shape Oswald-VF.ttf AV --features=-kern --variations=wght=200
A=0+468|V=1+480
$ ./target/debug/examples/shape Oswald-VF.ttf AV --features=+kern --variations=wght=200
A=0+429|V=1+480

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions