impl of georgian mtavruli

This commit is contained in:
minjaesong
2018-08-10 22:00:13 +09:00
parent 96e5bb9a7d
commit 33468d5ded
4 changed files with 21 additions and 7 deletions

View File

@@ -34,7 +34,7 @@ How multilingual? Real multilingual!
􏻬Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich􀀀 􏻬Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich􀀀
􏻬ζαφείρι δέξου πάγκαλο, βαθων ψυχης το σημα􀀀 􏻬ζαφείρι δέξου πάγκαλο, βαθων ψυχης το σημα􀀀
􏻬ΔΙΑΦΥΛΆΞΤΕ ΓΕΝΙΚΆ ΤΗ ΖΩΉ ΣΑΣ ΑΠΌ ΒΑΘΕΙΆ ΨΥΧΙΚΆ ΤΡΑΎΜΑΤΑ􀀀 􏻬ΔΙΑΦΥΛΆΞΤΕ ΓΕΝΙΚΆ ΤΗ ΖΩΉ ΣΑΣ ΑΠΌ ΒΑΘΕΙΆ ΨΥΧΙΚΆ ΤΡΑΎΜΑΤΑ􀀀
􏻬სწრაფი ყავისფერი მელა გადაახტა ზარმაც ძაღლს􀀀 􏻬სწრაფი ყავისფერი მელა გადაახტა ზარმაც ძაღლს ᲘᲜᲢᲔᲚ ᲞᲔᲜᲢᲘᲣᲛᲘ ᲛᲘᲙᲠᲝᲞᲠᲝᲪᲔᲡᲝᲠᲘ􀀀
􏻬ऋषियों को सताने वाले दुष्ट राक्षसों के राजा रावण का सर्वनाश करने वाले विष्णुवतार भगवान श्रीराम अयोध्या के महाराज दशरथ के􀀀 􏻬ऋषियों को सताने वाले दुष्ट राक्षसों के राजा रावण का सर्वनाश करने वाले विष्णुवतार भगवान श्रीराम अयोध्या के महाराज दशरथ के􀀀
􏻬Kæmi ný öxi hér, ykist þjófum nú bæði víl og ádrepa􀀀 􏻬Kæmi ný öxi hér, ykist þjófum nú bæði víl og ádrepa􀀀
􏻬Ꝺꝼuaꞅcail Íoꞅa Úꞃṁac na hÓiᵹe Beannaiꞇe póꞃ Éaḃa aᵹus Áꝺaiṁ􀀀 􏻬Ꝺꝼuaꞅcail Íoꞅa Úꞃṁac na hÓiᵹe Beannaiꞇe póꞃ Éaḃa aᵹus Áꝺaiṁ􀀀
@@ -90,9 +90,9 @@ How multilingual? Real multilingual!
􏃯Unicode References:􀀀 􏃯Unicode References:􀀀
Basic Latin Latin-1 Latin Extension A Latin Extionsion B IPA Extension Greek Cyrillic Basic Latin Latin-1 Latin Extension A Latin Extionsion B IPA Extension Greek Cyrillic
Cyrillic Supplement Armenian Devanagari Thai Georgian Runic Cherokee General Punctuations Cyrillic Supplement Armenian Devanagari Thai Georgian Runic Cherokee Georgian Extended
CJK Symbols Kana Kana Phonetic Extension CJK Unihan Extension A CJK Unihan Hangul Syllables General Punctuations CJK Symbols Kana Kana Phonetic Extension CJK Unihan Extension A CJK Unihan
Fullwidth Forms Kana Supplement Hangul Syllables Fullwidth Forms Kana Supplement
GitHubs issue page is open! You can report any 􏽕errors􀀀, or leave 􏽕suggestions􀀀. GitHubs 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 You can help this font to be more versatile. (for more languages, more frameworks) 􏽕Clone􀀀 this repo, make

BIN
demo.PNG

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

View File

