Skip to content

Terrarum Sans Bitmap v1.14

Latest
Compare
Choose a tag to compare
@curioustorvald curioustorvald released this 01 Oct 06:23
· 1 commit to master since this release

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