-
-
-
-
-
\ No newline at end of file
diff --git a/BuildJAR_TerrarumSansBitmap.iml b/BuildJAR_TerrarumSansBitmap.iml
old mode 100644
new mode 100755
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
old mode 100644
new mode 100755
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
old mode 100644
new mode 100755
diff --git a/FontDemoGDX.jar b/FontDemoGDX.jar
old mode 100644
new mode 100755
diff --git a/FontTestGDX/FontTestGDX.iml b/FontTestGDX/FontTestGDX.iml
old mode 100644
new mode 100755
diff --git a/FontTestGDX/META-INF/MANIFEST.MF b/FontTestGDX/META-INF/MANIFEST.MF
old mode 100644
new mode 100755
diff --git a/FontTestGDX/lib/TerrarumSansBitmap.jar b/FontTestGDX/lib/TerrarumSansBitmap.jar
index 82737a1..9ab7e60 100644
Binary files a/FontTestGDX/lib/TerrarumSansBitmap.jar and b/FontTestGDX/lib/TerrarumSansBitmap.jar differ
diff --git a/FontTestGDX/src/FontTestGDX.kt b/FontTestGDX/src/FontTestGDX.kt
old mode 100644
new mode 100755
diff --git a/LICENSE.md b/LICENSE.md
old mode 100644
new mode 100755
diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
old mode 100644
new mode 100755
diff --git a/PUA_allocation_chart.xlsx b/PUA_allocation_chart.xlsx
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/alignment_illustration.jpg b/alignment_illustration.jpg
old mode 100644
new mode 100755
diff --git a/assets/ascii_variable.tga b/assets/ascii_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/cjkpunct.tga b/assets/cjkpunct.tga
old mode 100644
new mode 100755
diff --git a/assets/cyrilic_bulgarian_variable.tga b/assets/cyrilic_bulgarian_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/cyrilic_serbian_variable.tga b/assets/cyrilic_serbian_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/cyrilic_variable.tga b/assets/cyrilic_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/devanagari_bengali_variable.tga b/assets/devanagari_bengali_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/diacritical_marks_variable.tga b/assets/diacritical_marks_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/fullwidth_forms.tga b/assets/fullwidth_forms.tga
old mode 100644
new mode 100755
diff --git a/assets/futhark.tga b/assets/futhark.tga
old mode 100644
new mode 100755
diff --git a/assets/greek_polytonic_xyswap_variable.tga b/assets/greek_polytonic_xyswap_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/greek_variable.tga b/assets/greek_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/hangul_johab.tga b/assets/hangul_johab.tga
old mode 100644
new mode 100755
diff --git a/assets/hayeren_variable.tga b/assets/hayeren_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/insular_variable.tga b/assets/insular_variable.tga
old mode 100644
new mode 100755
index ee5186c..73d4130
Binary files a/assets/insular_variable.tga and b/assets/insular_variable.tga differ
diff --git a/assets/ipa_ext_variable.tga b/assets/ipa_ext_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/kana.tga b/assets/kana.tga
old mode 100644
new mode 100755
diff --git a/assets/kartuli_allcaps_variable.tga b/assets/kartuli_allcaps_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/kartuli_variable.tga b/assets/kartuli_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/latinExtD_variable.tga b/assets/latinExtD_variable.tga
new file mode 100644
index 0000000..4e6c5cb
Binary files /dev/null and b/assets/latinExtD_variable.tga differ
diff --git a/assets/latinExt_additional_variable.tga b/assets/latinExt_additional_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/puae000-e0ff.tga b/assets/puae000-e0ff.tga
old mode 100644
new mode 100755
diff --git a/assets/richtext_furigana.tga b/assets/richtext_furigana.tga
old mode 100644
new mode 100755
diff --git a/assets/thai_variable.tga b/assets/thai_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/tsalagi_variable.tga b/assets/tsalagi_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/unipunct_variable.tga b/assets/unipunct_variable.tga
old mode 100644
new mode 100755
diff --git a/assets/wenquanyi.tga.gz b/assets/wenquanyi.tga.gz
old mode 100644
new mode 100755
diff --git a/demo.PNG b/demo.PNG
old mode 100644
new mode 100755
index 2523df7..2b4439e
Binary files a/demo.PNG and b/demo.PNG differ
diff --git a/demotext.txt b/demotext.txt
old mode 100644
new mode 100755
index c5ee438..16ed69f
--- a/demotext.txt
+++ b/demotext.txt
@@ -41,7 +41,7 @@ How multilingual? Real multilingual!
სწრაფი ყავისფერი მელა გადაახტა ზარმაც ძაღლს ᲘᲜᲢᲔᲚ ᲞᲔᲜᲢᲘᲣᲛᲘ ᲛᲘᲙᲠᲝᲞᲠᲝᲪᲔᲡᲝᲠᲘ
ऋषियों को सताने वाले दुष्ट राक्षसों के राजा रावण का सर्वनाश करने वाले विष्णुवतार भगवान श्रीराम अयोध्या के महाराज दशरथ के
Kæmi ný öxi hér, ykist þjófum nú bæði víl og ádrepa
- Ċuaiġ bé ṁórṡáċ le dlúṫspád fíorḟinn trí hata mo ḋea-ṗorcáin ḃig
+ Ċuaiġ bé ṁórṡáċ le dlúṫspád fíoꝛḟinn trí hata mo ḋea-ṗoꝛcáin ḃig
あめつちほしそら やまかはみねたに くもきりむろこけ ひといぬうへすゑ ゆわさるおふせよ えの𛀁をなれゐて
トリナクコヱス ユメサマセ ミヨアケワタル ヒンカシヲ ソライロハエテ オキツヘニ ホフネムレヰヌ モヤノウチ
田居に出で 菜摘むわれをぞ 君召すと 求食り追ひゆく 山城の 打酔へる子ら 藻葉干せよ え舟繋けぬ
@@ -109,8 +109,8 @@ How multilingual? Real multilingual!
Cyrillic Supplement Armenian Devanagari Bengali Thai Georgian Hangul Jamo Cherokee Runic
Georgian Extended Greek Extended General Punctuations Superscripts and Subscripts CJK Symbols
Latin Extended-C Kana Hangul Compatibility Jamo Kana Phonetic Extensions CJK Unihan Extension A
- CJK Unihan Hangul Jamo Extended-A Hangul Syllables Hangul Jamo Extended-B Fullwidth Forms
- Kana Supplement
+ CJK Unihan Latin Extended-D Hangul Jamo Extended-A Hangul Syllables Hangul Jamo Extended-B
+ Fullwidth Forms Kana Supplement
GitHub’s issue page is open! You can report any errors, or leave suggestions.
You can help this font to be more versatile. (for more languages, more frameworks) Clone this repo, make
diff --git a/font_drawing_template.png b/font_drawing_template.png
old mode 100644
new mode 100755
diff --git a/glyph_height_pos_annotation.png b/glyph_height_pos_annotation.png
old mode 100644
new mode 100755
diff --git a/samples/README.md b/samples/README.md
old mode 100644
new mode 100755
diff --git a/samples/wikipedia_x86.png b/samples/wikipedia_x86.png
old mode 100644
new mode 100755
diff --git a/src/net/torvald/terrarumsansbitmap/GlyphProps.kt b/src/net/torvald/terrarumsansbitmap/GlyphProps.kt
old mode 100644
new mode 100755
diff --git a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt
old mode 100644
new mode 100755
index cce9a05..89e93e1
--- a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt
+++ b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt
@@ -224,12 +224,13 @@ class GameFontBase(
private fun isColourCode(c: CodePoint) = c == 0x100000 || c in 0x10F000..0x10FFFF
private fun isCharsetOverride(c: CodePoint) = c in 0xFFFC0..0xFFFFF
private fun isCherokee(c: CodePoint) = c in codeRange[SHEET_TSALAGI_VARW]
- private fun isInsular(c: CodePoint) = c == 0x1D79 || c in 0xA779..0xA787
+ private fun isInsular(c: CodePoint) = c == 0x1D79
private fun isNagariBengali(c: CodePoint) = c in codeRange[SHEET_NAGARI_BENGALI_VARW]
private fun isKartvelianCaps(c: CodePoint) = c in codeRange[SHEET_KARTULI_CAPS_VARW]
private fun isDiacriticalMarks(c: CodePoint) = c in codeRange[SHEET_DIACRITICAL_MARKS_VARW]
private fun isPolytonicGreek(c: CodePoint) = c in codeRange[SHEET_GREEK_POLY_VARW]
private fun isExtC(c: CodePoint) = c in codeRange[SHEET_EXTC_VARW]
+ private fun isExtD(c: CodePoint) = c in codeRange[SHEET_EXTD_VARW]
private fun isHangulCompat(c: CodePoint) = c in codeRangeHangulCompat
// underscored name: not a charset
@@ -310,7 +311,10 @@ class GameFontBase(
private fun extCIndexX(c: CodePoint) = (c - 0x2C60) % 16
private fun extCIndexY(c: CodePoint) = (c - 0x2C60) / 16
- private val lowHeightLetters = "acegijmnopqrsuvwxyzɱɳʙɾɽʒʂʐʋɹɻɥɟɡɢʛȵɲŋɴʀɕʑçʝxɣχʁʜʍɰʟɨʉɯuʊøɘɵɤəɛœɜɞʌɔæɐɶɑɒɚɝɩɪʅʈʏʞⱥⱦⱱⱳⱴⱶⱷⱸⱺⱻ".toSortedSet()
+ private fun extDIndexX(c: CodePoint) = (c - 0xA720) % 16
+ private fun extDIndexY(c: CodePoint) = (c - 0xA720) / 16
+
+ private val lowHeightLetters = "acegijmnopqrsuvwxyzɱɳʙɾɽʒʂʐʋɹɻɥɟɡɢʛȵɲŋɴʀɕʑçʝxɣχʁʜʍɰʟɨʉɯuʊøɘɵɤəɛœɜɞʌɔæɐɶɑɒɚɝɩɪʅʈʏʞⱥⱦⱱⱳⱴⱶⱷⱸⱺⱻꜥꜩꜫꜭꜯꜰꜱꜳꜵꜷꜹꜻꜽꜿꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝫꝯꝳꝴꝵꝶꝷꝺꝼꝿꞁꞃꞅꞇꞑꞓꞔꞛꞝꞟꞡꞥꞧꞩꞮ\uA7AFꞷ\uA7B9\uA7C3\uA7CAꟺ".toSortedSet()
/**
* lowercase AND the height is equal to x-height (e.g. lowercase B, D, F, H, K, L, ... does not count
*/
@@ -454,7 +458,8 @@ class GameFontBase(
SHEET_KARTULI_CAPS_VARW,
SHEET_DIACRITICAL_MARKS_VARW,
SHEET_GREEK_POLY_VARW,
- SHEET_EXTC_VARW
+ SHEET_EXTC_VARW,
+ SHEET_EXTD_VARW
)
private val autoShiftDownOnLowercase = arrayOf(
SHEET_DIACRITICAL_MARKS_VARW
@@ -488,7 +493,8 @@ class GameFontBase(
"kartuli_allcaps_variable.tga",
"diacritical_marks_variable.tga",
"greek_polytonic_xyswap_variable.tga",
- "latinExtC_variable.tga"
+ "latinExtC_variable.tga",
+ "latinExtD_variable.tga"
)
private val codeRange = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!!
0..0xFF, // SHEET_ASCII_VARW
@@ -517,7 +523,8 @@ class GameFontBase(
0x1C90..0x1CBF, // SHEET_KARTULI_CAPS_VARW
0x300..0x36F, // SHEET_DIACRITICAL_MARKS_VARW
0x1F00..0x1FFF, // SHEET_GREEK_POLY_VARW
- 0x2C60..0x2C7F // SHEET_EXTC_VARW
+ 0x2C60..0x2C7F, // SHEET_EXTC_VARW
+ 0xA720..0xA7FF // SHEET_EXTD_VARW
)
private val codeRangeHangulCompat = 0x3130..0x318F
/** Props of all printable Unicode points. */
@@ -955,6 +962,8 @@ class GameFontBase(
return SHEET_GREEK_POLY_VARW
else if (isExtC(c))
return SHEET_EXTC_VARW
+ else if (isExtD(c))
+ return SHEET_EXTD_VARW
else
return SHEET_UNKNOWN
// fixed width
@@ -1060,6 +1069,10 @@ class GameFontBase(
sheetX = extCIndexX(ch)
sheetY = extCIndexY(ch)
}
+ SHEET_EXTD_VARW -> {
+ sheetX = extDIndexX(ch)
+ sheetY = extDIndexY(ch)
+ }
else -> {
sheetX = ch % 16
sheetY = ch / 16
@@ -1543,8 +1556,8 @@ class GameFontBase(
private fun Int.forceOpaque() = this.and(0xFFFFFF00.toInt()) or 0xFF
private infix fun Int.colorTimes(other: Int): Int {
- val thisBytes = IntArray(4, { this.ushr(it * 8).and(255) })
- val otherBytes = IntArray(4, { other.ushr(it * 8).and(255) })
+ val thisBytes = IntArray(4) { this.ushr(it * 8).and(255) }
+ val otherBytes = IntArray(4) { other.ushr(it * 8).and(255) }
return (thisBytes[0] times256 otherBytes[0]) or
(thisBytes[1] times256 otherBytes[1]).shl(8) or
@@ -1554,15 +1567,11 @@ class GameFontBase(
private infix fun Int.times256(other: Int) = multTable255[this][other]
- private val multTable255 = Array(256,
- { left ->
- IntArray(256,
- { right ->
- (255f * (left / 255f).times(right / 255f)).roundToInt()
- }
- )
- }
- )
+ private val multTable255 = Array(256) { left ->
+ IntArray(256) { right ->
+ (255f * (left / 255f).times(right / 255f)).roundToInt()
+ }
+ }
/** High surrogate comes before the low. */
@@ -1689,12 +1698,13 @@ class GameFontBase(
internal val SHEET_BULGARIAN_VARW = 18
internal val SHEET_SERBIAN_VARW = 19
internal val SHEET_TSALAGI_VARW = 20
- internal val SHEET_INSUAR_VARW = 21
+ internal val SHEET_INSUAR_VARW = 21 // currently only for U+1D79
internal val SHEET_NAGARI_BENGALI_VARW=22
internal val SHEET_KARTULI_CAPS_VARW = 23
internal val SHEET_DIACRITICAL_MARKS_VARW = 24
internal val SHEET_GREEK_POLY_VARW = 25
internal val SHEET_EXTC_VARW = 26
+ internal val SHEET_EXTD_VARW = 27
internal val SHEET_UNKNOWN = 254
diff --git a/src/net/torvald/terrarumsansbitmap/gdx/PixmapRegionPack.kt b/src/net/torvald/terrarumsansbitmap/gdx/PixmapRegionPack.kt
old mode 100644
new mode 100755
diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TextureRegionPack.kt b/src/net/torvald/terrarumsansbitmap/gdx/TextureRegionPack.kt
old mode 100644
new mode 100755
diff --git a/src/net/torvald/terrarumsansbitmap/readme.md b/src/net/torvald/terrarumsansbitmap/readme.md
old mode 100644
new mode 100755
diff --git a/terrarum_sans_cyrillic_2.png b/terrarum_sans_cyrillic_2.png
old mode 100644
new mode 100755
diff --git a/testing.PNG b/testing.PNG
old mode 100644
new mode 100755
index 31f57ea..55cd154
Binary files a/testing.PNG and b/testing.PNG differ
diff --git a/testtext.txt b/testtext.txt
old mode 100644
new mode 100755
index 46305a4..eb6d455
--- a/testtext.txt
+++ b/testtext.txt
@@ -1,10 +1,4 @@
-re ʘ, ʇ, ʗ, and ʖ, al
-ɓ ɗ ɠ
- ɐ ɔ ə ɟ ɥ ɯ ɹ ʇ ʌ ʍ ʎ
- Vʷ[kʰuˣt̪s̟] and Vʷ[kʰʉˣt͜ʃ].
+Rotund R
-ʡ̆
-
-Labiodental flap [ⱱ] U+2C71
-
-acegijmnopqrsuvwxyzɱɳʙɾɽʒʂʐʋɹɻɥɟɡɢʛȵɲŋɴʀɕʑçʝxɣχʁʜʍɰʟɨʉɯuʊøɘɵɤəɛœɜɞʌɔæɐɶɑɒɚɝɩɪʅʈʏʞⱥⱦⱱⱳⱴⱶⱷⱸⱺⱻ
\ No newline at end of file
+CUꝚIOIUSTOꝚVALD
+Cuꝛioustoꝛvald
diff --git a/width_bit_encoding_annotated.png b/width_bit_encoding_annotated.png
old mode 100644
new mode 100755