mirror of
https://github.com/curioustorvald/Terrarum-sans-bitmap.git
synced 2026-03-07 11:51:50 +09:00
more fixes for diacritics system
This commit is contained in:
@@ -26,7 +26,7 @@ class FontTestGDX : Game() {
|
|||||||
|
|
||||||
lateinit var camera: OrthographicCamera
|
lateinit var camera: OrthographicCamera
|
||||||
|
|
||||||
private val testing = false
|
private val testing = true
|
||||||
|
|
||||||
private val demotextName = if (testing) "testtext.txt" else "demotext.txt"
|
private val demotextName = if (testing) "testtext.txt" else "demotext.txt"
|
||||||
private val outimageName = if (testing) "testing.PNG" else "demo.PNG"
|
private val outimageName = if (testing) "testing.PNG" else "demo.PNG"
|
||||||
|
|||||||
BIN
assets/thai_variable.tga
LFS
BIN
assets/thai_variable.tga
LFS
Binary file not shown.
BIN
demo.PNG
BIN
demo.PNG
Binary file not shown.
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
@@ -849,7 +849,7 @@ class TerrarumSansBitmap(
|
|||||||
|
|
||||||
|
|
||||||
var nonDiacriticCounter = 0 // index of last instance of non-diacritic char
|
var nonDiacriticCounter = 0 // index of last instance of non-diacritic char
|
||||||
var stackUpwardCounter = 0
|
var stackUpwardCounter = 0 // TODO separate stack counter for centre- and right aligned
|
||||||
var stackDownwardCounter = 0
|
var stackDownwardCounter = 0
|
||||||
|
|
||||||
val HALF_VAR_INIT = W_VAR_INIT.minus(1).div(2)
|
val HALF_VAR_INIT = W_VAR_INIT.minus(1).div(2)
|
||||||
@@ -963,15 +963,14 @@ class TerrarumSansBitmap(
|
|||||||
|
|
||||||
|
|
||||||
// set Y pos according to diacritics position
|
// set Y pos according to diacritics position
|
||||||
if (thisProp.alignWhere == GlyphProps.ALIGN_CENTRE) {
|
// if (thisProp.alignWhere == GlyphProps.ALIGN_CENTRE) {
|
||||||
when (thisProp.stackWhere) {
|
when (thisProp.stackWhere) {
|
||||||
GlyphProps.STACK_DOWN -> {
|
GlyphProps.STACK_DOWN -> {
|
||||||
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
|
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter * flipY.toSign()
|
||||||
stackDownwardCounter++
|
stackDownwardCounter++
|
||||||
}
|
}
|
||||||
GlyphProps.STACK_UP -> {
|
GlyphProps.STACK_UP -> {
|
||||||
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
|
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter * flipY.toSign()
|
||||||
|
|
||||||
// shift down on lowercase if applicable
|
// shift down on lowercase if applicable
|
||||||
if (getSheetType(thisChar) in autoShiftDownOnLowercase &&
|
if (getSheetType(thisChar) in autoShiftDownOnLowercase &&
|
||||||
lastNonDiacriticChar.isLowHeight()) {
|
lastNonDiacriticChar.isLowHeight()) {
|
||||||
@@ -979,22 +978,35 @@ class TerrarumSansBitmap(
|
|||||||
//dbgprn("lastNonDiacriticChar: ${lastNonDiacriticChar.toHex()}")
|
//dbgprn("lastNonDiacriticChar: ${lastNonDiacriticChar.toHex()}")
|
||||||
//dbgprn("cond: ${thisProp.alignXPos == GlyphProps.DIA_OVERLAY}, charIndex: $charIndex")
|
//dbgprn("cond: ${thisProp.alignXPos == GlyphProps.DIA_OVERLAY}, charIndex: $charIndex")
|
||||||
if (diacriticsType == GlyphProps.DIA_OVERLAY)
|
if (diacriticsType == GlyphProps.DIA_OVERLAY)
|
||||||
posYbuffer[charIndex] -= H_OVERLAY_LOWERCASE_SHIFTDOWN * (!flipY).toSign() // if minus-assign doesn't work, try plus-assign
|
posYbuffer[charIndex] += H_OVERLAY_LOWERCASE_SHIFTDOWN * flipY.toSign() // if minus-assign doesn't work, try plus-assign
|
||||||
else
|
else
|
||||||
posYbuffer[charIndex] -= H_STACKUP_LOWERCASE_SHIFTDOWN * (!flipY).toSign() // if minus-assign doesn't work, try plus-assign
|
posYbuffer[charIndex] += H_STACKUP_LOWERCASE_SHIFTDOWN * flipY.toSign() // if minus-assign doesn't work, try plus-assign
|
||||||
|
}
|
||||||
|
|
||||||
|
stackUpwardCounter++
|
||||||
|
|
||||||
|
dbgprn("lastNonDiacriticChar: ${lastNonDiacriticChar.charInfo()}; stack counter: $stackUpwardCounter")
|
||||||
|
}
|
||||||
|
GlyphProps.STACK_UP_N_DOWN -> {
|
||||||
|
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter * flipY.toSign()
|
||||||
|
stackDownwardCounter++
|
||||||
|
|
||||||
|
|
||||||
|
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter * flipY.toSign()
|
||||||
|
// shift down on lowercase if applicable
|
||||||
|
if (getSheetType(thisChar) in autoShiftDownOnLowercase &&
|
||||||
|
lastNonDiacriticChar.isLowHeight()) {
|
||||||
|
if (diacriticsType == GlyphProps.DIA_OVERLAY)
|
||||||
|
posYbuffer[charIndex] += H_OVERLAY_LOWERCASE_SHIFTDOWN * flipY.toSign() // if minus-assign doesn't work, try plus-assign
|
||||||
|
else
|
||||||
|
posYbuffer[charIndex] += H_STACKUP_LOWERCASE_SHIFTDOWN * flipY.toSign() // if minus-assign doesn't work, try plus-assign
|
||||||
}
|
}
|
||||||
|
|
||||||
stackUpwardCounter++
|
stackUpwardCounter++
|
||||||
}
|
}
|
||||||
GlyphProps.STACK_UP_N_DOWN -> {
|
|
||||||
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
|
|
||||||
stackDownwardCounter++
|
|
||||||
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
|
|
||||||
stackUpwardCounter++
|
|
||||||
}
|
|
||||||
// for BEFORE_N_AFTER, do nothing in here
|
// for BEFORE_N_AFTER, do nothing in here
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
testing.PNG
BIN
testing.PNG
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
@@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
A ดุ ตี ปู่ พี่ ป่ ม่ ปั มั พีุ
|
A ดุ ตี ปู่ พี่ ป่ ม่ ปั มั พีุ
|
||||||
|
|
||||||
U̸ u̸
|
ทิ่ท่ท่ิ ปิ่ป่ป่ิ ทิ้ ปิ้ มำด มําด
|
||||||
|
|
||||||
|
|||||||
BIN
work_files/thai_variable.psd
LFS
BIN
work_files/thai_variable.psd
LFS
Binary file not shown.
Reference in New Issue
Block a user