diff --git a/assets/devanagari_variable.tga b/assets/devanagari_variable.tga index df320ca..9ae1eea 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:ec57819fc0bf1022254c536cbb471c24ec5784e65fb094bef9d1138cc44dcfd6 +oid sha256:7dc3a667ca38c19ae46c1bca1a5fef25893ef951c9d338d520e01789a7c7b8d9 size 491538 diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt index 44e80ab..e867e64 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt @@ -1224,7 +1224,6 @@ class TerrarumSansBitmap( seq.add(c) resetRaStatus() } - // WIP // END of devanagari string replacer // rearrange {letter, before-and-after diacritics} as {before-diacritics, letter, after-diacritics} else if (glyphProps[c]?.stackWhere == GlyphProps.STACK_BEFORE_N_AFTER) { @@ -1253,6 +1252,7 @@ class TerrarumSansBitmap( i = 1 while (i <= seq.lastIndex) { + // reposition [cluster, align-before, align-after] into [align-before, cluster, align-after] if ((glyphProps[seq[i]] ?: nullProp).alignWhere == GlyphProps.ALIGN_BEFORE) { val t = seq[i - 1] seq[i - 1] = seq[i] @@ -1777,9 +1777,13 @@ 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 MARWARI_LIG_DD_DD = 0xF01AB + private val MARWARI_LIG_DD_DDH = 0xF01AC + private val MARWARI_LIG_DD_Y = 0xF01AD private val DEVANAGARI_LIG_T_R = 0xF0154 private val DEVANAGARI_LIG_SH_R = 0xF0166 + private val MARWARI_LIG_DD_R = 0xF016A private val DEVANAGARI_LIG_K_SS_R = 0xF016B private val DEVANAGARI_LIG_J_NY_R = 0xF016C @@ -1788,6 +1792,7 @@ 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 MARWARI_HALFLIG_DD_Y = 0xF01AE // private val DEVANAGARI_HALFLIG_T_R = 0xF012E // private val DEVANAGARI_HALFLIG_SH_R = 0xF012F @@ -1800,6 +1805,7 @@ class TerrarumSansBitmap( if (this == DEVANAGARI_LIG_J_NY) return DEVANAGARI_HALFLIG_J_NY if (this == DEVANAGARI_LIG_T_T) return DEVANAGARI_HALFLIG_T_T if (this == DEVANAGARI_OPEN_YA) return DEVANAGARI_OPEN_HALF_YA + if (this == MARWARI_LIG_DD_Y) return MARWARI_HALFLIG_DD_Y if (this in devanagariBaseConsonants) return (this - 0x0910 + DEVANAGARI_HALF_FORMS) if (this in devanagariBaseConsonantsWithNukta) return (this - 0x0920 + DEVANAGARI_HALF_FORMS) if (this in devanagariPresentationConsonantsWithRa) return this + 0x80 @@ -1818,6 +1824,7 @@ class TerrarumSansBitmap( else if (c == DEVANAGARI_LIG_K_SS) return listOf(DEVANAGARI_LIG_K_SS_R) else if (c == DEVANAGARI_LIG_J_NY) return listOf(DEVANAGARI_LIG_J_NY_R) else if (c == DEVANAGARI_LIG_T_T) return listOf(DEVANAGARI_LIG_T_T_R) + else if (c == 0x0978) return listOf(MARWARI_LIG_DD_R) else return listOf(c, DEVANAGARI_VIRAMA, DEVANAGARI_RA) } @@ -1933,6 +1940,12 @@ class TerrarumSansBitmap( 0x0935 -> return listOf(0xF0199) // H.V else -> return c1.toHalfFormOrVirama() + c2 } + 0x0978 -> /* Marwari DDA */ when (c2) { + 0x0978 -> return listOf(MARWARI_LIG_DD_DD) // DD.DD + 0x0922 -> return listOf(MARWARI_LIG_DD_DDH) // DD.DDH + DEVANAGARI_YA -> return listOf(MARWARI_LIG_DD_Y) // DD.Y + else -> return c1.toHalfFormOrVirama() + c2 + } else -> return c1.toHalfFormOrVirama() + c2 // TODO use proper version of Virama for respective scripts } } diff --git a/testing.PNG b/testing.PNG index 646d1dc..4168546 100755 Binary files a/testing.PNG and b/testing.PNG differ diff --git a/testtext.txt b/testtext.txt index 1d42890..042f586 100755 --- a/testtext.txt +++ b/testtext.txt @@ -9,5 +9,6 @@ अंग्रेजी ख्य மோநௌ « check the sanity of glyph reordering -भ्रष्ट ष्ट्रॉष्ठ्रॊष्ढ्रो प्ट्रॉप्ठ्रॊप्ढ्रो घ्ट्रॉघ्ठ्रॊघ्ढ्रो ष्ट्र्गौ ष्ठ्दॊ ष्ट्कष्ठ्कष्ढ्क -ष्ट्र्कष्ठ्र्कष्ढ्र्क प्ट्र्खप्ठ्र्खप्ढ्र्ख घ्ट्र्गघ्ठ्र्गघ्ढ्र्ग व्ख ब्ख व्ब व्य व्स \ 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 6041309..f1ecd7d 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:95090e3ce9eea5d7c63797828043e2589ddc30ebff23a23871f8858f869654be -size 552414 +oid sha256:f9587cce273529ad1a45ef64c2ab60cce84299136c02a428cbabf024e6d779c9 +size 553693