Repository navigation
Releases: recursive-ai-oss/onefont-csharp
Releases · recursive-ai-oss/onefont-csharp
Release list
v1.3.0
- Added a
TextShaping.ShapeCodePointsoverload that fills a reusableCodePointRun(Count,Glyphs, indexer) instead of aList<CodePointGlyph>: the same glyphs and carried script, no allocation per call once the run has grown. The list overload gives identical output and now shares the code.
v1.2.0
- Added
TextShaping.ShapeCodePoints: shapes a run given as code points with caller-supplied cluster values and a script carried from run to run (ref uint script), so digits and spaces after Arabic take the Arabic script. It returnsCodePointGlyphvalues in the shaper's own order, each with its code point and cluster. - Added
ShapedRun.Origins(ShapedGlyphOrigin): for every glyph of a run the first code point it stands for, its cluster offset and its position in the shaper's order before clusters were put in logical order. - Added code point bidi:
TextShaping.ResolveBidiLevels(keeps the rule X9 markerTextShaping.BidiRemovedinstead of filling it) andTextShaping.ResetTrailingWhitespace(rule L1 per line).GetVisualOrder(levels, order)accepts levels with the marker and returns how many characters are shown. - Added
TextSegmentation.IsEastAsianWide,FillLineBreakOpportunitiesandFillGraphemeStarts(one byte per UTF-16 offset), andUnicodeProperties.GetJoiningKind/IsSyllableScript. - Added
FontFace.GetTableandHasTable: the raw bytes of any table (COLR,CPAL,vhea,vmtx,VORG,fpgm,prep,cvtand so on). - Existing behaviour and output are unchanged; the 1.0.0 digests still match.
v1.1.0
- Added
ShapedRun,ShapedClusterRangeand theTextShaping.ShapeRun(text, face, result, ...)andFontFallbackChain.ShapeRun(text, result, ...)overloads: the same clusters and glyphs as the list API in flat, reusable arrays, with no allocation per call once warm. The list API is built on the same path and allocates under a third as much as before (about 75 bytes per character instead of about 270 for Latin). - Shaping reuses glyph buffers, lookup engines and syllable work arrays per thread, and
ShapingOptionscaches its feature set. Output is unchanged: the tests compare against digests made by 1.0.0. - Added buffer overloads
TextShaping.GetBidiLevels(text, direction, levels, out paragraphLevel),TextShaping.GetVisualOrder(levels, order)andTextSegmentation.GetLineBreakOpportunities(text, opportunities).
v1.0.0
- First version. Fonts: TrueType, OpenType with CFF outlines, TrueType Collections. Shaping: GSUB and GPOS with every lookup type and flag; Arabic, Indic, Universal Shaping Engine, Thai and Lao shapers. Unicode 17: bidi levels and order (UAX #9), line break opportunities (UAX #14), grapheme boundaries (UAX #29). Font fallback chain. Glyph outlines through a sink.
TextShaping.ShapeRunreturns clusters that start at offset 0 and follow each other to the end of the text, even when the shaper drops characters (a joiner before an Indic letter).