1. 19 Jan, 2021 1 commit
  2. 17 Jan, 2021 4 commits
  3. 16 Jan, 2021 4 commits
  4. 15 Jan, 2021 2 commits
  5. 14 Jan, 2021 9 commits
    • Dominik Röttsches's avatar
      Add config option to test for 'COLR' v1 support in headers. · 53fea877
      Dominik Röttsches authored
      * include/freetype/config/ftoption.h (TT_SUPPORT_COLRV1): New macro
      so that clients can test whether the FreeType checkout that they are
      building against supports the 'COLR' v1 API.  This is intended to be
      a temporary solution until 'COLR' v1 support is released in a
      FreeType version and such a check can be made by using the version
      number instead.
      53fea877
    • Dominik Röttsches's avatar
      [base] Fill 'COLR' v1 API templates to make them work (#59703). · 4b58cf47
      Dominik Röttsches authored
      * src/base/ftobjs.c (FT_Get_Color_Glyph_Paint, FT_Get_Paint_Layers,
      FT_Get_Paint, FT_Get_Colorline_Stops): Add basic sanity checks,
      check for existence of `FT_Face`, check arguments and delegate calls
      for the respective 'COLR' v1 API to the SFNT driver.
      4b58cf47
    • Dominik Röttsches's avatar
      [sfnt] Register 'COLR' v1 API in driver (#59703). · d3e95d97
      Dominik Röttsches authored
      * include/freetype/internal/sfnt.h (TT_Get_Color_Glyph_Paint_Func,
      TT_Get_Paint_Layers_Func, TT_Get_Colorline_Stops_Func,
      TT_Get_Paint_Func): New function pointer types.
      (SFNT_Interface): Add them.
      (FT_DEFINE_SFNT_INTERFACE): Updated.
      
      * src/sfnt/sfdriver.c (PUT_COLOR_LAYERS_V1): New macro.
      (sfnt_interface): Add new function pointers.
      d3e95d97
    • Dominik Röttsches's avatar
      [sfnt] Add 'COLR' v1 API to retrieve color layers (#59703). · 6260b490
      Dominik Röttsches authored
      * src/sfnt/ttcolr.c (tt_face_get_paint_layers): New function to get
      the layers of a `PaintColrLayers` table in the font, using an
      `FT_LayerIterator` from an `FT_PaintColrLayers` object retrieved via
      `tt_face_get_paint`.
      
      * src/sfnt/ttcolr.h: Updated.
      6260b490
    • Dominik Röttsches's avatar
      [sfnt] Add 'COLR' v1 API to iterate color stops (#59703). · be06a9d0
      Dominik Röttsches authored
      * src/sfnt/ttcolr.c (tt_face_get_colorline_stops): New function to
      return the current `FT_ColorStop` object from `FT_ColorStopIterator`.
      Also increment the iterator.
      
      * src/sfnt/ttcolr.h: Updated.
      be06a9d0
    • Dominik Röttsches's avatar
      [sfnt] Add API to get actual paint from `FT_OpaquePaint` (#59703). · cdad4db4
      Dominik Röttsches authored
      * src/sfnt/ttcolr.c (tt_face_get_paint): New function to resolve an
      `FT_OpaquePaint` paint reference into an `FT_COLR_Paint` object of a
      certain format, which contains the detailed information stored in a
      paint of the respective format.
      (read_paint): New function to provide the format specific parsing
      and to populate the data members of each specific `FT_COLR_Paint`
      subtype.
      (read_color_line): New function to parse retrieved color line
      information into an `FT_ColorLine` object, which has information
      about the color line extend mode as well as an
      `FT_ColorStopIterator` object.
      
      * src/sfnt/ttcolr.h: Updated.
      cdad4db4
    • Dominik Röttsches's avatar
      [sfnt] Add API to retrieve 'COLR' v1 root paint (#59703). · 9e422b67
      Dominik Röttsches authored
      * src/sfnt/ttcolr.c (BaseGlyphV1Record): New structure.
      (tt_face_load_colr): Handle version 1 table header.
      (find_base_glyph_v1_record): New auxiliary function.
      (tt_face_get_colr_glyph_paint): New function to find the root
      `FT_OpaquePaint` object for a given glyph ID.
      
      * src/sfnt/ttcolr.h: Updated.
      9e422b67
    • Dominik Röttsches's avatar
      Add new methods required for 'COLR' v1 to public API (#59703). · 08dba4dc
      Dominik Röttsches authored
      * include/freetype/freetype.h (FT_Get_Color_Glyph_Paint): New method
      for retrieving the root paint object for a color glyph by specifying
      a glyph ID.
      (FT_Get_Paint_Layers): New method for retrieving the layers of a
      `PaintColorGlyph`.
      (FT_Get_ColorLine_Stops): New method for retrieving the stops of a
      color.
      (FT_Get_Paint): New method for resolving an `FT_OpaquePaint` into an
      `FT_COLR_Paint` object.
      08dba4dc
    • Dominik Röttsches's avatar
      Add types required for 'COLR' v1 to public API (#59703). · f57c24db
      Dominik Röttsches authored
      * include/freetype/freetype.h (FT_PaintFormat, FT_ColorStopIterator,
      FT_ColorIndex, FT_ColorStop, FT_PaintExtend, FT_ColorLine,
      FT_Affine23, FT_CompositeMode, FT_OpaquePaint, FT_PaintColrLayers,
      FT_PaintSolid, FT_PaintLinearGradient, FT_PaintRadialGradient,
      FT_PaintGlyph, FT_PaintColrGlyph, FT_PaintTransformed,
      FT_PaintTranslate, FT_PaintRotate, FT_PaintSkew, FT_PaintComposite,
      FT_COLR_Paint): Adding structs and enum to represent paint format,
      color stop information, gradient extend information, structs to
      reference paint offsets, and to define transforms and compositions.
      Adding a union type to represent the union of the structs,
      distinguished by `FT_PaintFormat`.
      f57c24db
  6. 10 Jan, 2021 1 commit
  7. 08 Jan, 2021 2 commits
  8. 07 Jan, 2021 5 commits
  9. 06 Jan, 2021 2 commits
  10. 05 Jan, 2021 1 commit
  11. 26 Dec, 2020 4 commits
  12. 24 Dec, 2020 5 commits