diff options
author | Alexei Podtelezhnikov <apodtele@gmail.com> | 2021-12-13 11:44:24 -0500 |
---|---|---|
committer | Alexei Podtelezhnikov <apodtele@gmail.com> | 2021-12-13 11:44:24 -0500 |
commit | 0da2a1155ed576646d44ac5f7602e625800abe42 (patch) | |
tree | 12e040fc35902b66ab00888613d547807db87a39 | |
parent | fd03dcc1220453ac9e3e70c664c3f65cc72aefee (diff) | |
download | freetype2-0da2a1155ed576646d44ac5f7602e625800abe42.tar.gz |
[truetype] Upstream the hdmx binary search.
* src/truetype/ttobjs.h (TT_SizeRec): Add `widthp` for the hdmx
widths.
* src/truetype/ttobjs.c (tt_size_reset): Initialize `widthp` even
though it might never be used by the interpreter.
* src/truetype/ttgload.c (tt_loader_init): Avoid repeated searches
in the hdmx table.
-rw-r--r-- | src/truetype/ttgload.c | 4 | ||||
-rw-r--r-- | src/truetype/ttobjs.c | 2 | ||||
-rw-r--r-- | src/truetype/ttobjs.h | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c index 0d8f271c6..796811b39 100644 --- a/src/truetype/ttgload.c +++ b/src/truetype/ttgload.c @@ -2736,9 +2736,7 @@ #endif !face->postscript.isFixedPitch ) { - loader->widthp = tt_face_get_device_metrics( face, - size->metrics->x_ppem, - 0 ); + loader->widthp = size->widthp; } else loader->widthp = NULL; diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c index 93fc54844..5c07b7a2f 100644 --- a/src/truetype/ttobjs.c +++ b/src/truetype/ttobjs.c @@ -1435,6 +1435,8 @@ size->ttmetrics.y_ratio = 0x10000L; } + size->widthp = tt_face_get_device_metrics( face, size_metrics->x_ppem, 0 ); + size->metrics = size_metrics; #ifdef TT_USE_BYTECODE_INTERPRETER diff --git a/src/truetype/ttobjs.h b/src/truetype/ttobjs.h index fd7237872..1c4b5851f 100644 --- a/src/truetype/ttobjs.h +++ b/src/truetype/ttobjs.h @@ -282,6 +282,8 @@ FT_BEGIN_HEADER TT_Size_Metrics ttmetrics; + FT_Byte* widthp; /* glyph widths from the hdmx table */ + FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ #ifdef TT_USE_BYTECODE_INTERPRETER |