• Stable 2.4.5 1f628f833b

    2.4.5

    dnkl released this 2 months ago | 40 commits to master since this release

    Fixed

    • fcft_text_run_rasterize() not checking if codepoint is in the font’s charset before attempting shaping (#30).
    • Crash when destroying a font with a grapheme cache entry representing a failed grapheme glyph.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.4.4 d46e06125d

    2.4.4

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

    Fixed

    • Rendering of bitmap fonts with Freetype >= 2.11 (#29).
    Downloads
     
  • Stable 2.4.3 91ebb59eb6

    2.4.3

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

    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).
    Downloads
     
  • Stable 2.4.2 2f3bd45f82

    2.4.2

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

    Fixed

    • Rare crash when one thread was doing a glyph cache lookup, while another was resizing the cache.
    Downloads
     
  • Stable 2.4.1 b501699811

    2.4.1

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

    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

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.4.0 872f3e1b64

    2.4.0

    dnkl released this 6 months ago | 92 commits to master since this release

    Added

    • Example program. Very simple bare bones Wayland program that renders a user provided string with user configurable fonts and colors. No proper error checking etc. To build, configure meson with -Dexamples=true.
    • fcft_log_init(). This function enables, and configures logging in fcft.
    • fcft_text_run_rasterize(): new API that uses HarfBuzz to shape a text run (i.e. a whole string). Note that HarfBuzz is (still) an optional dependency, see README.
    • fcft_text_run_destroy(): new API that frees a rasterized text-run.
    • FCFT_CAPABILITY_TEXT_RUN_SHAPING added to fcft_capabilities().
    • antialias and subpixel members to struct fcft_font.

    Changed

    • fcft logging must now be enabled explicitly (see fcft_log_init()).
    • Internal logging functions are no longer exported by the shared library.
    • The pixel size passed from FontConfig to FreeType is now rounded instead of truncated (dnkl/foot#456).

    Fixed

    • Internal logging functions have been renamed, from generic log_* names to fcft specific fcft_log_ names.
    • Apply pixel-size fixup to glyphs’ advance width/height, but only if we estimated the fixup ourselves (otherwise the advance width/height is already scaled).
    Downloads
     
  • Stable 2.3.3 d081162625

    2.3.3

    dnkl released this 6 months ago | 158 commits to master since this release

    Fixed

    • Cloned fonts not being properly freed in library destructor.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.3.2 20dd767488

    2.3.2

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

    Added

    • Limited support for "fontfeatures" . fcft is still not a layout engine, but with this we can support e.g. stylistic sets (HarfBuzz-enabled builds only).

    Deprecated

    • tags argument in fcft_grapheme_rasterize(). It is now being ignored, and will be removed in a future release.

    Fixed

    • Hang in library destructor when system has no fonts installe (dnkl/foot#174).

    Contributors

    This is an ABI+API backward compatible release

    Downloads
     
  • Stable 2.3.1 e2ea91ee70

    2.3.1

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

    Fixed

    • fcft_grapheme_rasterize() now makes use of the optional tags. These were previously ignored.
    • Compilation error when text shaping was disabled.
    Downloads
     
  • Stable 2.3.0 4960524717

    2.3.0

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

    Added

    • fcft_set_scaling_filter(): new API that lets the calling application configure the filter to use when downscaling bitmap fonts (#9).
    • fcft_grapheme_rasterize(): new API that uses HarfBuzz to shape a grapheme cluster. Note that HarfBuzz is an optional dependency, see README.

    Changed

    • Increased timeout in tests, from 4s (the default), to 60s (dnkl/foot#120).

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.2.7 3fbdf15e02

    2.2.7

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

    Changed

    • Use lanczos3 filtering when downscaling bitmap fonts. This improves the quality of e.g. color emoji fonts.

    Fixed

    • Compilation with -pedantic

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.2.6 71749902f0

    2.2.6

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

    Fixed

    • Set LCD filter. This fixes severe color fringes when FreeType has been built with FT_CONFIG_OPTION_SUBPIXEL_RENDERING (i.e. the old ClearType-style subpixel rendering, instead of the newer Harmony LCD rendering).

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.2.5 7539a9c870

    2.2.5

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

    Changed

    • fcft_glyph_rasterize(): improved performance in threaded applications by guarding the glyph cache with an rwlock instead of a mutex.

    Fixed

    • fcft now checks for memory allocation failures.
    • Compilation errors in 32-bit builds.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.2.4 3817dd2b5b

    2.2.4

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

    Added

    • Unicode license file, for UnicodeData.txt
    Downloads
     
  • Stable 2.2.3 fb2da472ec

    2.2.3

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

    Added

    Fixed

    • Assertion in debug builds when resizing the glyph cache

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.2.2 8978cacb75

    2.2.2

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

    Fixed

    • fcft_kerning() was not threadsafe
    • Rare crash in fcft_glyph_rasterize() caused by a race between a successful glyph cache lookup and a glyph cache resize.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.2.1 0705f95b99

    2.2.1

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

    Changed

    • Color bitmap glyphs with a pixel-size fixup factor other than 1.0 are now pre-scaled. Previously, fcft would only set pixman scale transform on the glyph, causing actual scaling to occur every time the glyph was blended. This improves the performance when rendering color emojis.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.2.0 aef8338479

    2.2.0

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

    Changed

    • Internal representation of the primary and fallback fonts.
    • Do not load a fallback font if it does not contain the requested glyph.

    Deprecated

    • fcft_size_adjust()

    This is an ABI+API backward compatible release

    Downloads
     
  • Stable 2.1.3 131f1064e1

    2.1.3

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

    Fixed

    • Advance width and height of scaled bitmap fonts.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.1.2 ca3a2117f8

    2.1.2

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

    Changed

    • Glyph cache now resizes dynamically. This fixes a performance problem when loading a lot of glyphs, as we ended up scanning very long lists when looking up a glyph in the cache.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.1.1 10be435b5d

    2.1.1

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

    Changed

    • Prefer user-provided charset. This can be used to e.g. limit a fallback font's usage to a custom Unicode point range.

    Fixed

    • LCD RGB/BGR modes were reversed.

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.1.0 e177f16738

    2.1.0

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

    This release focuses on performance enabling features; most importantly, making the font instantiating and font destroying functions thread safe.

    Added

    • When looking for a glyph in the fallback fonts, don't discard (destroy/unload) the fonts that did not contain the glyph. This improves performance massively when loading lots of glyphs that does not exist in the primary font, or in the first fallback font(s).
    • Synthetic bold and italics (FontConfig's embolden and matrix properties).
    • fcft_precompose() - combines a base- and a combining wide character into a single pre-composed character.

    Changed

    • fcft_from_name() and fcft_size_adjust() no longer calls setlocale() to set a suitable locale for FcParseName(), as this was not thread safe. The caller is responsible for ensuring LC_NUMERICAL is set to a locale that correctly recognizes x.y decimal values.

    Fixed

    • fcft_from_name() was not thread safe
    • fcft_clone() was not thread safe
    • fcft_size_adjust() was not thread safe
    • fcft_destroy was not thread safe

    This is an ABI+API backward compatible release.

    Downloads
     
  • Stable 2.0.0 e7cf1f331f

    2.0.0

    dnkl released this 2 years ago | 448 commits to master since this release

    The goal of this release is to clean up the existing API, without changing it too much.

    Changed

    • API: font_ prefix changed to fcft_.
    • API: renamed struct font to struct fcft_font.
    • API: renamed struct glyph to struct fcft_glyph.
    • API: internal members of struct fcft_glyph removed.
    • API: renamed enum subpixel_order to enum fcft_subpixel, and
      ORDER was removed from the enum values.
    • API: renamed fcft_glyph.x_advance to fcft_glyph.advance.x, and
      added fcft_glyph.advance.y
    • API: renamed fcft_font.max_x_advance to fcft_font.max_advance.x
      and added fcft_font.max_advance.y.
    • API: renamed fcft_font.space_x_advance to
      fcft_font.space_advance.x and added fcft_font.space_advance.y.
    • API: renamed fcft_glyph_for_wc() to fcft_glyph_rasterize().
    • Require meson >= 0.54.
    • Use meson.override_dependency().

    Fixed

    • fcft_kerning() did not scale the returned kerning distances with
      the font's pixel size fixup multiplier.

    This is an API+ABI breaking release.

    Downloads
     
  • Stable 1.1.7 842204e617

    1.1.7

    dnkl released this 2 years ago | 484 commits to master since this release

    Fixed

    • LCD RGB/BGR modes were reversed
    Downloads
     
  • Stable 1.1.6 bd4388cf7c

    1.1.6

    dnkl released this 2 years ago | 491 commits to master since this release

    Release 1.1.6

    Changed

    • Set FT_LOAD_FORCE_AUTOHINT when FC_AUTOHINT has been set in the
      FontConfig pattern.

    Fixed

    • Asan error in font_destroy() with NULL fallback pointers.
    • Clang compiler error due to unused function pub2priv()
    • FreeBSD build (added missing stdthreads library)

    This is an API+ABI backward compatible release.

    Downloads
     
  • Stable 1.1.5 adad3fc6cc

    1.1.5

    dnkl released this 2 years ago | 504 commits to master since this release

    Fixed

    • Glyph width/height not scaled when the pixel fixup factor wasn't 1.0
    Downloads
     
  • Stable 1.1.4 b203012818

    1.1.4

    dnkl released this 2 years ago | 507 commits to master since this release

    • font_size_adjust() sometimes generated bad input patterns for fontconfig, resulting in e.g. DPI being "lost" (dnkl/foot#9)

    This is an API+ABI backward compatible release.

    Downloads
     
  • Stable 1.1.3 8050470d35

    1.1.3

    dnkl released this 2 years ago | 511 commits to master since this release

    • Fix underline sometimes being positioned outside the font's line space.

    This is an API+ABI backward compatible release.

    Downloads
     
  • Stable 1.1.2 3624fb88fd

    1.1.2

    dnkl released this 2 years ago | 516 commits to master since this release

    • Fix handling of non-integer sizes in non-C locales.

    This is an API+ABI backward compatible release.

    Downloads
     
  • Stable 1.1.1 ad32925da8

    1.1.1

    dnkl released this 2 years ago | 519 commits to master since this release

    new API: font_size_adjust()

    This API returns a copy of a font instance, with its size adjusted by
    the specified amount. This is primarily to support ctrl-+ and
    ctrl-- operations.

    This is an API+ABI backward compatible change.

    Downloads