[sfnt] 'COLR' v1 PaintSkew related spec updates
* src/sfnt/ttcolr.c (read_paint): Implement spec changes around PaintSkew, PaintSkewAroundCenter. Update parsing to read shorter values as changed in the spec. * include/freetype/ftcolor.h (FT_PaintSkew): Update documentation.
This commit is contained in:
parent
48df0fa652
commit
66189807b8
@ -1219,10 +1219,12 @@ FT_BEGIN_HEADER
|
||||
* skewed.
|
||||
*
|
||||
* x_skew_angle ::
|
||||
* The skewing angle in x~direction.
|
||||
* The skewing angle in x~direction in degrees divided by 180.0
|
||||
* (as in the spec). Multiply by 180.0f to receive degrees.
|
||||
*
|
||||
* y_skew_angle ::
|
||||
* The skewing angle in y~direction.
|
||||
* The skewing angle in y~direction in degrees divided by 180.0
|
||||
* (as in the spec). Multiply by 180.0f to receive degrees.
|
||||
*
|
||||
* center_x ::
|
||||
* The x~coordinate of the pivot point of the skew (in font units).
|
||||
|
@ -649,16 +649,29 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
else if ( apaint->format == FT_COLR_PAINTFORMAT_SKEW )
|
||||
else if ( apaint->format == FT_COLR_PAINTFORMAT_SKEW ||
|
||||
(FT_PaintFormat_Internal)apaint->format ==
|
||||
FT_COLR_PAINTFORMAT_INTERNAL_SKEW_CENTER )
|
||||
{
|
||||
apaint->u.skew.paint.p = child_table_p;
|
||||
apaint->u.skew.paint.insert_root_transform = 0;
|
||||
|
||||
apaint->u.skew.x_skew_angle = FT_NEXT_LONG( p );
|
||||
apaint->u.skew.y_skew_angle = FT_NEXT_LONG( p );
|
||||
apaint->u.skew.x_skew_angle = FT_NEXT_SHORT( p ) << 2;
|
||||
apaint->u.skew.y_skew_angle = FT_NEXT_SHORT( p ) << 2;
|
||||
|
||||
apaint->u.skew.center_x = FT_NEXT_LONG( p );
|
||||
apaint->u.skew.center_y = FT_NEXT_LONG( p );
|
||||
if ( (FT_PaintFormat_Internal)apaint->format ==
|
||||
FT_COLR_PAINTFORMAT_INTERNAL_SKEW_CENTER )
|
||||
{
|
||||
apaint->u.skew.center_x = FT_NEXT_SHORT( p ) << 16;
|
||||
apaint->u.skew.center_y = FT_NEXT_SHORT( p ) << 16;
|
||||
}
|
||||
else
|
||||
{
|
||||
apaint->u.skew.center_x = 0;
|
||||
apaint->u.skew.center_y = 0;
|
||||
}
|
||||
|
||||
apaint->format = FT_COLR_PAINTFORMAT_SKEW;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user