@@ -138,6 +138,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
private fun isCherokee(c: Int) = c in codeRange[SHEET_TSALAGI_VARW] private fun isCherokee(c: Int) = c in codeRange[SHEET_TSALAGI_VARW]
private fun isInsular(c: Int) = c == 0x1D79 || c in 0xA779..0xA787 private fun isInsular(c: Int) = c == 0x1D79 || c in 0xA779..0xA787
private fun isNagariBengali(c: Int) = c in codeRange[SHEET_NAGARI_BENGALI_VARW] private fun isNagariBengali(c: Int) = c in codeRange[SHEET_NAGARI_BENGALI_VARW]
private fun isKartvelianCaps(c: Int) = c in codeRange[SHEET_KARTULI_CAPS_VARW]
private fun extAindexX(c: Int) = (c - 0x100) % 16 private fun extAindexX(c: Int) = (c - 0x100) % 16
@@ -202,6 +203,9 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
private fun nagariIndexX(c: Int) = (c - 0x900) % 16 private fun nagariIndexX(c: Int) = (c - 0x900) % 16
private fun nagariIndexY(c: Int) = (c - 0x900) / 16 private fun nagariIndexY(c: Int) = (c - 0x900) / 16
private fun kartvelianCapsIndexX(c: Int) = (c - 0x1C90) % 16
private fun kartvelianCapsIndexY(c: Int) = (c - 0x1C90) / 16
private fun getColour(codePoint: Int): Color { // input: 0x10ARGB, out: RGBA8888 private fun getColour(codePoint: Int): Color { // input: 0x10ARGB, out: RGBA8888
if (colourBuffer.containsKey(codePoint)) if (colourBuffer.containsKey(codePoint))
@@ -241,7 +245,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
SHEET_SERBIAN_VARW, SHEET_SERBIAN_VARW,
SHEET_TSALAGI_VARW, SHEET_TSALAGI_VARW,
SHEET_INSUAR_VARW, SHEET_INSUAR_VARW,
SHEET_NAGARI_BENGALI_VARW SHEET_NAGARI_BENGALI_VARW,
SHEET_KARTULI_CAPS_VARW
) )
private val fontParentDir = if (fontDir.endsWith('/') || fontDir.endsWith('\\')) fontDir else "$fontDir/" private val fontParentDir = if (fontDir.endsWith('/') || fontDir.endsWith('\\')) fontDir else "$fontDir/"
@@ -268,7 +273,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
"cyrilic_serbian_variable.tga", "cyrilic_serbian_variable.tga",
"tsalagi_variable.tga", "tsalagi_variable.tga",
"insular_variable.tga", "insular_variable.tga",
"devanagari_bengali_variable.tga" "devanagari_bengali_variable.tga",
"kartuli_allcaps_variable.tga"
) )
private val codeRange = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!! private val codeRange = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!!
0..0xFF, 0..0xFF,
@@ -293,7 +299,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
0xF00060..0xF000BF, // assign them to PUA 0xF00060..0xF000BF, // assign them to PUA
0x13A0..0x13F5, 0x13A0..0x13F5,
0xA770..0xA787, 0xA770..0xA787,
0x900..0x9FF 0x900..0x9FF,
0x1C90..0x1CBF
) )
private val glyphProps: HashMap<Int, GlyphProps> = HashMap() private val glyphProps: HashMap<Int, GlyphProps> = HashMap()
private val sheets: Array<TextureRegionPack> private val sheets: Array<TextureRegionPack>
@@ -711,6 +718,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
return SHEET_INSUAR_VARW return SHEET_INSUAR_VARW
else if (isNagariBengali(c)) else if (isNagariBengali(c))
return SHEET_NAGARI_BENGALI_VARW return SHEET_NAGARI_BENGALI_VARW
else if (isKartvelianCaps(c))
return SHEET_KARTULI_CAPS_VARW
else else
return SHEET_UNKNOWN return SHEET_UNKNOWN
// fixed width // fixed width
@@ -800,6 +809,10 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
sheetX = nagariIndexX(ch) sheetX = nagariIndexX(ch)
sheetY = nagariIndexY(ch) sheetY = nagariIndexY(ch)
} }
SHEET_KARTULI_CAPS_VARW -> {
sheetX = kartvelianCapsIndexX(ch)
sheetY = kartvelianCapsIndexY(ch)
}
else -> { else -> {
sheetX = ch % 16 sheetX = ch % 16
sheetY = ch / 16 sheetY = ch / 16
@@ -1005,6 +1018,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
internal val SHEET_TSALAGI_VARW = 20 internal val SHEET_TSALAGI_VARW = 20
internal val SHEET_INSUAR_VARW = 21 internal val SHEET_INSUAR_VARW = 21
internal val SHEET_NAGARI_BENGALI_VARW=22 internal val SHEET_NAGARI_BENGALI_VARW=22
internal val SHEET_KARTULI_CAPS_VARW = 23
internal val SHEET_UNKNOWN = 254 internal val SHEET_UNKNOWN = 254