Commit 117df36b4c3a5f7850a3789e92ce54d9341673ff

Dominik Röttsches 2022-06-22T09:33:20

[sfnt] Upgrade stop_offset to FT_Fixed from FT_F2Dot14

diff --git a/include/freetype/ftcolor.h b/include/freetype/ftcolor.h
index 3edaee4..1328568 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 d54231f..e02dd06 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 );