Gabriel Ebner
2e56cc4855
subrepo: subdir: "fcft" merged: "f0dd481" upstream: origin: "https://aur.archlinux.org/fcft.git" branch: "master" commit: "f0dd481" git-subrepo: version: "0.4.3" origin: "???" commit: "???"
8.0 KiB
8.0 KiB
Changelog
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.7
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 1.1.7
2.4.4
Fixed
- Rendering of bitmap fonts with Freetype >= 2.11 (https://codeberg.org/dnkl/fcft/issues/29).
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
Fixed
- Rare crash when one thread was doing a glyph cache lookup, while another was resizing the cache.
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 inmeson.build
.
Contributors
2.4.0
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 tofcft_capabilities()
.antialias
andsubpixel
members tostruct 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 (https://codeberg.org/dnkl/foot/issues/456).
Fixed
- Internal logging functions have been renamed, from generic
log_*
names to fcft specificfcft_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).
2.3.3
Fixed
- Cloned fonts not being properly freed in library destructor.
2.3.2
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 infcft_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 installed (https://codeberg.org/dnkl/foot/issues/174).
Contributors
2.3.1
Fixed
fcft_grapheme_rasterize()
now makes use of the optionaltags
. These were previously ignored.- Compilation error when text shaping was disabled.
2.3.0
Added
fcft_set_scaling_filter()
: new API that lets the calling application configure the filter to use when downscaling bitmap fonts (https://codeberg.org/dnkl/fcft/issues/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 (https://codeberg.org/dnkl/foot/issues/120).
2.2.7
Changed
- Use lanczos3 filtering when downscaling bitmap fonts. This improves the quality of e.g. color emoji fonts.
Fixed
- Compilation with
-pedantic
2.2.6
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).
2.2.5
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.
2.2.4
Added
- Unicode license file, for
UnicodeData.txt
2.2.3
Added
- Missing LICENSE file
- LICENSE, README.md and
CHANGELOG.md are now installed to
${datadir}/doc/fcft
.
Fixed
- Assertion in debug builds when resizing the glyph cache
2.2.2
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.
2.2.1
Changed
- Color bitmap glyphs with a pixel-size fixup factor other than 1.0 are now pre-scaled. Previously, fcft would only set a 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.
2.2.0
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()
2.1.3
Fixed
- Advance width and height of scaled bitmap fonts.
2.1.2
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.
2.1.1
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.
2.1.0
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()
andfcft_size_adjust()
no longer callssetlocale()
to set a suitable locale forFcParseName()
, as this was not thread safe. The caller is responsible for ensuringLC_NUMERICAL
is set to a locale that correctly recognizes x.y decimal values.
Fixed
fcft_from_name()
was not thread safefcft_clone()
was not thread safefcft_size_adjust()
was not thread safefcft_destroy
was not thread safe
2.0.0
Changed
- API:
font_
prefix changed tofcft_
. - API: renamed
struct font
tostruct fcft_font
. - API: renamed
struct glyph
tostruct fcft_glyph
. - API: internal members of
struct fcft_glyph
removed. - API: renamed
enum subpixel_order
toenum fcft_subpixel
, andORDER
was removed from the enum values. - API: renamed
fcft_glyph.x_advance
tofcft_glyph.advance.x
, and addedfcft_glyph.advance.y
- API: renamed
fcft_font.max_x_advance
tofcft_font.max_advance.x
and addedfcft_font.max_advance.y
. - API: renamed
fcft_font.space_x_advance
tofcft_font.space_advance.x
and addedfcft_font.space_advance.y
. - API: renamed
fcft_glyph_for_wc()
tofcft_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.
1.1.7
Fixed
- LCD RGB/BGR modes were reversed