Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-16084

Update FreeType to 2.10.0 version from 2.9

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • Major
    • None
    • 3rd-party Modules
    • None

    Description

      Update FreeType to 2.10.0 version from 2.9

      https://sourceforge.net/projects/freetype/files/freetype2/2.10.0/

      This release brings one notable feature, namely support for color-layered outline glyphs (for example, scalable emoji glyphs). Additionally, the API reference has been completely overhauled and modernized, as already announced.

      As usual, many minor fixes and corrections have been applied also;

      CHANGES BETWEEN 2.9.1 and 2.10

      I. IMPORTANT CHANGES

      • A bunch of new functions has been added to access and process
        COLR/CPAL data of OpenType fonts with color-layered glyphs.

      FT_Palette_Data_Get
      Retrieve color palette data.
      FT_Palette_Select
      Select and activate a color palette for color-layered
      glyphs.
      FT_Palette_Set_Foreground_Color
      Set text foreground color for palette index 0xFFFF.

      FT_Get_Color_Glyph_Layer
      Get color layers for a given glyph (using an interator
      object).

      FT_Bitmap_Blend
      Blend one bitmap onto another with a given color.

      • An experimental feature is the new behaviour of the
        `FT_LOAD_COLOR' load flag for color-layered glyphs: Internally
        it sets a flag so that if `FT_Render_Glyph' is called with
        `FT_RENDER_MODE_NORMAL' (or `FT_Load_Glyph' with
        `FT_LOAD_RENDER'), a default blending of the color glyph layers
        will happen automatically for convenience.
      • As a GSoC 2018 project, Nikhil Ramakrishnan completely
        overhauled and modernized the API reference.

      II. MISCELLANEOUS

      • The logic for computing the global ascender, descender, and
        height of OpenType fonts has been slightly adjusted for
        consistency.

      . If the `useTypoMetrics' flag (i.e., bit 7 in the `fsSelection'
      field) in the `OS/2' table is set, use the `sTypo' fields in
      `OS/2' unconditionally.
      . Otherwise use the metrics data from the `hhea' table (if not
      zero).
      . Otherwise use the `sTypo' fields from the `OS/2' table (if not
      zero).
      . Otherwise use the `usWin' data from the `OS/2' table as a last
      resort.

      Variable fonts will apply the `MVAR' deltas to whichever metrics
      were picked.

      • `TT_Set_MM_Blend' could fail if call repeatedly with the same
        arguments.
      • The precision of handling deltas in Variation Fonts has been
        increased. The problem did only show up with multidimensional
        designspaces.
      • New function `FT_Library_SetLcdGeometry' to set up the geometry
        of LCD subpixels.
      • FreeType now uses the `defaultChar' property of PCF fonts to set
        the glyph for the undefined character at glyph index 0 (as
        FreeType already does for all other supported font formats). As
        a consequence, the order of glyphs of a PCF font if accessed
        with FreeType can be different now compared to previous
        versions.

      This change doesn't affect PCF font access with cmaps.

      • `FT_Select_Charmap' has been changed to allow parameter value
        `FT_ENCODING_NONE', which is valid for BDF, PCF, and Windows FNT
        formats to access built-in cmaps that don't have a predefined
        `FT_Encoding' value.
      • A previously reserved field in the `FT_GlyphSlotRec' structure
        now holds the glyph index.
      • On Win32 platforms, the use of `_DLL' to build the library has
        been replaced with `DLL_EXPORT' and `DLL_IMPORT'.
      • The usual round of fuzzer bug fixes to better reject malformed
        fonts.
      • `FT_Outline_New_Internal' and `FT_Outline_Done_Internal' have
        been removed. These two functions were public by oversight only
        and were never documented.
      • A new function `FT_Error_String' returns descriptions of error
        codes if configuration macro FT_CONFIG_OPTION_ERROR_STRINGS is
        defined.
      • `FT_Set_MM_WeightVector' and `FT_Get_MM_WeightVector' are new
        functions limited to Adobe MultiMaster fonts to directly set and
        get the weight vector.
      • Support for Position Independent Code as needed by systems that
        prohibit automatic address fixups, such as BREW, has been
        removed. [Compilation with modern compilers that use flags like
        `-fPIC' or `-fPIE' is not affected.]
      • The `ftdump' demo program has new options `-c' and `-C' to
        display charmaps in compact and detailed format, respectively.
        Option `-V' has been removed.
      • The `ftview', `ftstring', and `ftgrid' demo programs use a new
        command line option `-d' to specify the program window's width,
        height, and color depth.
      • The `ftview' demo program now displays red boxes for zero-width
        glyphs.
      • `ftglyph' has limited support to display fonts with
        color-layered glyphs. This will be improved later on.
      • `ftgrid' can now display bitmap fonts also.
      • The `ttdebug' demo program has a new option `-f' to select a
        member of a TrueType collection (TTC).
      • Other various improvements to the demo programs.

      Attachments

        1. unifdef-reactos-freetype.patch
          14 kB
        2. freetype.patch
          3.90 MB
        3. freetype.patch
          3.90 MB

        Issue Links

          Activity

            People

              bug zilla Bug Zilla
              Jedi-to-be Jedi-to-be
              Votes:
              4 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated: