[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master 28eee36: [type42] Fix auto-hinting.
From: |
Werner Lemberg |
Subject: |
[freetype2] master 28eee36: [type42] Fix auto-hinting. |
Date: |
Thu, 27 May 2021 11:40:42 -0400 (EDT) |
branch: master
commit 28eee3636caa8b933aaaccf47102bd2e698f29f6
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: 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.
---
ChangeLog | 12 ++++++++++++
src/type42/t42objs.c | 7 +++++++
2 files changed, 19 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 01c4d70..cecb207 100644
--- a/ChangeLog
+++ b/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.
diff --git a/src/type42/t42objs.c b/src/type42/t42objs.c
index 59b6540..dd23e73 100644
--- a/src/type42/t42objs.c
+++ b/src/type42/t42objs.c
@@ -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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master 28eee36: [type42] Fix auto-hinting.,
Werner Lemberg <=