Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • 3.1.9
    Release 3.1.9
    
    Added
    -----
    
    * Nanosvg updated to 93ce879dc4c04a3ef1758428ec80083c38610b1f
    * Unicode data files updated to 15.1
    * `FCFT_LOG_COLORIZE_AUTO` now respects the `NO_COLOR` environment
      variable.
    * Support for linking against a system provided nanosvg library. See
      the new `-Dsystem-nanosvg` meson option. Defaults to `disabled`
      (i.e. use the bundled version).
    
    Changed
    -------
    
    * Positioning of SVG glyphs; fcft now tries to center them on the
      line.
    
    Fixed
    -----
    
    * Log-level not respected by syslog
    * Fcft now automatically ensures the `LC_NUMERIC` locale is correctly
      configured for `FcNameParse()` ([#60][60]).
    * Failure to lookup font name (_"warn: fcft.c:583: failed to get full
      font name"_)
    
    [60]: https://codeberg.org/dnkl/fcft/issues/60
    
    Contributors
    ------------
    
    * Jake Waksbaum
    
  • 3.1.8
    Release 3.1.8
    
    Changed
    -------
    
    * Set font size using `FT_Set_Char_Size()` instead of
      `FT_Set_Pixel_Sizes()`, as it provides a more fine-grained
      interface, resulting in a more exact font size ([#1621][foot-1621]).
    
    [foot-1621]: https://codeberg.org/dnkl/foot/issues/1621
    
  • 3.1.7
    Release 3.1.7
    
    Fixed
    -----
    
    * Infinite loop on certain invalid `fontfeatures` values
      ([#1554][foot-1554], [#1556][foot-1556]).
    
    [foot-1554]: https://codeberg.org/dnkl/foot/issues/1554
    [foot-1556]: https://codeberg.org/dnkl/foot/issues/1556
  • 3.1.6
    Release 3.1.6
    
    Added
    -----
    
    * nanosvg updated to 9da543e (2022-12-04)
  • 3.1.5
    Release 3.1.5
    
    Changed
    -------
    
    * SVG: user transformations are now ignored, instead of returning
      _”unimplemented feature”_ error.
    
    Fixed
    -----
    
    * Reverted “fixed: bitmap font glyph advance width calculation”.
    
      It appears that HarfBuzz <= 5.1 calculated glyph advance widths
      incorrectly for bitmap fonts, when bitmap font scaling has been
      enabled (`pixelsizefixupfactor` has been set in FontConfig).
    
      fcft-3.1.3 compensated for this when calculating the glyphs’ advance
      widths.
    
      HarfBuzz >= 5.2 changed how it calculates the advance widths, and
      fcft’s compensation now causes and excessive advance width.
    
      Thus, the patch from fcft-3.1.3 has been reverted.
    
      [#163][fuzzel-163]
    
    [fuzzel-163]: https://codeberg.org/dnkl/fuzzel/issues/163
  • 3.1.4
    Release 3.1.4
    
    Fixed
    -----
    
    * Crash when failing to load an SVG glyph with multiple sub-glyphs.
  • 3.1.3
    Release 3.1.3
    
    Fixed
    -----
    
    * Bitmap font glyph advance width calculation in
      `fcft_rasterize_grapheme_utf32()` and
      `fcft_rasterize_text_run_utf32()` when user had enabled
      `10-scale-bitmap-fonts.conf` in FontConfig.
  • 3.1.2
    Release 3.1.2
    
    Fixed
    -----
    
    * SVG glyphs failing with “bad argument” if LCD subpixel rendering is
      enabled ([#1069][foot-1069]).
    
    [foot-1069]: https://codeberg.org/dnkl/foot/issues/1069
  • 3.1.1
    Release 3.1.1
    
    Fixed
    -----
    
    * Crash when multiple SVG glyphs are rasterized in parallel (i.e. the
      SVG backend is now thread safe) ([#51](51)).
    * Crash when rasterizing SVG glyphs with transforms (e.g. synthetic
      slanting). Transforms are now completely ignored ([#51](51)).
    
    [51]: https://codeberg.org/dnkl/fcft/issues/51
  • 3.1.0
    Release 3.1.0
    
    Added
    -----
    
    * OT-SVG support ([#49](49)). Note that FreeType does not rasterize
      SVG glyphs by itself. Instead, fcft does this via FreeType hooks,
      using a bundled [nanosvg](nanosvg) as backend. Enabled by default,
      but can be disabled with `-Dsvg-backend=none`). FreeType >= 2.12 is
      required.
    * `FCFT_CAPABILITY_SVG` added to `fcft_capabilities()`.
    
    [nanosvg]: https://github.com/memononen/nanosvg
    [49]: https://codeberg.org/dnkl/fcft/issues/49
    
    Changed
    -------
    
    * Minimum required meson version is now 0.58
    
    Fixed
    -----
    
    * `fcft_font::name`, and `fcft_glyph::font_name` not being set
      correctly for font collections (e.g. `*.ttc` files).
    * Assertion inside HarfBuzz with `fcft_rasterize_grapheme_ut32()` when
      we fail to rasterize a glyph ([#1056][foot-1056]).
    
    [foot-1056]: https://codeberg.org/dnkl/foot/issues/1056
  • 3.0.1
    Release 3.0.1
    
    Fixed
    -----
    
    * Crash when failing to lookup the full font name
      (https://codeberg.org/dnkl/fcft/issues/47).
  • 3.0.0
    Release 3.0.0
    
    Added
    -----
    
    * `name` to `struct fcft_font`. This is the name of the **primary**
      font (i.e. not any of the fallback fonts).
    * `font_name` to `struct fcft_glyph`. This is the name of the font the
      glyph was loaded from, and may reference a fallback font. Note that
      it is **always** NULL in text-run glyphs.
    
    Changed
    -------
    
    * meson: default C standard changed from C18 to C11 (fcft does not use
      any C18 features).
    * fcft’s constructor and destructor are now part of the public API,
      and must be explicitly called: `fcft_init()` and `fcft_fini()`. Note
      that `fcft_init()` also handles logging initialization.
    * All `wchar_t` usage replaced with `uint32_t`.
    * layout tags removed from `fcft_grapheme_rasterize()`. These should
      be set using `fontfeature`s in the font `names` and/or `attributes`
      arguments in `fcft_from_name()`.
    * `wc` member in `struct glyph` renamed to `cp` (CodePoint).
    * `wc` function arguments renamed to `cp` in all APIs.
    * `fcft_glyph_rasterize()` renamed to `fcft_rasterize_char_utf32()`.
    * `fcft_grapheme_rasterize()` renamed to `fcft_rasterize_grapheme_utf32()`.
    * `fcft_text_run_rasterize()` renamed to `fcft_rasterize_text_run_utf32()`.
    
    Removed
    -------
    
    * `fcft_size_adjust()`
    * `space_advance` member from `struct fcft_font`.
    * `fcft_log_init()`. Use `fcft_init()` instead.
    
    Fixed
    -----
    
    * Wrong version string generated when building as a subproject.
    * Uninitialized grapheme state variable in
      `fcft_text_run_rasterize()`.
    * Incorrectly sorted Unicode precompose table when building in non-C
      locales (https://codeberg.org/dnkl/fcft/issues/44).
  • 2.5.1
    Release 2.5.1
    
    Added
    -----
    
    * Meson command line option `-Ddocs` to force disable or enable
      building manual pages and installing changelog and readme files
    
    Changed
    -------
    
    * `scdoc` is optional and detected automatically
    * `fcft_set_scaling_filter()` now applies to color bitmap fonts only
      (i.e. emoji fonts). Applying e.g. cubic or lanczos3 on regular text
      glyphs simply does not look good.
    
    Fixed
    -----
    
    * `FCFT_SCALING_FILTER_CUBIC` incorrectly being mapped to “lanczos3”.
    * Pixman errors and program freezes when scaling bitmap fonts to very
      small sizes (https://codeberg.org/dnkl/foot/issues/830).
    
    Contributors
    ------------
    
    *  Alibek Omarov
  • 2.5.0
    Release 2.5.0
    
    Added
    -----
    
    * Text-run shaping now requires libutf8proc (in addition to
      HarfBuzz). Grapheme shaping still requires HarfBuzz only.
    * `fcft_set_emoji_presentation()` - can be used to override emojis’
      **default** presentation style.
    
    Changed
    -------
    
    * Meson command line option `-Dtext-shaping` have been replaced with
      `-Dgrapheme-shaping` and `-Drun-shaping`; grapheme shaping requires
      HarfBuzz only, while run shaping requires HarfBuzz **and**
      libutf8proc. Thus, enabling run shaping implicitly enables grapheme
      shaping.
    * `fcft_*_rasterize()`: emojis’ default presentation is now accounted
      for when searching for a font containing the emoji codepoint;
      codepoints whose default presentation is “text” will no longer
      consider emoji fonts, and codepoints whose default presentation is
      “emoji” will no longer consider non-emoji fonts.
    
    Fixed
    -----
    
    * `fcft_text_run_rasterize()`: much improved handling of RTL scripts
      (in mixed LTR/RTL strings in particular)
  • 2.4.6
    Release 2.4.6
    
    Added
    -----
    
    * UnicodeData updated to 14.0
    
    Fixed
    -----
    
    * ‘wc’ field in `struct fcft_glyph` being assigned font index instead
      of Unicode codepoint in `fcft_grapheme_rasterize()` and
      `fcft_text_run_rasterize()`.
    * Assertion in `glyph_cache_resize()`, triggered by trying to
      rasterize, and _failing_, a large amount of code points
      (https://codeberg.org/dnkl/foot/issues/763).
    * Bad performance of grapheme cache when rasterizing many grapheme
      clusters.
    
    Contributors
    ------------
    
    * [emersion](https://codeberg.org/emersion)
  • 2.4.5
    Release 2.4.5
    
    Fixed
    -----
    
    * `fcft_text_run_rasterize()` not checking if codepoint is in the
      font’s charset before attempting shaping
      (https://codeberg.org/dnkl/fcft/issues/30).
    * Crash when destroying a font with a grapheme cache entry
      representing a failed grapheme glyph.
    
    This is an ABI+API backward compatible release
  • 2.4.4
    Release 2.4.4
    
    Fixed
    -----
    
    * Rendering of bitmap fonts with Freetype >= 2.11
      (https://codeberg.org/dnkl/fcft/issues/29).
  • 2.4.3
    Release 2.4.3
    
    Fixed
    -----
    
    * Bitmap/aliased font glyphs being mirrored on big-endian
      architectures.
    * Color font glyphs having wrong colors on big-endian architectures.
    * Crash when destroying a font that failed to load (typically happens
      when there are no fonts available at all).
  • 2.4.2
    Release 2.4.2
    
    Fixed
    -----
    
    * Rare crash when one thread was doing a glyph cache lookup, while
      another was resizing the cache.
  • 2.4.1
    Release 2.4.1
    
    Changed
    -------
    
    * Log messages are now printed to stderr instead of stdout.
    * `fcft_grapheme_rasterize()` now sets a minimum grapheme column count
      of 2 when the cluster ends with an Emoji variant selector (codepoint
      0xFE0F).
    
    Fixed
    -----
    
    * Compilation error when fallback definition for `FCFT_EXPORT` was used
      in `meson.build`.
    
    Contributors
    ------------
    
    * [emersion](https://codeberg.org/emersion)
    * [craigbarnes](https://codeberg.org/craigbarnes)