diff options
author | Dominik Röttsches <drott@chromium.org> | 2021-07-23 19:37:47 +0300 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2021-07-29 05:56:15 +0000 |
commit | d7bdcb1bb513ac1db99be7461e63f538f9c62293 (patch) | |
tree | 65f9e6ac5ef03672b220cd1eba2817f82fb0d817 | |
parent | 6af39c3d767a40fae28124292400776138b974d3 (diff) | |
download | freetype2-d7bdcb1bb513ac1db99be7461e63f538f9c62293.tar.gz |
[sfnt] 'COLR' v1 PaintTranslate and PaintScale precision
* src/sfnt/ttcolr.c (read_paint): Implement spec changes in
PaintTranslate and PaintScale and friends. Update parsing to read
new shorter values.
-rw-r--r-- | src/sfnt/ttcolr.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/sfnt/ttcolr.c b/src/sfnt/ttcolr.c index bd478ab9b..ad305ac62 100644 --- a/src/sfnt/ttcolr.c +++ b/src/sfnt/ttcolr.c @@ -566,8 +566,8 @@ apaint->u.translate.paint.p = child_table_p; apaint->u.translate.paint.insert_root_transform = 0; - apaint->u.translate.dx = FT_NEXT_LONG( p ); - apaint->u.translate.dy = FT_NEXT_LONG( p ); + apaint->u.translate.dx = FT_NEXT_SHORT( p ) << 16; + apaint->u.translate.dy = FT_NEXT_SHORT( p ) << 16; return 1; } @@ -585,14 +585,14 @@ apaint->u.scale.paint.insert_root_transform = 0; /* All scale paints get at least one scale value. */ - apaint->u.scale.scale_x = FT_NEXT_LONG( p ); + apaint->u.scale.scale_x = FT_NEXT_SHORT( p ) << 2; /* Non-uniform ones read an extra y value. */ if ( apaint->format == FT_COLR_PAINTFORMAT_SCALE || (FT_PaintFormat_Internal)apaint->format == FT_COLR_PAINTFORMAT_INTERNAL_SCALE_CENTER ) - apaint->u.scale.scale_y = FT_NEXT_LONG( p ); + apaint->u.scale.scale_y = FT_NEXT_SHORT( p ) << 2; else apaint->u.scale.scale_y = apaint->u.scale.scale_x; @@ -603,8 +603,8 @@ (FT_PaintFormat_Internal)apaint->format == FT_COLR_PAINTFORMAT_INTERNAL_SCALE_UNIFORM_CENTER ) { - apaint->u.scale.center_x = FT_NEXT_LONG ( p ); - apaint->u.scale.center_y = FT_NEXT_LONG ( p ); + apaint->u.scale.center_x = FT_NEXT_SHORT ( p ) << 16; + apaint->u.scale.center_y = FT_NEXT_SHORT ( p ) << 16; } else { |