[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master b052270 2/2: [truetype] Actually scale varied CVT val
From: |
Werner LEMBERG |
Subject: |
[freetype2] master b052270 2/2: [truetype] Actually scale varied CVT values. |
Date: |
Thu, 16 May 2019 06:56:12 -0400 (EDT) |
branch: master
commit b0522701f890372ff9f3d921cf212bccd1f64400
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>
[truetype] Actually scale varied CVT values.
Up to now, only the unscaled CVT values were varied; in other words,
the `CVAR' data was never used for bytecode hinting.
* src/truetype/ttgxvar.c (tt_cvt_ready_iterator): New auxiliary
function.
(tt_face_vary_cvt): Use it to trigger rescaling of CVT values.
---
ChangeLog | 11 +++++++++++
docs/CHANGES | 6 ++++++
src/truetype/ttgxvar.c | 23 +++++++++++++++++++++++
3 files changed, 40 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 52ceba8..8797510 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2019-05-16 Werner Lemberg <address@hidden>
+ [truetype] Actually scale varied CVT values.
+
+ Up to now, only the unscaled CVT values were varied; in other words,
+ the `CVAR' data was never used for bytecode hinting.
+
+ * src/truetype/ttgxvar.c (tt_cvt_ready_iterator): New auxiliary
+ function.
+ (tt_face_vary_cvt): Use it to trigger rescaling of CVT values.
+
+2019-05-16 Werner Lemberg <address@hidden>
+
[truetype] Use 26.6 format for storing unscaled CVT values.
If `CVAR' data is applied to variation fonts, fractional values are
diff --git a/docs/CHANGES b/docs/CHANGES
index 9f001a9..7d91448 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -3,6 +3,9 @@ CHANGES BETWEEN 2.10.0 and 2.10.1
I. IMPORTANT BUG FIXES
+ - The bytecode hinting of OpenType variation fonts was flawed, since
+ the data in the `CVAR' table wasn't correctly applied.
+
II. MISCELLANEOUS
@@ -19,6 +22,9 @@ CHANGES BETWEEN 2.10.0 and 2.10.1
twice in a row, the function returned an incorrect error code the
second time.
+ - Increased precision while computing OpenType font variation
+ instances.
+
======================================================================
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c
index 00b91f6..1c24bc2 100644
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -3113,6 +3113,21 @@
/*************************************************************************/
+ static FT_Error
+ tt_cvt_ready_iterator( FT_ListNode node,
+ void* user )
+ {
+ TT_Size size = (TT_Size)node->data;
+
+ FT_UNUSED( user );
+
+
+ size->cvt_ready = -1;
+
+ return FT_Err_Ok;
+ }
+
+
/**************************************************************************
*
* @Function:
@@ -3143,6 +3158,8 @@
FT_Error error;
FT_Memory memory = stream->memory;
+ FT_Face root = &face->root;
+
FT_ULong table_start;
FT_ULong table_len;
@@ -3451,6 +3468,12 @@
FT_FREE( im_end_coords );
FT_FREE( cvt_deltas );
+ /* iterate over all FT_Size objects and set `cvt_ready' to -1 */
+ /* to trigger rescaling of all CVT values */
+ FT_List_Iterate( &root->sizes_list,
+ tt_cvt_ready_iterator,
+ NULL );
+
return error;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master b052270 2/2: [truetype] Actually scale varied CVT values.,
Werner LEMBERG <=