aboutsummaryrefslogtreecommitdiff
path: root/Tests/ttLib/tables/C_O_L_R_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/ttLib/tables/C_O_L_R_test.py')
-rw-r--r--Tests/ttLib/tables/C_O_L_R_test.py441
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