summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Röttsches <drott@chromium.org>2021-07-26 17:32:09 +0300
committerWerner Lemberg <wl@gnu.org>2021-07-29 06:05:18 +0000
commit5c0ac7a4357cdb8f8e4cef4bb5b20aa54bfe8716 (patch)
tree3c64ebfc98b46fcc37528428356dc4acf59430b4
parent66189807b8f42411d981bc7d2a3cc7f753cf22ae (diff)
downloadfreetype2-5c0ac7a4357cdb8f8e4cef4bb5b20aa54bfe8716.tar.gz
[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.
-rw-r--r--src/sfnt/ttcolr.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sfnt/ttcolr.c b/src/sfnt/ttcolr.c
index e46ca48da..3970a5dc5 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 );