From b1142b60cb348067b369308b2a82906ebe769418 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 25 Dec 2023 13:04:12 -0700 Subject: [PATCH] [VARC] Adjust to latest flags change --- Lib/fontTools/ttLib/tables/otTables.py | 39 ++++++++++---------- Tests/ttLib/data/varc-6868.ttf | Bin 9836 -> 9836 bytes Tests/ttLib/data/varc-ac00-ac01-500upem.ttx | 10 ++--- Tests/ttLib/data/varc-ac00-ac01.ttf | Bin 3384 -> 3372 bytes 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/otTables.py b/Lib/fontTools/ttLib/tables/otTables.py index 1a5fb39c7..d385a7510 100644 --- a/Lib/fontTools/ttLib/tables/otTables.py +++ b/Lib/fontTools/ttLib/tables/otTables.py @@ -49,27 +49,28 @@ log = logging.getLogger(__name__) class VarComponentFlags(IntFlag): - USE_MY_METRICS = 0x0001 - RESET_UNSPECIFIED_AXES = 0x0002 + RESET_UNSPECIFIED_AXES = 0x0001 - GID_IS_24BIT = 0x0004 + HAVE_AXES = 0x0002 - HAVE_AXES = 0x0008 + AXIS_VALUES_HAVE_VARIATION = 0x0004 + TRANSFORM_HAS_VARIATION = 0x0008 - AXIS_VALUES_HAVE_VARIATION = 0x0010 - TRANSFORM_HAS_VARIATION = 0x0020 + HAVE_TRANSLATE_X = 0x0010 + HAVE_TRANSLATE_Y = 0x0020 + HAVE_ROTATION = 0x0040 - HAVE_TRANSLATE_X = 0x0040 - HAVE_TRANSLATE_Y = 0x0080 - HAVE_ROTATION = 0x0100 - HAVE_SCALE_X = 0x0200 - HAVE_SCALE_Y = 0x0400 - HAVE_SKEW_X = 0x0800 - HAVE_SKEW_Y = 0x1000 - HAVE_TCENTER_X = 0x2000 - HAVE_TCENTER_Y = 0x4000 + USE_MY_METRICS = 0x0080 - RESERVED = 0x8000 + HAVE_SCALE_X = 0x0100 + HAVE_SCALE_Y = 0x0200 + HAVE_TCENTER_X = 0x0400 + HAVE_TCENTER_Y = 0x0800 + + GID_IS_24BIT = 0x4000 + + HAVE_SKEW_X = 0x1000 + HAVE_SKEW_Y = 0x2000 VarTransformMappingValues = namedtuple( @@ -160,8 +161,8 @@ class VarComponent: def decompile(self, data, font, localState): i = 0 - self.flags = flags = _unpacker[2](data[i : i + 2]) - i += 2 + self.flags, i = _readVarInt32(data, i) + flags = self.flags gidSize = 3 if flags & VarComponentFlags.GID_IS_24BIT else 2 glyphID = _unpacker[gidSize](data[i : i + gidSize]) @@ -262,7 +263,7 @@ class VarComponent: value = getattr(self.transform, attr_name) data.append(write_transform_component(value, mapping_values)) - return struct.pack(">H", flags) + bytesjoin(data) + return _writeVarInt32(flags) + bytesjoin(data) def toXML(self, writer, ttFont, attrs): attrs.append(("glyphName", self.glyphName)) diff --git a/Tests/ttLib/data/varc-6868.ttf b/Tests/ttLib/data/varc-6868.ttf index 4006191880ee013a7c2d4d835c1b2c8e6065f467..47f85e9b7ba7760f8ffd8046b312bf13e83aa18c 100644 GIT binary patch delta 209 zcmaFk^TtPpfsuiMfrp`iftkS}%rVG$uFUe?3=CWb3=G`2H_C)?vb7r_LFl()Wn;s8Q2*d6c`RMFfhsg-^IbeJd44$zkc#6 z5mhE2bx}keMEw%c1Zh(h)dKMXMKwWG4UpGdKY4|ymUXi=#FQfpEQ}YJtQb5Pxe!9E n3|>sS%xMfB&GrnOEX_w4*p4u;GhSfeVDMm?#ju%2EI|MOk8n6V delta 209 zcmaFk^TtPpfsuiMfrp`iftkS}%rVG$9^0Wz1_mwz1_tgs8)ZT`S>E2*QMb8-b3PYm zCBr?&1jbKnzb4Cw7%%}TKM`3bhF_C&MAXFDUoo&VI4Ce2VqjpB|G$fafq52#ZThdt zD@9b9fYb#MbrAJaL=&V>MN|vK3lP-=QPn^m`>)B%MYXKhpr#yQU}3z#WX0gY$b}GM mW$ - + - + - + - + - + diff --git a/Tests/ttLib/data/varc-ac00-ac01.ttf b/Tests/ttLib/data/varc-ac00-ac01.ttf index 2cccc232f48e6a4b65814b0a33714598af25dbcc..4b81eb6a8d4b4da76b5d169d3ad018775ca1ce36 100644 GIT binary patch delta 154 zcmdlXwMI&YfsuiMfrp`iftkS}%rVHBe@(Rq0|RRS0|TS>L>X(wnvD@AEG&zc{ukan zfu)-*v&XBrwD?;qkg5OPokmus|KAu4>=?Kh9M6Tl)NNp6X2|+y1XRJ`^uCta_}(2BMxX+T&FyR( F*#HN`Ds=z= delta 185 zcmZ1@wL?mVfsuiMfrp`iftkS}%rVG0=G5*o1_ssu1_nmci89uV9UCJ|SXekS>lSXF zz|zfF&mkhG>kya>)WiyjWG&JF