diff --git a/include/freetype/ftcolor.h b/include/freetype/ftcolor.h index 3edaee4ec..13285683f 100644 --- a/include/freetype/ftcolor.h +++ b/include/freetype/ftcolor.h @@ -592,7 +592,8 @@ FT_BEGIN_HEADER * * @fields: * stop_offset :: - * The stop offset between 0 and 1 along the gradient. + * The stop offset along the gradient, expressed as a 16.16 fixed-point + * coordinate. * * color :: * The color information for this stop, see @FT_ColorIndex. @@ -604,7 +605,7 @@ FT_BEGIN_HEADER */ typedef struct FT_ColorStop_ { - FT_F2Dot14 stop_offset; + FT_Fixed stop_offset; FT_ColorIndex color; } FT_ColorStop; diff --git a/src/sfnt/ttcolr.c b/src/sfnt/ttcolr.c index d54231fd6..e02dd060e 100644 --- a/src/sfnt/ttcolr.c +++ b/src/sfnt/ttcolr.c @@ -1054,7 +1054,7 @@ /* Iterator points at first `ColorStop` of `ColorLine`. */ p = iterator->p; - color_stop->stop_offset = FT_NEXT_SHORT( p ); + color_stop->stop_offset = (FT_Fixed)FT_NEXT_SHORT( p ) << 2; color_stop->color.palette_index = FT_NEXT_USHORT( p );