[type42] Fix auto-hinting.
The autohinter could not access the base (unscaled) outline in the child TrueType glyph slot. We now share the internal parts between the parent and child glyph slots. Fixes #1057. * src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts of `T42_GlyphSlot' and replace it with the child TrueType structure. (T42_GlyphSlot_Done): Updated accordingly.
This commit is contained in:
parent
0d1c306e51
commit
28eee3636c
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2021-05-27 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||
|
||||
[type42] Fix auto-hinting.
|
||||
|
||||
The autohinter could not access the base (unscaled) outline in the
|
||||
child TrueType glyph slot. We now share the internal parts between
|
||||
the parent and child glyph slots. Fixes #1057.
|
||||
|
||||
* src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts
|
||||
of `T42_GlyphSlot' and replace it with the child TrueType structure.
|
||||
(T42_GlyphSlot_Done): Updated accordingly.
|
||||
|
||||
2021-05-25 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
[psaux] Guard and trace AFM kern data allocation.
|
||||
|
@ -583,6 +583,7 @@
|
||||
FT_Face face = t42slot->face;
|
||||
T42_Face t42face = (T42_Face)face;
|
||||
FT_GlyphSlot ttslot;
|
||||
FT_Memory memory = face->memory;
|
||||
FT_Error error = FT_Err_Ok;
|
||||
|
||||
|
||||
@ -598,6 +599,11 @@
|
||||
slot->ttslot = ttslot;
|
||||
}
|
||||
|
||||
/* share the loader so that the autohinter can see it */
|
||||
FT_GlyphLoader_Done( t42slot->internal->loader );
|
||||
FT_FREE( t42slot->internal );
|
||||
t42slot->internal = slot->ttslot->internal;
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
@ -609,6 +615,7 @@
|
||||
|
||||
|
||||
FT_Done_GlyphSlot( slot->ttslot );
|
||||
t42slot->internal = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user