devanagari narrower vowels

This commit is contained in:
minjaesong
2022-01-26 10:09:02 +09:00
parent 702f1b2e2f
commit a58ad756ff
6 changed files with 14 additions and 13 deletions

Binary file not shown.

View File

@@ -116,7 +116,7 @@ data class GlyphProps(
if (stackWhere == STACK_BEFORE_N_AFTER)
2
else if (directiveOpcode in 0b10000_000..0b10000_111)
directiveOpcode and 7
7
else 0
fun isPragma(pragma: String) = when (pragma) {

View File

@@ -1213,11 +1213,11 @@ class TerrarumSansBitmap(
seq.add(c)
changeRaStatus(1)
}
else if ((yankedDevanagariRaStatus[1] == 1 || yankedDevanagariRaStatus[1] == 3) && devanagariVerbs.contains(c)) {
else if ((yankedDevanagariRaStatus[1] == 1 || yankedDevanagariRaStatus[1] == 3) && devanagariVowels.contains(c)) {
seq.add(c)
changeRaStatus(3)
}
// else if (yankedDevanagariRaStatus == 3 && !devanagariVerbs.contains(c)) {
// else if (yankedDevanagariRaStatus == 3 && !devanagariVowels.contains(c)) {
else if (yankedDevanagariRaStatus[1] > 0 && yankedCharacters.peek().second == DEVANAGARI_RA) { // termination or illegal state for Devanagari RA
yankedCharacters.pop()
seq.add(DEVANAGARI_RA_SUPER)
@@ -1289,9 +1289,9 @@ class TerrarumSansBitmap(
i = 0
while (i <= seq.lastIndex) {
if (i > 0 && (glyphProps[seq[i]] ?: nullProp).alignWhere == GlyphProps.ALIGN_BEFORE) {
val verb = seq[i]
// dbgprn("Verb realign: index $i, ${verb.charInfo()}")
if (isDevanagari(verb)) {
val vowel = seq[i]
// dbgprn("Vowel realign: index $i, ${vowel.charInfo()}")
if (isDevanagari(vowel)) {
// scan for the consonant cluster backwards
// [not ligature glyphs] h h h h h c l r
var scanCounter = 1
@@ -1303,10 +1303,10 @@ class TerrarumSansBitmap(
scanCounter += 1
else
break
} // scanCounter points at the terminator. the left-verb must be placed at (i - scanCounter + 1)
} // scanCounter points at the terminator. the left-vowel must be placed at (i - scanCounter + 1)
seq.removeAt(i)
seq.add(i - scanCounter + 1, verb)
seq.add(i - scanCounter + 1, vowel)
}
else {
val t = seq[i - 1]
@@ -1781,7 +1781,7 @@ class TerrarumSansBitmap(
private val TAMIL_SHRII = 0xF00EE
private val devanagariConsonants = ((0x0915..0x0939) + (0x0958..0x095F) + (0x0978..0x097F) + (0xF0105..0xF01FF)).toHashSet()
private val devanagariVerbs = ((0x093A..0x093C) + (0x093E..0x094C) + (0x094E..0x094F)).toHashSet()
private val devanagariVowels = ((0x093A..0x093C) + (0x093E..0x094C) + (0x094E..0x094F)).toHashSet()
private val devanagariBaseConsonants = 0x0915..0x0939
private val devanagariBaseConsonantsWithNukta = 0x0958..0x095F

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -14,4 +14,5 @@
स्वतन्त्र << N.T.RA ligature
सर्वप्रथम << RAsup must be above VA, not P.RA
भारतीय अक्षर जटिल हैं क्ष्फ क्षफ
भारतीय अक्षर जटिल हैं क्ष्फ क्षफ अऺ
ऄअआऑऒओऔ ॲॳॴॵॶॷ

Binary file not shown.