Commit 5c0ac7a4357cdb8f8e4cef4bb5b20aa54bfe8716

Dominik Röttsches 2021-07-26T17:32:09

[sfnt] Retrieve affine matrix from offset in 'COLR' v1 parsing. * src/sfnt/ttcolr.c (read_paint): Implement spec change where affine transform matrix is now referenced by offset instead of being placed inline in the PaintTransform table.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
diff --git a/src/sfnt/ttcolr.c b/src/sfnt/ttcolr.c
index e46ca48..3970a5d 100644
--- a/src/sfnt/ttcolr.c
+++ b/src/sfnt/ttcolr.c
@@ -551,6 +551,11 @@
       apaint->u.transform.paint.p                     = child_table_p;
       apaint->u.transform.paint.insert_root_transform = 0;
 
+      if ( !get_child_table_pointer( colr, paint_base, &p, &child_table_p ) )
+         return 0;
+
+      p = child_table_p;
+
       apaint->u.transform.affine.xx = FT_NEXT_LONG( p );
       apaint->u.transform.affine.yx = FT_NEXT_LONG( p );
       apaint->u.transform.affine.xy = FT_NEXT_LONG( p );