diff --git a/assets/devanagari_variable.tga b/assets/devanagari_variable.tga index 62ee182..030f637 100644 --- a/assets/devanagari_variable.tga +++ b/assets/devanagari_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ce47ae3d3faca39ae9baf26ab852cc29a9734f867da8caeac996717da55f091 -size 409618 +oid sha256:3719bf8577cf152cd146f4cd1a6df5c476c19b697e14e958307f03614639afe9 +size 491538 diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt index 5346f27..34fd9d9 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt @@ -1714,7 +1714,8 @@ class TerrarumSansBitmap( private val devanagariBaseConsonants = 0x0915..0x0939 private val devanagariBaseConsonantsWithNukta = 0x0958..0x095F private val devanagariBaseConsonantsExtended = 0x0978..0x097F - private val devanagariPresentationFormsConsonants = 0xF0140..0xF01FF + private val devanagariPresentationConsonants = 0xF0140..0xF01FF + private val devanagariPresentationConsonantsWithRa = 0xF0140..0xF017F private val DEVANAGARI_VIRAMA = 0x94D private val DEVANAGARI_RA = 0x930 @@ -1739,6 +1740,7 @@ class TerrarumSansBitmap( private val DEVANAGARI_LIG_K_SS = 0xF0181 private val DEVANAGARI_LIG_J_NY = 0xF0184 private val DEVANAGARI_LIG_T_T = 0xF018B + private val DEVANAGARI_LIG_T_R = 0xF0154 private val DEVANAGARI_LIG_SH_R = 0xF0166 @@ -1749,8 +1751,9 @@ class TerrarumSansBitmap( private val DEVANAGARI_HALFLIG_K_SS = 0xF012B private val DEVANAGARI_HALFLIG_J_NY = 0xF012C private val DEVANAGARI_HALFLIG_T_T = 0xF012D - private val DEVANAGARI_HALFLIG_T_R = 0xF012E - private val DEVANAGARI_HALFLIG_SH_R = 0xF012F + +// private val DEVANAGARI_HALFLIG_T_R = 0xF012E +// private val DEVANAGARI_HALFLIG_SH_R = 0xF012F private val DEVANAGARI_HALF_FORMS = 0xF0100 // starting point for Devanagari half forms private val DEVANAGARI_LIG_X_R = 0xF0140 // starting point for Devanagari ligature CONSONANT+RA @@ -1758,19 +1761,18 @@ class TerrarumSansBitmap( private fun CodePoint.toHalfFormOrNull(): CodePoint? { if (this in devanagariBaseConsonants) return (this - 0x0910 + DEVANAGARI_HALF_FORMS) if (this in devanagariBaseConsonantsWithNukta) return (this - 0x0920 + DEVANAGARI_HALF_FORMS) - else if (this == DEVANAGARI_LIG_K_SS) return DEVANAGARI_HALFLIG_K_SS - else if (this == DEVANAGARI_LIG_J_NY) return DEVANAGARI_HALFLIG_J_NY - else if (this == DEVANAGARI_LIG_T_T) return DEVANAGARI_HALFLIG_T_T - else if (this == DEVANAGARI_LIG_T_R) return DEVANAGARI_HALFLIG_T_R - else if (this == DEVANAGARI_LIG_SH_R) return DEVANAGARI_HALFLIG_SH_R - // TODO half forms of X_R-ligatures - else return null + if (this in devanagariPresentationConsonantsWithRa) return this + 0x80 + if (this == DEVANAGARI_LIG_K_SS) return DEVANAGARI_HALFLIG_K_SS + if (this == DEVANAGARI_LIG_J_NY) return DEVANAGARI_HALFLIG_J_NY + if (this == DEVANAGARI_LIG_T_T) return DEVANAGARI_HALFLIG_T_T + return null } // TODO use proper version of Virama for respective scripts private fun CodePoint.toHalfFormOrVirama(): List = this.toHalfFormOrNull().let { - if (it == null) listOf(this, DEVANAGARI_VIRAMA) else listOf(it) - } +// println("[TerrarumSansBitmap] toHalfForm ${this.charInfo()} = ${it?.charInfo()}") + if (it == null) listOf(this, DEVANAGARI_VIRAMA) else listOf(it) + } // TODO use proper version of Virama for respective scripts private fun toRaAppended(c: CodePoint): List { @@ -1782,7 +1784,7 @@ class TerrarumSansBitmap( } private fun ligateIndicConsonants(c1: CodePoint, c2: CodePoint): List { - println("[TerrarumSansBitmap] Indic ligation ${c1.charInfo()} - ${c2.charInfo()}") +// println("[TerrarumSansBitmap] Indic ligation ${c1.charInfo()} - ${c2.charInfo()}") if (c2 == DEVANAGARI_RA) return toRaAppended(c1) // Devanagari @.RA when (c1) { 0x0915 -> /* Devanagari KA */ when (c2) { diff --git a/testing.PNG b/testing.PNG index 7575d5d..3a1736e 100755 Binary files a/testing.PNG and b/testing.PNG differ diff --git a/testtext.txt b/testtext.txt index 324dbb6..c24e573 100755 --- a/testtext.txt +++ b/testtext.txt @@ -1,4 +1,5 @@ फ़ॊण्ज़ीणू क्की क्कि र्क र्त्सा र्र्ल ऱ्ड क्राप् ठ्री त्र् स्त्रक्ष्य ह्णह्नह्मह्यह्लह्वह्र णनमयलव ज़्लतान छात्त्र छात्र क्ष्र ज्ञ्र -ङ्यछ्यट्यठ्यड्यढ्यद्यश्यह्य ढा ऱुमिक्युब हुहू दुदू द्गद्घद्द ढ्ढढ्वद्व \ No newline at end of file +ङ्यछ्यट्यठ्यड्यढ्यद्यश्यह्य ढा ऱुमिक्युब हुहू दुदू द्गद्घद्द ढ्ढढ्वद्व +ग्र्क्र क्श्र त्रत्त्र क्ष्र्प \ No newline at end of file diff --git a/work_files/devanagari_variable.psd b/work_files/devanagari_variable.psd index 043f716..1a284ef 100644 --- a/work_files/devanagari_variable.psd +++ b/work_files/devanagari_variable.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a58a848383d361b441f39f5309887fb7066039575dabad984893fcd2a1cd89c -size 455972 +oid sha256:0645e0a86bdbab8c4717461e40d547812e00c5353bab47c742e6b00c4b8cafed +size 537014