summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDominik Röttsches <drott@chromium.org>2022-05-20 17:22:25 +0300
committerDominik Röttsches <drott@chromium.org>2022-05-23 16:18:28 +0300
commit7838c78f53f206ac5b8e9cefde548aa81cb00cf4 (patch)
treed53d42803fcc160326a69aae0abae85ab8f2bfeb /include
parent9aa99f226279f6fae80565d346ba9f81d396bd02 (diff)
downloadfreetype2-7838c78f53f206ac5b8e9cefde548aa81cb00cf4.tar.gz
[truetype] Support reading 32bit/16bit VarStore deltas
* include/freetype/internal/ftmmtypes.h (FT_ItemVarDelta): Define type to be used for delta arrays, upgrade to FT_long. * src/truetype/ttgxvar.c: Adhere to long_words bit and read either Short/Byte pairs or Long/Short pairs, as defined by spec. For better readability, define macro for repetitive read code.
Diffstat (limited to 'include')
-rw-r--r--include/freetype/internal/ftmmtypes.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/include/freetype/internal/ftmmtypes.h b/include/freetype/internal/ftmmtypes.h
index 74706bedb..44f7e74dd 100644
--- a/include/freetype/internal/ftmmtypes.h
+++ b/include/freetype/internal/ftmmtypes.h
@@ -24,14 +24,16 @@
FT_BEGIN_HEADER
+ typedef FT_Long FT_ItemVarDelta;
+
typedef struct GX_ItemVarDataRec_
{
- FT_UInt itemCount; /* number of delta sets per item */
- FT_UInt regionIdxCount; /* number of region indices in this data */
- FT_UInt* regionIndices; /* array of `regionCount' indices; */
- /* these index `varRegionList' */
- FT_Short* deltaSet; /* array of `itemCount' deltas */
- /* use `innerIndex' for this array */
+ FT_UInt itemCount; /* number of delta sets per item */
+ FT_UInt regionIdxCount; /* number of region indices */
+ FT_UInt* regionIndices; /* array of `regionCount' indices; */
+ /* these index `varRegionList' */
+ FT_ItemVarDelta* deltaSet; /* array of `itemCount' deltas */
+ /* use `innerIndex' for this array */
} GX_ItemVarDataRec, *GX_ItemVarData;