diff options
Diffstat (limited to 'Tests/ttLib/tables/C_O_L_R_test.py')
-rw-r--r-- | Tests/ttLib/tables/C_O_L_R_test.py | 441 |
1 files changed, 164 insertions, 277 deletions
diff --git a/Tests/ttLib/tables/C_O_L_R_test.py b/Tests/ttLib/tables/C_O_L_R_test.py index aaf33003..4855f58f 100644 --- a/Tests/ttLib/tables/C_O_L_R_test.py +++ b/Tests/ttLib/tables/C_O_L_R_test.py @@ -50,9 +50,7 @@ def diff_binary_fragments(font_bytes, expected_fragments): for expected_bytes, description in expected_fragments: actual_bytes = font_bytes[pos : pos + len(expected_bytes)] if actual_bytes != expected_bytes: - print( - f'{description} (previous "{prev_desc}", actual_bytes: {"".join("%02x" % v for v in actual_bytes)} bytes: {str(font_bytes[pos:pos+16])}' - ) + print(f'{description} (previous "{prev_desc}", actual_bytes: {"".join("%02x" % v for v in actual_bytes)} bytes: {str(font_bytes[pos:pos+16])}') errors += 1 pos += len(expected_bytes) prev_desc = description @@ -104,15 +102,13 @@ COLR_V1_SAMPLE = ( (b"\x00\x01", "Version (1)"), (b"\x00\x01", "BaseGlyphRecordCount (1)"), ( - b"\x00\x00\x00\x22", - "Offset to BaseGlyphRecordArray from beginning of table (34)", + b"\x00\x00\x00\x1a", + "Offset to BaseGlyphRecordArray from beginning of table (26)", ), - (b"\x00\x00\x00\x28", "Offset to LayerRecordArray from beginning of table (40)"), + (b"\x00\x00\x00 ", "Offset to LayerRecordArray from beginning of table (32)"), (b"\x00\x03", "LayerRecordCount (3)"), - (b"\x00\x00\x00\x34", "Offset to BaseGlyphList from beginning of table (52)"), - (b"\x00\x00\x00\x9f", "Offset to LayerList from beginning of table (159)"), - (b"\x00\x00\x01\x62", "Offset to ClipList (354)"), - (b"\x00\x00\x00\x00", "Offset to DeltaSetIndexMap (NULL)"), + (b"\x00\x00\x00,", "Offset to BaseGlyphV1List from beginning of table (44)"), + (b"\x00\x00\x00\xac", "Offset to LayerV1List from beginning of table (172)"), (b"\x00\x00\x00\x00", "Offset to VarStore (NULL)"), (b"\x00\x06", "BaseGlyphRecord[0].BaseGlyph (6)"), (b"\x00\x00", "BaseGlyphRecord[0].FirstLayerIndex (0)"), @@ -123,93 +119,92 @@ COLR_V1_SAMPLE = ( (b"\x00\x01", "LayerRecord[1].PaletteIndex (1)"), (b"\x00\t", "LayerRecord[2].LayerGlyph (9)"), (b"\x00\x02", "LayerRecord[2].PaletteIndex (2)"), - # BaseGlyphList - (b"\x00\x00\x00\x03", "BaseGlyphList.BaseGlyphCount (3)"), - (b"\x00\n", "BaseGlyphList.BaseGlyphPaintRecord[0].BaseGlyph (10)"), + # BaseGlyphV1List + (b"\x00\x00\x00\x03", "BaseGlyphV1List.BaseGlyphCount (3)"), + (b"\x00\n", "BaseGlyphV1List.BaseGlyphV1Record[0].BaseGlyph (10)"), ( b"\x00\x00\x00\x16", - "Offset to Paint table from beginning of BaseGlyphList (22)", + "Offset to Paint table from beginning of BaseGlyphV1List (22)", ), - (b"\x00\x0e", "BaseGlyphList.BaseGlyphPaintRecord[1].BaseGlyph (14)"), + (b"\x00\x0e", "BaseGlyphV1List.BaseGlyphV1Record[1].BaseGlyph (14)"), ( b"\x00\x00\x00\x1c", - "Offset to Paint table from beginning of BaseGlyphList (28)", + "Offset to Paint table from beginning of BaseGlyphV1List (28)", ), - (b"\x00\x0f", "BaseGlyphList.BaseGlyphPaintRecord[2].BaseGlyph (15)"), + (b"\x00\x0f", "BaseGlyphV1List.BaseGlyphV1Record[2].BaseGlyph (15)"), ( - b"\x00\x00\x00\x4a", - "Offset to Paint table from beginning of BaseGlyphList (74)", + b"\x00\x00\x00\x5b", + "Offset to Paint table from beginning of BaseGlyphV1List (91)", ), - # BaseGlyphPaintRecord[0] - (b"\x01", "BaseGlyphPaintRecord[0].Paint.Format (1)"), - (b"\x04", "BaseGlyphPaintRecord[0].Paint.NumLayers (4)"), - (b"\x00\x00\x00\x00", "BaseGlyphPaintRecord[0].Paint.FirstLayerIndex (0)"), - # BaseGlyphPaintRecord[1] - (b"\x20", "BaseGlyphPaintRecord[1].Paint.Format (32)"), - (b"\x00\x00\x0f", "Offset to SourcePaint from beginning of PaintComposite (15)"), - (b"\x03", "BaseGlyphPaintRecord[1].Paint.CompositeMode [SRC_OVER] (3)"), + # BaseGlyphV1Record[0] + (b"\x01", "BaseGlyphV1Record[0].Paint.Format (1)"), + (b"\x04", "BaseGlyphV1Record[0].Paint.NumLayers (4)"), + (b"\x00\x00\x00\x00", "BaseGlyphV1Record[0].Paint.FirstLayerIndex (0)"), + # BaseGlyphV1Record[1] + (b"\x14", "BaseGlyphV1Record[1].Paint.Format (20)"), + (b"\x00\x00<", "Offset to SourcePaint from beginning of PaintComposite (60)"), + (b"\x03", "BaseGlyphV1Record[1].Paint.CompositeMode [SRC_OVER] (3)"), (b"\x00\x00\x08", "Offset to BackdropPaint from beginning of PaintComposite (8)"), - (b"\x0d", "BaseGlyphPaintRecord[1].Paint.BackdropPaint.Format (13)"), - (b"\x00\x00\x07", "Offset to Paint from beginning of PaintVarTransform (7)"), - (b"\x00\x00\x0a", "Offset to VarAffine2x3 from beginning of PaintVarTransform (10)"), - (b"\x0b", "BaseGlyphPaintRecord[1].Paint.BackdropPaint.Format (11)"), - (b"\x00\x0a", "BaseGlyphPaintRecord[1].Paint.BackdropPaint.Glyph (10)"), - (b"\x00\x01\x00\x00", "VarAffine2x3.xx (1.0)"), - (b"\x00\x00\x00\x00", "VarAffine2x3.xy (0.0)"), - (b"\x00\x00\x00\x00", "VarAffine2x3.yx (0.0)"), - (b"\x00\x01\x00\x00", "VarAffine2x3.yy (1.0)"), - (b"\x01\x2c\x00\x00", "VarAffine2x3.dx (300.0)"), - (b"\x00\x00\x00\x00", "VarAffine2x3.dy (0.0)"), - (b"\x00\x00\x00\x00", "VarIndexBase (0)"), - (b"\x0a", "BaseGlyphPaintRecord[1].Paint.SourcePaint.Format (10)"), + (b"\x0d", "BaseGlyphV1Record[1].Paint.BackdropPaint.Format (13)"), + (b"\x00\x00\x34", "Offset to Paint from beginning of PaintVarTransform (52)"), + (b"\x00\x01\x00\x00\x00\x00\x00\x00", "Affine2x3.xx.value (1.0)"), + (b"\x00\x00\x00\x00\x00\x00\x00\x00", "Affine2x3.xy.value (0.0)"), + (b"\x00\x00\x00\x00\x00\x00\x00\x00", "Affine2x3.yx.value (0.0)"), + (b"\x00\x01\x00\x00\x00\x00\x00\x00", "Affine2x3.yy.value (1.0)"), + (b"\x01\x2c\x00\x00\x00\x00\x00\x00", "Affine2x3.dx.value (300.0)"), + (b"\x00\x00\x00\x00\x00\x00\x00\x00", "Affine2x3.dy.value (0.0)"), + (b"\x0b", "BaseGlyphV1Record[1].Paint.SourcePaint.Format (11)"), + (b"\x00\n", "BaseGlyphV1Record[1].Paint.SourcePaint.Glyph (10)"), + # BaseGlyphV1Record[2] + (b"\x0a", "BaseGlyphV1Record[2].Paint.Format (10)"), (b"\x00\x00\x06", "Offset to Paint subtable from beginning of PaintGlyph (6)"), - (b"\x00\x0b", "BaseGlyphPaintRecord[1].Paint.SourcePaint.Glyph (11)"), - (b"\x08", "BaseGlyphPaintRecord[1].Paint.SourcePaint.Paint.Format (8)"), - (b"\x00\x00\x0c", "Offset to ColorLine from beginning of PaintSweepGradient (12)"), + (b"\x00\x0b", "BaseGlyphV1Record[2].Paint.Glyph (11)"), + (b"\x08", "BaseGlyphV1Record[2].Paint.Paint.Format (8)"), + (b"\x00\x00\x10", "Offset to ColorLine from beginning of PaintSweepGradient (16)"), (b"\x01\x03", "centerX (259)"), (b"\x01\x2c", "centerY (300)"), - (b"\x10\x00", "startAngle (0.25)"), - (b"\x30\x00", "endAngle (0.75)"), + (b"\x00\x2d\x00\x00", "startAngle (45.0)"), + (b"\x00\x87\x00\x00", "endAngle (135.0)"), (b"\x00", "ColorLine.Extend (0; pad)"), (b"\x00\x02", "ColorLine.StopCount (2)"), (b"\x00\x00", "ColorLine.ColorStop[0].StopOffset (0.0)"), - (b"\x00\x03", "ColorLine.ColorStop[0].PaletteIndex (3)"), - (b"@\x00", "ColorLine.ColorStop[0].Alpha (1.0)"), + (b"\x00\x03", "ColorLine.ColorStop[0].Color.PaletteIndex (3)"), + (b"@\x00", "ColorLine.ColorStop[0].Color.Alpha (1.0)"), (b"@\x00", "ColorLine.ColorStop[1].StopOffset (1.0)"), - (b"\x00\x05", "ColorLine.ColorStop[1].PaletteIndex (5)"), - (b"@\x00", "ColorLine.ColorStop[1].Alpha (1.0)"), - # LayerList - (b"\x00\x00\x00\x04", "LayerList.LayerCount (4)"), + (b"\x00\x05", "ColorLine.ColorStop[1].Color.PaletteIndex (5)"), + (b"@\x00", "ColorLine.ColorStop[1].Color.Alpha (1.0)"), + # LayerV1List + (b"\x00\x00\x00\x04", "LayerV1List.LayerCount (4)"), ( b"\x00\x00\x00\x14", - "First Offset to Paint table from beginning of LayerList (20)", + "First Offset to Paint table from beginning of LayerV1List (20)", ), ( b"\x00\x00\x00\x23", - "Second Offset to Paint table from beginning of LayerList (35)", + "Second Offset to Paint table from beginning of LayerV1List (35)", ), ( b"\x00\x00\x00\x4e", - "Third Offset to Paint table from beginning of LayerList (78)", + "Third Offset to Paint table from beginning of LayerV1List (78)", ), ( - b"\x00\x00\x00\x9e", - "Fourth Offset to Paint table from beginning of LayerList (158)", + b"\x00\x00\x00\xb7", + "Fourth Offset to Paint table from beginning of LayerV1List (183)", ), - # BaseGlyphPaintRecord[2] - (b"\x0a", "BaseGlyphPaintRecord[2].Paint.Format (10)"), - (b"\x00\x00\x06", "Offset to Paint subtable from beginning of PaintGlyph (6)"), - (b"\x00\x0b", "BaseGlyphPaintRecord[2].Paint.Glyph (11)"), + # PaintGlyph glyph00011 + (b"\x0a", "LayerV1List.Paint[0].Format (10)"), + (b"\x00\x00\x06", "Offset24 to Paint subtable from beginning of PaintGlyph (6)"), + (b"\x00\x0b", "LayerV1List.Paint[0].Glyph (glyph00011)"), # PaintVarSolid - (b"\x03", "LayerList.Paint[0].Paint.Format (3)"), - (b"\x00\x02", "Paint.PaletteIndex (2)"), - (b" \x00", "Paint.Alpha.value (0.5)"), - (b"\x00\x00\x00\x06", "VarIndexBase (6)"), + (b"\x03", "LayerV1List.Paint[0].Paint.Format (3)"), + (b"\x00\x02", "Paint.Color.PaletteIndex (2)"), + (b" \x00", "Paint.Color.Alpha.value (0.5)"), + (b"\x00\x00\x00\x00", "Paint.Color.Alpha.varIdx (0)"), # PaintGlyph glyph00012 - (b"\x0a", "LayerList.Paint[1].Format (10)"), + (b"\x0a", "LayerV1List.Paint[1].Format (10)"), (b"\x00\x00\x06", "Offset to Paint subtable from beginning of PaintGlyph (6)"), - (b"\x00\x0c", "LayerList.Paint[1].Glyph (glyph00012)"), - (b"\x04", "LayerList.Paint[1].Paint.Format (4)"), + (b"\x00\x0c", "LayerV1List.Paint[1].Glyph (glyph00012)"), + (b"\x04", "LayerV1List.Paint[1].Paint.Format (4)"), (b"\x00\x00\x10", "Offset to ColorLine from beginning of PaintLinearGradient (16)"), (b"\x00\x01", "Paint.x0 (1)"), (b"\x00\x02", "Paint.y0 (2)"), @@ -220,105 +215,68 @@ COLR_V1_SAMPLE = ( (b"\x01", "ColorLine.Extend (1; repeat)"), (b"\x00\x03", "ColorLine.StopCount (3)"), (b"\x00\x00", "ColorLine.ColorStop[0].StopOffset (0.0)"), - (b"\x00\x03", "ColorLine.ColorStop[0].PaletteIndex (3)"), - (b"@\x00", "ColorLine.ColorStop[0].Alpha (1.0)"), + (b"\x00\x03", "ColorLine.ColorStop[0].Color.PaletteIndex (3)"), + (b"@\x00", "ColorLine.ColorStop[0].Color.Alpha (1.0)"), (b" \x00", "ColorLine.ColorStop[1].StopOffset (0.5)"), - (b"\x00\x04", "ColorLine.ColorStop[1].PaletteIndex (4)"), - (b"@\x00", "ColorLine.ColorStop[1].Alpha (1.0)"), + (b"\x00\x04", "ColorLine.ColorStop[1].Color.PaletteIndex (4)"), + (b"@\x00", "ColorLine.ColorStop[1].Color.Alpha (1.0)"), (b"@\x00", "ColorLine.ColorStop[2].StopOffset (1.0)"), - (b"\x00\x05", "ColorLine.ColorStop[2].PaletteIndex (5)"), - (b"@\x00", "ColorLine.ColorStop[2].Alpha (1.0)"), + (b"\x00\x05", "ColorLine.ColorStop[2].Color.PaletteIndex (5)"), + (b"@\x00", "ColorLine.ColorStop[2].Color.Alpha (1.0)"), # PaintGlyph glyph00013 - (b"\x0a", "LayerList.Paint[2].Format (10)"), + (b"\x0a", "LayerV1List.Paint[2].Format (10)"), (b"\x00\x00\x06", "Offset to Paint subtable from beginning of PaintGlyph (6)"), - (b"\x00\x0d", "LayerList.Paint[2].Glyph (13)"), - (b"\x0c", "LayerList.Paint[2].Paint.Format (12)"), - (b"\x00\x00\x07", "Offset to Paint subtable from beginning of PaintTransform (7)"), - (b"\x00\x00\x32", "Offset to Affine2x3 subtable from beginning of PaintTransform (50)"), - (b"\x07", "LayerList.Paint[2].Paint.Paint.Format (7)"), - (b"\x00\x00\x14", "Offset to ColorLine from beginning of PaintVarRadialGradient (20)"), - (b"\x00\x07", "Paint.x0.value (7)"), - (b"\x00\x08", "Paint.y0.value (8)"), - (b"\x00\t", "Paint.r0.value (9)"), - (b"\x00\n", "Paint.x1.value (10)"), - (b"\x00\x0b", "Paint.y1.value (11)"), - (b"\x00\x0c", "Paint.r1.value (12)"), - (b"\xff\xff\xff\xff", "VarIndexBase (0xFFFFFFFF)"), - (b"\x00", "ColorLine.Extend (0; pad)"), - (b"\x00\x02", "ColorLine.StopCount (2)"), - (b"\x00\x00", "ColorLine.ColorStop[0].StopOffset.value (0.0)"), - (b"\x00\x06", "ColorLine.ColorStop[0].PaletteIndex (6)"), - (b"@\x00", "ColorLine.ColorStop[0].Alpha.value (1.0)"), - (b"\xff\xff\xff\xff", "VarIndexBase (0xFFFFFFFF)"), - (b"@\x00", "ColorLine.ColorStop[1].StopOffset.value (1.0)"), - (b"\x00\x07", "ColorLine.ColorStop[1].PaletteIndex (7)"), - (b"\x19\x9a", "ColorLine.ColorStop[1].Alpha.value (0.4)"), - - (b"\x00\x00\x00\x07", "VarIndexBase (7)"), + (b"\x00\r", "LayerV1List.Paint[2].Glyph (13)"), + (b"\x0c", "LayerV1List.Paint[2].Paint.Format (12)"), + (b"\x00\x00\x1c", "Offset to Paint subtable from beginning of PaintTransform (28)"), (b"\xff\xf3\x00\x00", "Affine2x3.xx (-13)"), (b"\x00\x0e\x00\x00", "Affine2x3.xy (14)"), (b"\x00\x0f\x00\x00", "Affine2x3.yx (15)"), (b"\xff\xef\x00\x00", "Affine2x3.yy (-17)"), (b"\x00\x12\x00\x00", "Affine2x3.yy (18)"), (b"\x00\x13\x00\x00", "Affine2x3.yy (19)"), - + (b"\x07", "LayerV1List.Paint[2].Paint.Paint.Format (7)"), + (b"\x00\x00(", "Offset to ColorLine from beginning of PaintVarRadialGradient (40)"), + (b"\x00\x07\x00\x00\x00\x00", "Paint.x0.value (7)"), + (b"\x00\x08\x00\x00\x00\x00", "Paint.y0.value (8)"), + (b"\x00\t\x00\x00\x00\x00", "Paint.r0.value (9)"), + (b"\x00\n\x00\x00\x00\x00", "Paint.x1.value (10)"), + (b"\x00\x0b\x00\x00\x00\x00", "Paint.y1.value (11)"), + (b"\x00\x0c\x00\x00\x00\x00", "Paint.r1.value (12)"), + (b"\x00", "ColorLine.Extend (0; pad)"), + (b"\x00\x02", "ColorLine.StopCount (2)"), + (b"\x00\x00\x00\x00\x00\x00", "ColorLine.ColorStop[0].StopOffset.value (0.0)"), + (b"\x00\x06", "ColorLine.ColorStop[0].Color.PaletteIndex (6)"), + (b"@\x00\x00\x00\x00\x00", "ColorLine.ColorStop[0].Color.Alpha.value (1.0)"), + (b"@\x00\x00\x00\x00\x00", "ColorLine.ColorStop[1].StopOffset.value (1.0)"), + (b"\x00\x07", "ColorLine.ColorStop[1].Color.PaletteIndex (7)"), + (b"\x19\x9a\x00\x00\x00\x00", "ColorLine.ColorStop[1].Color.Alpha.value (0.4)"), # PaintTranslate - (b"\x0e", "LayerList.Paint[3].Format (14)"), - (b"\x00\x00\x08", "Offset to Paint subtable from beginning of PaintTranslate (8)"), - (b"\x01\x01", "dx (257)"), - (b"\x01\x02", "dy (258)"), - - # PaintRotateAroundCenter - (b"\x1a", "LayerList.Paint[3].Paint.Format (26)"), - ( - b"\x00\x00\x0a", - "Offset to Paint subtable from beginning of PaintRotateAroundCenter (11)", - ), - (b"\x10\x00", "angle (0.25)"), - (b"\x00\xff", "centerX (255)"), - (b"\x01\x00", "centerY (256)"), - + (b"\x0e", "LayerV1List.Paint[3].Format (14)"), + (b"\x00\x00\x0c", "Offset to Paint subtable from beginning of PaintTranslate (12)"), + (b"\x01\x01\x00\x00", "dx (257)"), + (b"\x01\x02\x00\x00", "dy (258)"), + # PaintRotate + (b"\x10", "LayerV1List.Paint[3].Paint.Format (16)"), + (b"\x00\x00\x10", "Offset to Paint subtable from beginning of PaintRotate (16)"), + (b"\x00\x2d\x00\x00", "angle (45)"), + (b"\x00\xff\x00\x00", "centerX (255)"), + (b"\x01\x00\x00\x00", "centerY (256)"), # PaintSkew - (b"\x1c", "LayerList.Paint[3].Paint.Paint.Format (28)"), - ( - b"\x00\x00\x08", - "Offset to Paint subtable from beginning of PaintSkew (8)", - ), - (b"\xfc\x17", "xSkewAngle (-0.0611)"), - (b"\x01\xc7", "ySkewAngle (0.0278)"), - + (b"\x12", "LayerV1List.Paint[3].Paint.Paint.Format (18)"), + (b"\x00\x00\x14", "Offset to Paint subtable from beginning of PaintSkew (20)"), + (b"\xff\xf5\x00\x00", "xSkewAngle (-11)"), + (b"\x00\x05\x00\x00", "ySkewAngle (5)"), + (b"\x00\xfd\x00\x00", "centerX.value (253)"), + (b"\x00\xfe\x00\x00", "centerY.value (254)"), # PaintGlyph - (b"\x0a", "LayerList.Paint[3].Paint.Paint.Paint.Format (10)"), + (b"\x0a", "LayerV1List.Paint[3].Paint.Paint.Paint.Format (10)"), (b"\x00\x00\x06", "Offset to Paint subtable from beginning of PaintGlyph (6)"), - (b"\x00\x0b", "LayerList.Paint[2].Glyph (11)"), - + (b"\x00\x0b", "LayerV1List.Paint[2].Glyph (11)"), # PaintSolid - (b"\x02", "LayerList.Paint[0].Paint.Paint.Paint.Paint.Format (2)"), - (b"\x00\x02", "Paint.PaletteIndex (2)"), - (b" \x00", "Paint.Alpha (0.5)"), - - # ClipList - (b'\x01', "ClipList.Format (1)"), - (b'\x00\x00\x00\x02', "ClipList.ClipCount (2)"), - (b'\x00\x0a', "ClipRecord[0].StartGlyphID (10)"), - (b'\x00\x0a', "ClipRecord[0].EndGlyphID (10)"), - (b'\x00\x00\x13', "Offset to ClipBox subtable from beginning of ClipList (19)"), - (b'\x00\x0e', "ClipRecord[1].StartGlyphID (14)"), - (b'\x00\x0f', "ClipRecord[1].EndGlyphID (15)"), - (b'\x00\x00\x20', "Offset to ClipBox subtable from beginning of ClipList (32)"), - - (b'\x02', "ClipBox.Format (2)"), - (b'\x00\x00', "ClipBox.xMin (0)"), - (b'\x00\x00', "ClipBox.yMin (0)"), - (b'\x01\xf4', "ClipBox.xMax (500)"), - (b'\x01\xf4', "ClipBox.yMax (500)"), - (b'\x00\x00\x00\t', "ClipBox.VarIndexBase (9)"), - - (b'\x01', "ClipBox.Format (1)"), - (b'\x00\x00', "ClipBox.xMin (0)"), - (b'\x00\x00', "ClipBox.yMin (0)"), - (b'\x03\xe8', "ClipBox.xMax (1000)"), - (b'\x03\xe8', "ClipBox.yMax (1000)"), + (b"\x02", "LayerV1List.Paint[0].Paint.Paint.Paint.Paint.Format (2)"), + (b"\x00\x02", "Paint.Color.PaletteIndex (2)"), + (b" \x00", "Paint.Color.Alpha (0.5)"), ) COLR_V1_DATA = b"".join(t[0] for t in COLR_V1_SAMPLE) @@ -348,18 +306,18 @@ COLR_V1_XML = [ " </LayerRecord>", "</LayerRecordArray>", "<!-- LayerRecordCount=3 -->", - "<BaseGlyphList>", + "<BaseGlyphV1List>", " <!-- BaseGlyphCount=3 -->", - ' <BaseGlyphPaintRecord index="0">', + ' <BaseGlyphV1Record index="0">', ' <BaseGlyph value="glyph00010"/>', ' <Paint Format="1"><!-- PaintColrLayers -->', ' <NumLayers value="4"/>', ' <FirstLayerIndex value="0"/>', " </Paint>", - " </BaseGlyphPaintRecord>", - ' <BaseGlyphPaintRecord index="1">', + " </BaseGlyphV1Record>", + ' <BaseGlyphV1Record index="1">', ' <BaseGlyph value="glyph00014"/>', - ' <Paint Format="32"><!-- PaintComposite -->', + ' <Paint Format="20"><!-- PaintComposite -->', ' <SourcePaint Format="11"><!-- PaintColrGlyph -->', ' <Glyph value="glyph00010"/>', " </SourcePaint>", @@ -375,12 +333,11 @@ COLR_V1_XML = [ ' <yy value="1.0"/>', ' <dx value="300.0"/>', ' <dy value="0.0"/>', - ' <VarIndexBase value="0"/>', " </Transform>", " </BackdropPaint>", " </Paint>", - " </BaseGlyphPaintRecord>", - ' <BaseGlyphPaintRecord index="2">', + " </BaseGlyphV1Record>", + ' <BaseGlyphV1Record index="2">', ' <BaseGlyph value="glyph00015"/>', ' <Paint Format="10"><!-- PaintGlyph -->', ' <Paint Format="8"><!-- PaintSweepGradient -->', @@ -389,13 +346,17 @@ COLR_V1_XML = [ " <!-- StopCount=2 -->", ' <ColorStop index="0">', ' <StopOffset value="0.0"/>', - ' <PaletteIndex value="3"/>', - ' <Alpha value="1.0"/>', + " <Color>", + ' <PaletteIndex value="3"/>', + ' <Alpha value="1.0"/>', + " </Color>", " </ColorStop>", ' <ColorStop index="1">', ' <StopOffset value="1.0"/>', - ' <PaletteIndex value="5"/>', - ' <Alpha value="1.0"/>', + " <Color>", + ' <PaletteIndex value="5"/>', + ' <Alpha value="1.0"/>', + " </Color>", " </ColorStop>", " </ColorLine>", ' <centerX value="259"/>', @@ -405,15 +366,16 @@ COLR_V1_XML = [ " </Paint>", ' <Glyph value="glyph00011"/>', " </Paint>", - " </BaseGlyphPaintRecord>", - "</BaseGlyphList>", - "<LayerList>", + " </BaseGlyphV1Record>", + "</BaseGlyphV1List>", + "<LayerV1List>", " <!-- LayerCount=4 -->", ' <Paint index="0" Format="10"><!-- PaintGlyph -->', ' <Paint Format="3"><!-- PaintVarSolid -->', - ' <PaletteIndex value="2"/>', - ' <Alpha value="0.5"/>', - ' <VarIndexBase value="6"/>', + " <Color>", + ' <PaletteIndex value="2"/>', + ' <Alpha value="0.5"/>', + " </Color>", " </Paint>", ' <Glyph value="glyph00011"/>', " </Paint>", @@ -424,18 +386,24 @@ COLR_V1_XML = [ " <!-- StopCount=3 -->", ' <ColorStop index="0">', ' <StopOffset value="0.0"/>', - ' <PaletteIndex value="3"/>', - ' <Alpha value="1.0"/>', + " <Color>", + ' <PaletteIndex value="3"/>', + ' <Alpha value="1.0"/>', + " </Color>", " </ColorStop>", ' <ColorStop index="1">', ' <StopOffset value="0.5"/>', - ' <PaletteIndex value="4"/>', - ' <Alpha value="1.0"/>', + " <Color>", + ' <PaletteIndex value="4"/>', + ' <Alpha value="1.0"/>', + " </Color>", " </ColorStop>", ' <ColorStop index="2">', ' <StopOffset value="1.0"/>', - ' <PaletteIndex value="5"/>', - ' <Alpha value="1.0"/>', + " <Color>", + ' <PaletteIndex value="5"/>', + ' <Alpha value="1.0"/>', + " </Color>", " </ColorStop>", " </ColorLine>", ' <x0 value="1"/>', @@ -455,15 +423,17 @@ COLR_V1_XML = [ " <!-- StopCount=2 -->", ' <ColorStop index="0">', ' <StopOffset value="0.0"/>', - ' <PaletteIndex value="6"/>', - ' <Alpha value="1.0"/>', - " <VarIndexBase/>", + " <Color>", + ' <PaletteIndex value="6"/>', + ' <Alpha value="1.0"/>', + " </Color>", " </ColorStop>", ' <ColorStop index="1">', ' <StopOffset value="1.0"/>', - ' <PaletteIndex value="7"/>', - ' <Alpha value="0.4"/>', - ' <VarIndexBase value="7"/>', + " <Color>", + ' <PaletteIndex value="7"/>', + ' <Alpha value="0.4"/>', + " </Color>", " </ColorStop>", " </ColorLine>", ' <x0 value="7"/>', @@ -472,7 +442,6 @@ COLR_V1_XML = [ ' <x1 value="10"/>', ' <y1 value="11"/>', ' <r1 value="12"/>', - " <VarIndexBase/>", " </Paint>", " <Transform>", ' <xx value="-13.0"/>', @@ -486,99 +455,30 @@ COLR_V1_XML = [ ' <Glyph value="glyph00013"/>', " </Paint>", ' <Paint index="3" Format="14"><!-- PaintTranslate -->', - ' <Paint Format="26"><!-- PaintRotateAroundCenter -->', - ' <Paint Format="28"><!-- PaintSkew -->', + ' <Paint Format="16"><!-- PaintRotate -->', + ' <Paint Format="18"><!-- PaintSkew -->', ' <Paint Format="10"><!-- PaintGlyph -->', ' <Paint Format="2"><!-- PaintSolid -->', - ' <PaletteIndex value="2"/>', - ' <Alpha value="0.5"/>', + " <Color>", + ' <PaletteIndex value="2"/>', + ' <Alpha value="0.5"/>', + " </Color>", " </Paint>", ' <Glyph value="glyph00011"/>', " </Paint>", ' <xSkewAngle value="-11.0"/>', ' <ySkewAngle value="5.0"/>', + ' <centerX value="253.0"/>', + ' <centerY value="254.0"/>', " </Paint>", ' <angle value="45.0"/>', - ' <centerX value="255"/>', - ' <centerY value="256"/>', + ' <centerX value="255.0"/>', + ' <centerY value="256.0"/>', " </Paint>", - ' <dx value="257"/>', - ' <dy value="258"/>', + ' <dx value="257.0"/>', + ' <dy value="258.0"/>', " </Paint>", - "</LayerList>", - '<ClipList Format="1">', - " <Clip>", - ' <Glyph value="glyph00010"/>', - ' <ClipBox Format="2">', - ' <xMin value="0"/>', - ' <yMin value="0"/>', - ' <xMax value="500"/>', - ' <yMax value="500"/>', - ' <VarIndexBase value="9"/>', - " </ClipBox>", - " </Clip>", - " <Clip>", - ' <Glyph value="glyph00014"/>', - ' <Glyph value="glyph00015"/>', - ' <ClipBox Format="1">', - ' <xMin value="0"/>', - ' <yMin value="0"/>', - ' <xMax value="1000"/>', - ' <yMax value="1000"/>', - " </ClipBox>", - " </Clip>", - "</ClipList>", -] - -COLR_V1_VAR_XML = [ - '<VarIndexMap Format="0">', - ' <Map index="0" outer="1" inner="1"/>', - ' <Map index="1" outer="1" inner="0"/>', - ' <Map index="2" outer="1" inner="0"/>', - ' <Map index="3" outer="1" inner="1"/>', - ' <Map index="4" outer="1" inner="0"/>', - ' <Map index="5" outer="1" inner="0"/>', - ' <Map index="6" outer="0" inner="2"/>', - ' <Map index="7" outer="0" inner="0"/>', - ' <Map index="8" outer="0" inner="1"/>', - ' <Map index="9" outer="1" inner="0"/>', - ' <Map index="10" outer="1" inner="0"/>', - ' <Map index="11" outer="0" inner="3"/>', - ' <Map index="12" outer="0" inner="3"/>', - "</VarIndexMap>", - '<VarStore Format="1">', - ' <Format value="1"/>', - " <VarRegionList>", - " <!-- RegionAxisCount=1 -->", - " <!-- RegionCount=1 -->", - ' <Region index="0">', - ' <VarRegionAxis index="0">', - ' <StartCoord value="0.0"/>', - ' <PeakCoord value="1.0"/>', - ' <EndCoord value="1.0"/>', - " </VarRegionAxis>", - " </Region>", - " </VarRegionList>", - " <!-- VarDataCount=2 -->", - ' <VarData index="0">', - " <!-- ItemCount=4 -->", - ' <NumShorts value="1"/>', - " <!-- VarRegionCount=1 -->", - ' <VarRegionIndex index="0" value="0"/>', - ' <Item index="0" value="[-3277]"/>', - ' <Item index="1" value="[6553]"/>', - ' <Item index="2" value="[8192]"/>', - ' <Item index="3" value="[500]"/>', - " </VarData>", - ' <VarData index="1">', - " <!-- ItemCount=2 -->", - ' <NumShorts value="32769"/>', - " <!-- VarRegionCount=1 -->", - ' <VarRegionIndex index="0" value="0"/>', - ' <Item index="0" value="[0]"/>', - ' <Item index="1" value="[65536]"/>', - " </VarData>", - "</VarStore>", + "</LayerV1List>", ] @@ -610,16 +510,3 @@ class COLR_V1_Test(object): colr = table_C_O_L_R_() colr.decompile(compiled, font) assert getXML(colr.toXML, font) == COLR_V1_XML - - -class COLR_V1_Variable_Test(object): - def test_round_trip_xml(self, font): - colr = table_C_O_L_R_() - xml = COLR_V1_XML + COLR_V1_VAR_XML - for name, attrs, content in parseXML(xml): - colr.fromXML(name, attrs, content, font) - compiled = colr.compile(font) - - colr = table_C_O_L_R_() - colr.decompile(compiled, font) - assert getXML(colr.toXML, font) == xml |