Overview
This release adds support for Hentaigana (Kana Supplement, Kana Extended-A and Small Kana Extension) and introduces the Typesetter.
The most recent version of Unicode at the time of release is 16.0
List of Changes
- Tighter spaces: a regular space (U+0020) is now 4 pixels wide instead of previous 5
- Lowercase 'g' is now double-storey
- Indian Rupee sign now better matches its Devanagari counterpart
- Better spacing and improved legibility for CJK punctuations
- Completely re-worked Kana: now wider and easier to read
- Support for Hentaigana, a deprecated Japanese writing system
- Early release of the Typesetter
The Typesetter
How to Use
- Invoke with either of the following:
typesetParagraph(SpriteBatch, CharSequence, targetWidth: Int) // will produce justified texts
typesetParagraphRaggedRight(SpriteBatch, CharSequence, targetWidth: Int) // will produce flushed-to-left texts
Known Issues
- The typesetter will fall into an infinite loop if the
targetWidth
is too narrow - Words may be hyphenated in unwanted places
Workaround: adding Soft-Hyphen may mitigate the issue but not reliably - Typesetter may fail to comply with the line-breaking rules; each country in CJK has slightly different and sometimes conflicting rules, and the typesetter only follows the common rules among them
Workaround: add Zero-Width Joiner, AFTER the characters that are not allowed at the start of the line, BEFORE the characters that are not allowed at the end of a line - Typesetting the entire text will take non-negligible processing time
Workaround: typeset the entire text on a load-time, on a separate FrameBufferObject, then use this FrameBufferObject to draw the text in-game