From 1e66cfec51db2213ceac90905353857f5ebedaa1 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 25 Jan 2022 12:01:14 +0900 Subject: [PATCH] marwari dda ligatures --- assets/devanagari_variable.tga | 2 +- .../gdx/TerrarumSansBitmap.kt | 15 ++++++++++++++- testing.PNG | Bin 26594 -> 27458 bytes testtext.txt | 5 +++-- work_files/devanagari_variable.psd | 4 ++-- 5 files changed, 20 insertions(+), 6 deletions(-) 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 646d1dc87c77e618388665f1471ff9f1e3ad3584..4168546b39b7145c21fb8e427c1ce0e7559ca0e8 100755 GIT binary patch literal 27458 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 literal 26594 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