All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project aims to follow Semantic Versioning.
0.13.0 - 2022-11-14
- Reserve sufficient capacity for
Vec<SimpleGlyphFlag>
. - Read unused
ValueRecord
fields asu16
s. Clarify that they are offsets.
- Bump MSRV to 1.63.0.
0.12.1 - 2022-10-18
- Suppress a dead code warning.
0.12.0 - 2022-10-18
- Add a few accessors (for use in
allsorts-tools
). - Upgrade tables and dependencies to use Unicode 15.0 data.
0.11.0 - 2022-08-10
- Failure to shape some Indic syllables that begin with a number.
- Make
Font
only depend on lifetime ofReadScope
. #76
0.10.0 - 2022-06-14
- Derive common traits on more types.
0.9.2 - 2022-06-09
- Work around libz-sys MSRV change.
0.9.1 - 2022-06-09
- Bump regex dev dependency.
0.9.0 - 2022-03-25
- Subsetting now produces a valid standalone font for use outside PDF. #27
- Workaround fonts that contain invalid final
cmap
format 4 segment. b6a9fd6
0.8.0 - 2022-03-01
- Upgrade tables and dependencies to use Unicode 14.0 data.
- Allow the tables to consult for images to be specified. #57
- Reorganise subsetting code in preparation for future changes.
0.7.1 - 2022-01-18
- Emit error if neither of the features for selecting a flate2 backend are provided.
0.7.0 - 2022-01-14
- Cargo features to allow selecting different backends of the flate2 crate. #50
0.6.0 - 2021-07-20
- Support for shaping Khmer, Lao, Sinhala, and Thai text.
- Support for laying out glyphs and obtaining their positions.
- Support for accessing glyph contours.
- Allow extra OpenType features to be supplied to
Font::shape
. - Provide
offset_table
accessor onOpenTypeFont
.
- Combine
gpos::Info
andgpos::Attachment
intogpos::Placement
. GPOS
performance improvements.- Optimised handling of CFF fonts with custom characters sets.
- Always apply default shaping for complex scripts.
- Apply Unicode mark reordering to more scripts, not just Arabic and Indic scripts.
- Bump MSRV to 1.51.0.
- Handle
post
tables that map more than one glyph to the same name index. - Handle non-adjacent cursive connections in
GPOS
. - Support version 1.1
GPOS
/GSUB
tables. - Fixed a mistake that resulted in
vmtx
table being repeatedly cloned inFont
. - Avoid some allocations when working with glyphs.
0.5.1 - 2020-12-18
- Updated README to reflect current feature set.
0.5.0 - 2020-12-18
- Simplified shaping API on
Font
. - Unified API for accessing images in
CBLC
/sbix
/SVG
tables. - Language specific shaping rules via
locl
- Support for shaping Syriac.
- Export
tag!
macro. - GSUB caching in Arabic, Syriac, and Indic.
- Support fonts with Big5 encoded cmap subtables.
- Rename some types and methods to better reflect their function.
0.4.0 - 2020-06-17
- Support for deriving glyph names from post and cmap.
- Support for more OpenType features in gsub: common_ligatures, discretionary_ligatures, historical_ligatures, contextual_ligatures, small_caps, all_small_caps, lining_nums, oldstyle_nums, proportional_nums, tabular_nums, diagonal_fractions, stacked_fractions, ordinal, and slashed_zero.
- Consideration of variation selector when looking up glyph index.
- Support for shaping Arabic text.
- Depend on just
num-traits
instead ofnum
. - Store RawVec unicodes in a TinyVec
- Recover from incorrect
loca
offset beyond end ofglyf
when glyph is valid. - Ensure instruction length is written for composite glyph with empty instructions but the WE_HAVE_INSTRUCTIONS flag bit set.
0.3.0 - 2020-02-11
- Support for GSUB Lookup Type 8 (Reverse Chaining Contextual Single Substitution).
- Lookup function to retrieve metrics and bitmap data from
EBDT
/CBDT
tables.- This constitutes initial, low-level support for bitmap fonts and emoji.
0.2.0 - 2020-01-30
CBLC
colour bitmap locator table parsing.- Tests for black & white emoji.
GlyfRecord::parse
takes&mut self
instead ofself
.
- Rejection of simple glyphs with zero contours.
- Incorrect reading of glyphs from
glyf
table whenloca
offsets didn't start at zero. - Issue where a prebase matra would "connect" to a preceding punctuation mark, due to the punctuation mark being considered part of the word.
0.1.0 - 2019-11-20
- Initial release