-
3.1.907210fde · ·
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.722f4decd · ·
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.5b3877795 · ·
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.47f15b4d7 · ·
Release 3.1.4 Fixed ----- * Crash when failing to load an SVG glyph with multiple sub-glyphs.
-
3.1.3fbc8df38 · ·
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.2c9100e23 · ·
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.195753828 · ·
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.01534fac2 · ·
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.1e964c367 · ·
Release 3.0.1 Fixed ----- * Crash when failing to lookup the full font name (https://codeberg.org/dnkl/fcft/issues/47).
-
3.0.09270bef5 · ·
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.13f8afd3f · ·
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.015ec1247 · ·
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.6d87d681c · ·
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.51f628f83 · ·
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.4d46e0612 · ·
Release 2.4.4 Fixed ----- * Rendering of bitmap fonts with Freetype >= 2.11 (https://codeberg.org/dnkl/fcft/issues/29).
-
2.4.391ebb59e · ·
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.22f3bd45f · ·
Release 2.4.2 Fixed ----- * Rare crash when one thread was doing a glyph cache lookup, while another was resizing the cache.
-
2.4.1b5016998 · ·
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)