• Stable 3.1.5 b3877795cd

    3.1.5

    dnkl released this 3 months ago | 13 commits to master since this release

    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 an excessive advance width.

      Thus, the patch from fcft-3.1.3 has been reverted.

      #163

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 3.1.4 7f15b4d74c

    3.1.4

    dnkl released this 3 months ago | 22 commits to master since this release

    Fixed

    • Crash when failing to load an SVG glyph with multiple sub-glyphs.

    This is an ABI and API backward compatible release.

    Downloads
     
  • Stable 3.1.3 fbc8df3875

    3.1.3

    dnkl released this 4 months ago | 30 commits to master since this release

    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.
    Downloads
     
  • Stable 3.1.2 c9100e23e2

    3.1.2

    dnkl released this 7 months ago | 38 commits to master since this release

    Fixed

    • SVG glyphs failing with “bad argument” if LCD subpixel rendering is enabled (#1069).

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 3.1.1 957538283b

    3.1.1

    dnkl released this 7 months ago | 46 commits to master since this release

    Fixed

    • Crash when multiple SVG glyphs are rasterized in parallel (i.e. the SVG backend is now thread safe) (#51).
    • Crash when rasterizing SVG glyphs with transforms (e.g. synthetic slanting). Transforms are now completely ignored (#51).

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 3.1.0 1534fac2f3

    3.1.0

    dnkl released this 7 months ago | 64 commits to master since this release

    Added

    • OT-SVG support (#49). Note that FreeType does not rasterize SVG glyphs by itself. Instead, fcft does this via FreeType hooks, using a bundled 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().

    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).

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 3.0.1 e964c3677e

    3.0.1

    dnkl released this 10 months ago | 96 commits to master since this release

    Fixed

    • Crash when failing to lookup the full font name (#47).
    Downloads
     
  • Stable 3.0.0 9270bef5c3

    3.0.0

    dnkl released this 10 months ago | 101 commits to master since this release

    This is an API and ABI breaking release

    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 fontfeatures 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 (#44).
    Downloads
     
  • Stable 2.5.1 3f8afd3f08

    2.5.1

    dnkl released this 1 year ago | 118 commits to master since this release

    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 (dnkl/foot#830).

    Contributors

    • Alibek Omarov
    Downloads
     
  • Stable 2.5.0 15ec1247b6

    2.5.0

    dnkl released this 1 year ago | 133 commits to master since this release

    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)
    Downloads