From 947c966660af1c51daa8367bd64cf9f9e9ab49ee Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 5 Nov 2021 17:18:11 +0900 Subject: [PATCH] typewriter font is working but not quite --- FontTestGDX/src/TypewriterGDX.kt | 116 ++++ assets/typewriter/typewriter_ko_3set-390.tga | Bin 0 -> 327698 bytes .../gdx/TerrarumSansBitmap.kt | 54 +- .../gdx/TerrarumTypewriterBitmap.kt | 566 +++++++++++++++++- .../typewriter_input_template.psd | Bin 55609 -> 55609 bytes .../typewriter_ko_3set-390.psd | Bin 124695 -> 157946 bytes .../typewriter_ko_3set_glyphs_resized.kra | Bin 146820 -> 239983 bytes 7 files changed, 705 insertions(+), 31 deletions(-) create mode 100644 FontTestGDX/src/TypewriterGDX.kt create mode 100644 assets/typewriter/typewriter_ko_3set-390.tga diff --git a/FontTestGDX/src/TypewriterGDX.kt b/FontTestGDX/src/TypewriterGDX.kt new file mode 100644 index 0000000..05ea0a5 --- /dev/null +++ b/FontTestGDX/src/TypewriterGDX.kt @@ -0,0 +1,116 @@ +import com.badlogic.gdx.Game +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.Input +import com.badlogic.gdx.InputAdapter +import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application +import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.GL20 +import com.badlogic.gdx.graphics.OrthographicCamera +import com.badlogic.gdx.graphics.Pixmap +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import com.badlogic.gdx.graphics.glutils.FrameBuffer +import net.torvald.terrarumsansbitmap.gdx.CodepointSequence +import net.torvald.terrarumtypewriterbitmap.gdx.TerrarumTypewriterBitmap +import java.io.StringReader + +/** + * Created by minjaesong on 2021-11-05. + */ +class TypewriterGDX(val width: Int, val height: Int) : Game() { + + lateinit var font: TerrarumTypewriterBitmap + lateinit var batch: SpriteBatch +// lateinit var frameBuffer: FrameBuffer + lateinit var camera: OrthographicCamera + + override fun create() { + font = TerrarumTypewriterBitmap( + "./assets/typewriter", + StringReader("ko_kr_3set-390_typewriter,typewriter_ko_3set-390.tga,16"), + true, false, 256, true + ) + + batch = SpriteBatch() + +// frameBuffer = FrameBuffer(Pixmap.Format.RGBA8888, TEXW, TEXH, true) + + camera = OrthographicCamera(width.toFloat(), height.toFloat()) + camera.translate(width.div(2f), 0f) + camera.setToOrtho(true, width.toFloat(), height.toFloat()) + camera.update() + + + Gdx.input.inputProcessor = TypewriterInput(this) + } + + // uvamr ibwk/f ;rxubnfs + private val textbuf: ArrayList = arrayListOf( + CodepointSequence(listOf(49,50,29,49,34,29,41,46, 62 ,37,30,51,39,76,34).map { it + 0xF3000 }) + ) + + fun acceptKey(keycode: Int) { + println("[TypewriterGDX] Accepting key: $keycode") + + if (keycode == Input.Keys.ENTER) { + textbuf.add(CodepointSequence()) + } + else if (keycode and 128 == Input.Keys.BACKSPACE) { + + } + else { + textbuf.last().add(keycode + 0xF3000) + } + } + + + private val textCol = Color(0.1f,0.1f,0.1f,1f) + override fun render() { + Gdx.gl.glClearColor(0.97f,0.96f,0.95f,1f) + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT) + Gdx.gl.glEnable(GL20.GL_TEXTURE_2D) + Gdx.gl.glEnable(GL20.GL_BLEND) + Gdx.gl.glBlendFuncSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE) + + batch.projectionMatrix = camera.combined + batch.begin() + + batch.color = textCol + textbuf.forEachIndexed { index, s -> + font.draw(batch, s, 40f, 40f + 32*index) + } + + batch.end() + } + + override fun dispose() { + font.dispose() + batch.dispose() + } +} + +class TypewriterInput(val main: TypewriterGDX) : InputAdapter() { + + private var shiftIn = false + + override fun keyDown(keycode: Int): Boolean { + // FIXME this shiftIn would not work at all... + shiftIn = (keycode == Input.Keys.SHIFT_LEFT || keycode == Input.Keys.SHIFT_RIGHT) + if (keycode < 128 && keycode != Input.Keys.SHIFT_LEFT && keycode != Input.Keys.SHIFT_RIGHT) { + main.acceptKey(shiftIn.toInt() * 128 + keycode) + } + return true + } + + private fun Boolean.toInt() = if (this) 1 else 0 +} + +fun main(args: Array) { + appConfig = Lwjgl3ApplicationConfiguration() + appConfig.useVsync(false) + appConfig.setResizable(false) + appConfig.setWindowedMode(600, 800) + appConfig.setTitle("Terrarum Sans Bitmap Test") + + Lwjgl3Application(TypewriterGDX(600, 800), appConfig) +} diff --git a/assets/typewriter/typewriter_ko_3set-390.tga b/assets/typewriter/typewriter_ko_3set-390.tga new file mode 100644 index 0000000000000000000000000000000000000000..a32ae6ab0e8487ac5b082799b38e154cdf4e0674 GIT binary patch literal 327698 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 literal 0 HcmV?d00001 diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt index f45cc0c..719089e 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt @@ -33,7 +33,6 @@ import com.badlogic.gdx.utils.GdxRuntimeException import net.torvald.terrarumsansbitmap.GlyphProps import java.io.BufferedOutputStream import java.io.FileOutputStream -import java.util.* import java.util.zip.CRC32 import java.util.zip.GZIPInputStream import kotlin.math.roundToInt @@ -116,29 +115,6 @@ class TerrarumSansBitmap( * into one sheet and gives custom internal indices) */ - /** - * lowercase AND the height is equal to x-height (e.g. lowercase B, D, F, H, K, L, ... does not count - */ - private fun CodePoint.isLowHeight() = this in lowHeightLetters - - - // TODO (val posXbuffer: IntArray, val posYbuffer: IntArray) -> (val linotype: Pixmap) - private data class ShittyGlyphLayout(val textBuffer: CodepointSequence, val linotype: Texture, val width: Int) - - //private val textCache = HashMap() - - private data class TextCacheObj(val hash: Long, val glyphLayout: ShittyGlyphLayout?): Comparable { -// var disposed = false; private set - - fun dispose() { - glyphLayout?.linotype?.dispose() -// disposed = true - } - - override fun compareTo(other: TextCacheObj): Int { - return (this.hash - other.hash).sign - } - } private var textCacheCap = 0 private val textCache = HashMap(textCacheSize * 2) @@ -190,7 +166,7 @@ class TerrarumSansBitmap( /** Props of all printable Unicode points. */ - private val glyphProps: HashMap = HashMap() + private val glyphProps = HashMap() private val sheets: Array private var charsetOverride = 0 @@ -362,8 +338,6 @@ class TerrarumSansBitmap( fun draw(batch: Batch, codepoints: CodepointSequence, x: Float, y: Float) = drawNormalised(batch, codepoints.normalise(), x, y) fun drawNormalised(batch: Batch, codepoints: CodepointSequence, x: Float, y: Float): GlyphLayout? { - if (debug) - println("[TerrarumSansBitmap] max age: $textCacheCap") // Q&D fix for issue #12 // When the line ends with a diacritics, the whole letter won't render @@ -707,7 +681,7 @@ class TerrarumSansBitmap( return intArrayOf(sheetX, sheetY) } - fun buildWidthTable(pixmap: Pixmap, codeRange: Iterable, cols: Int = 16) { + private fun buildWidthTable(pixmap: Pixmap, codeRange: Iterable, cols: Int = 16) { val binaryCodeOffset = W_VAR_INIT val cellW = W_VAR_INIT + 1 @@ -966,7 +940,7 @@ class TerrarumSansBitmap( // fill the last of the posXbuffer if (str.isNotEmpty()) { val lastCharProp = glyphProps[str.last()] - val penultCharProp = glyphProps[nonDiacriticCounter]!! + val penultCharProp = glyphProps[str[nonDiacriticCounter]]!! posXbuffer[posXbuffer.lastIndex] = 1 + posXbuffer[posXbuffer.lastIndex - 1] + // adding 1 to house the shadow if (lastCharProp?.writeOnTop == true) { val realDiacriticWidth = if (lastCharProp.alignWhere == GlyphProps.ALIGN_CENTRE) { @@ -1344,6 +1318,26 @@ class TerrarumSansBitmap( } companion object { + + + /** + * lowercase AND the height is equal to x-height (e.g. lowercase B, D, F, H, K, L, ... does not count + */ + fun CodePoint.isLowHeight() = this in lowHeightLetters + + data class ShittyGlyphLayout(val textBuffer: CodepointSequence, val linotype: Texture, val width: Int) + data class TextCacheObj(val hash: Long, val glyphLayout: ShittyGlyphLayout?): Comparable { + fun dispose() { + glyphLayout?.linotype?.dispose() + } + + override fun compareTo(other: TextCacheObj): Int { + return (this.hash - other.hash).sign + } + } + + + private val HCF = 0x115F private val HJF = 0x1160 @@ -1643,7 +1637,7 @@ class TerrarumSansBitmap( private fun isIPA(c: CodePoint) = c in codeRange[SHEET_IPA_VARW] private fun isLatinExtAdd(c: CodePoint) = c in 0x1E00..0x1EFF private fun isBulgarian(c: CodePoint) = c in 0x400..0x45F - private fun isColourCode(c: CodePoint) = c == 0x100000 || c in 0x10F000..0x10FFFF + fun isColourCode(c: CodePoint) = c == 0x100000 || c in 0x10F000..0x10FFFF private fun isCharsetOverride(c: CodePoint) = c in 0xFFFC0..0xFFFFF private fun isCherokee(c: CodePoint) = c in codeRange[SHEET_TSALAGI_VARW] private fun isInsular(c: CodePoint) = c == 0x1D79 diff --git a/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt b/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt index 11e6d94..6bcdc41 100644 --- a/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt +++ b/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt @@ -1,8 +1,24 @@ package net.torvald.terrarumtypewriterbitmap.gdx +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.graphics.Pixmap +import com.badlogic.gdx.graphics.Texture +import com.badlogic.gdx.graphics.g2d.Batch import com.badlogic.gdx.graphics.g2d.BitmapFont -import java.io.File +import com.badlogic.gdx.graphics.g2d.GlyphLayout +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import com.badlogic.gdx.utils.GdxRuntimeException +import net.torvald.terrarumsansbitmap.GlyphProps +import net.torvald.terrarumsansbitmap.gdx.* +import net.torvald.terrarumsansbitmap.gdx.CodePoint +import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap.Companion.TextCacheObj +import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap.Companion.ShittyGlyphLayout +import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap.Companion.isLowHeight +import java.io.BufferedOutputStream +import java.io.FileOutputStream import java.io.Reader +import java.util.zip.GZIPInputStream +import kotlin.math.roundToInt /** * Config File Syntax: @@ -35,5 +51,553 @@ class TerrarumTypewriterBitmap( override fun getDescent() = 3f override fun isFlipped() = flipY + var interchar = 0 + private val glyphProps = HashMap() + private val sheets = HashMap() + + private val spriteSheetNames = HashMap() + private val codepointStart = HashMap() + private val codepointToSheetID = HashMap() + + private var textCacheCap = 0 + private val textCache = HashMap(textCacheSize * 2) + private val colourBuffer = HashMap() + + /** + * Insertion sorts the last element fo the textCache + */ + private fun addToCache(text: CodepointSequence, linotype: Texture, width: Int) { + val cacheObj = + TextCacheObj(text.getHash(), ShittyGlyphLayout(text, linotype, width)) + + if (textCacheCap < textCacheSize) { + textCache[cacheObj.hash] = cacheObj + textCacheCap += 1 + } + else { + // randomly eliminate one + textCache.remove(textCache.keys.random())!!.dispose() + + // add new one + textCache[cacheObj.hash] = cacheObj + } + } + + private fun getCache(hash: Long): TextCacheObj? { + return textCache[hash] + } + + + private fun getColour(codePoint: Int): Int { // input: 0x10F_RGB, out: RGBA8888 + if (colourBuffer.containsKey(codePoint)) + return colourBuffer[codePoint]!! + + val r = codePoint.and(0x0F00).ushr(8) + val g = codePoint.and(0x00F0).ushr(4) + val b = codePoint.and(0x000F) + + val col = r.shl(28) or r.shl(24) or + g.shl(20) or g.shl(16) or + b.shl(12) or b.shl(8) or + 0xFF + + + colourBuffer[codePoint] = col + return col + } + + init { + val fontParentDir = if (fontDir.endsWith('/') || fontDir.endsWith('\\')) fontDir else "$fontDir/" + + configFile.forEachLine { + if (!it.startsWith("#")) { + val csv = it.split(',') + if (csv.size != 3) throw IllegalArgumentException("Malformed CSV line: '$it'") + val key = csv[0] + val sheetname = csv[1] + val cpstart = csv[2].toInt() * 256 + 0xF2000 + + spriteSheetNames[key] = sheetname + codepointStart[key] = cpstart + + for (k in cpstart until cpstart + 256) { + codepointToSheetID[k] = key + } + } + } + + spriteSheetNames.forEach { key, filename -> + var pixmap: Pixmap + + println("[TerrarumTypewriterBitmap] loading texture $filename [VARIABLE]") + + // unpack gz if applicable + if (filename.endsWith(".gz")) { + val tmpFileName = "tmp_${filename.dropLast(7)}.tga" + + try { + val gzi = GZIPInputStream(Gdx.files.internal(fontParentDir + filename).read(8192)) + val wholeFile = gzi.readBytes() + gzi.close() + val fos = BufferedOutputStream(FileOutputStream(tmpFileName)) + fos.write(wholeFile) + fos.flush() + fos.close() + + pixmap = Pixmap(Gdx.files.internal(tmpFileName)) + } + catch (e: GdxRuntimeException) { + //e.printStackTrace() + System.err.println("[TerrarumTypewriterBitmap] said texture not found, skipping...") + + pixmap = Pixmap(1, 1, Pixmap.Format.RGBA8888) + } + //File(tmpFileName).delete() + } + else { + pixmap = try { + Pixmap(Gdx.files.internal(fontParentDir + filename)) + } catch (e: GdxRuntimeException) { + //e.printStackTrace() + System.err.println("[TerrarumTypewriterBitmap] said texture not found, skipping...") + + Pixmap(1, 1, Pixmap.Format.RGBA8888) + } + } + + val cpstart = codepointStart[key]!! + buildWidthTable(pixmap, cpstart until cpstart + 256, 16) + + val texRegPack = PixmapRegionPack(pixmap, + TerrarumSansBitmap.W_VAR_INIT, + TerrarumSansBitmap.H, + TerrarumSansBitmap.HGAP_VAR, 0 + ) + + sheets[key] = texRegPack + + pixmap.dispose() // you are terminated + } + + glyphProps[0] = GlyphProps(0, 0) + + } + + private fun getSheetType(c: CodePoint) = codepointToSheetID[c] ?: "unknown" + private fun getSheetwisePosition(cPrev: Int, ch: Int) = getSheetType(ch).let { + val coff = ch - (codepointStart[it] ?: 0) + intArrayOf(coff % 16, coff / 16) + } + + + private fun buildWidthTable(pixmap: Pixmap, codeRange: Iterable, cols: Int = 16) { + val binaryCodeOffset = TerrarumSansBitmap.W_VAR_INIT + + val cellW = TerrarumSansBitmap.W_VAR_INIT + 1 + val cellH = TerrarumSansBitmap.H + + for (code in codeRange) { + + val cellX = ((code - codeRange.first()) % cols) * cellW + val cellY = ((code - codeRange.first()) / cols) * cellH + + val codeStartX = cellX + binaryCodeOffset + val codeStartY = cellY + val tagStartY = codeStartY + 10 + + var width = 0 + var tags = 0 + + for (y in 0..3) { + // if ALPHA is not zero, assume it's 1 + if (pixmap.getPixel(codeStartX, codeStartY + y).and(0xFF) != 0) { + width = width or (1 shl y) + } + } + + for (y in 0..9) { + // if ALPHA is not zero, assume it's 1 + if (pixmap.getPixel(codeStartX, tagStartY + y).and(0xFF) != 0) { + tags = tags or (1 shl y) + } + } + + if (debug) println("${code.charInfo()}: Width $width, tags $tags") + + /*val isDiacritics = pixmap.getPixel(codeStartX, codeStartY + H - 1).and(0xFF) != 0 + if (isDiacritics) + glyphWidth = -glyphWidth*/ + + glyphProps[code] = GlyphProps(width, tags) + + // extra info + val extCount = glyphProps[code]?.requiredExtInfoCount() ?: 0 + if (extCount > 0) { + + glyphProps[code]?.extInfo = IntArray(extCount) + + for (x in 0 until extCount) { + var info = 0 + for (y in 0..18) { + // if ALPHA is not zero, assume it's 1 + if (pixmap.getPixel(cellX + x, cellY + y).and(0xFF) != 0) { + info = info or (1 shl y) + } + } + + glyphProps[code]!!.extInfo!![x] = info + } + } + } + } + + private val pixmapOffsetY = 10 + private var flagFirstRun = true + private var textBuffer = CodepointSequence(256) + private lateinit var tempLinotype: Texture + private var nullProp = GlyphProps(15, 0) + + + fun draw(batch: Batch, codepoints: CodepointSequence, x: Float, y: Float): GlyphLayout? { + // Q&D fix for issue #12 + // When the line ends with a diacritics, the whole letter won't render + // If the line starts with a letter-with-diacritic, it will error out + // Some diacritics (e.g. COMBINING TILDE) do not obey lowercase letters + val charSeqNotBlank = codepoints.size > 0 // determine emptiness BEFORE you hack a null chars in + val newCodepoints = CodepointSequence() + newCodepoints.add(0) + newCodepoints.addAll(codepoints) + newCodepoints.add(0) + + fun Int.flipY() = this * if (flipY) 1 else -1 + + // always draw at integer position; this is bitmap font after all + val x = Math.round(x) + val y = Math.round(y) + + val charSeqHash = newCodepoints.getHash() + + var renderCol = -1 // subject to change with the colour code + + if (charSeqNotBlank) { + + val cacheObj = getCache(charSeqHash) + + if (cacheObj == null || flagFirstRun) { + textBuffer = newCodepoints + + val (posXbuffer, posYbuffer) = buildPosMap(textBuffer) + + flagFirstRun = false + + //println("text not in buffer: $charSeq") + + + //textBuffer.forEach { print("${it.toHex()} ") } + //println() + + +// resetHash(charSeq, x.toFloat(), y.toFloat()) + + + val _pw = posXbuffer.last() + val _ph = TerrarumSansBitmap.H + (pixmapOffsetY * 2) + if (_pw < 0 || _ph < 0) throw RuntimeException("Illegal linotype dimension (w: $_pw, h: $_ph)") + val linotypePixmap = Pixmap(_pw, _ph, Pixmap.Format.RGBA8888) + + + var index = 0 + while (index <= textBuffer.lastIndex) { + val c = textBuffer[index] + val sheetID = getSheetType(c) + val (sheetX, sheetY) = + if (index == 0) getSheetwisePosition(0, c) + else getSheetwisePosition(textBuffer[index - 1], c) + val hash = getHash(c) // to be used to simulate printing irregularity + + if (TerrarumSansBitmap.isColourCode(c)) { + if (c == 0x100000) { + renderCol = -1 + } + else { + renderCol = getColour(c) + } + } + else { + try { + val posY = posYbuffer[index].flipY() + val posX = posXbuffer[index] + val texture = sheets[sheetID]?.get(sheetX, sheetY) + + texture?.let { + linotypePixmap.drawPixmap(it, posX, posY + pixmapOffsetY, renderCol) + } + + } + catch (noSuchGlyph: ArrayIndexOutOfBoundsException) { + } + } + + + index++ + } + + tempLinotype = Texture(linotypePixmap) + tempLinotype.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) + + // put things into cache + //textCache[charSeq] = ShittyGlyphLayout(textBuffer, linotype!!) + addToCache(textBuffer, tempLinotype, posXbuffer.last()) + linotypePixmap.dispose() + } + else { + textBuffer = cacheObj.glyphLayout!!.textBuffer + tempLinotype = cacheObj.glyphLayout!!.linotype + } + + + if (!flipY) { + batch.draw(tempLinotype, x.toFloat(), (y - pixmapOffsetY).toFloat()) + } + else { + batch.draw(tempLinotype, + x.toFloat(), + (y - pixmapOffsetY + (tempLinotype.height)).toFloat(), + (tempLinotype.width.toFloat()), + -(tempLinotype.height.toFloat()) + ) + } + + } + + return null + } + + + /** + * posXbuffer's size is greater than the string, last element marks the width of entire string. + */ + private fun buildPosMap(str: List): Pair { + val posXbuffer = IntArray(str.size + 1) { 0 } + val posYbuffer = IntArray(str.size) { 0 } + + + var nonDiacriticCounter = 0 // index of last instance of non-diacritic char + var stackUpwardCounter = 0 + var stackDownwardCounter = 0 + + val HALF_VAR_INIT = TerrarumSansBitmap.W_VAR_INIT.minus(1).div(2) + + // this is starting to get dirty... + // persisting value. the value is set a few characters before the actual usage + var extraWidth = 0 + + for (charIndex in 0 until posXbuffer.size - 1) { + if (charIndex > 0) { + // nonDiacriticCounter allows multiple diacritics + + val thisChar = str[charIndex] + if (glyphProps[thisChar] == null && errorOnUnknownChar) { + val errorGlyphSB = StringBuilder() + Character.toChars(thisChar).forEach { errorGlyphSB.append(it) } + + throw InternalError("No GlyphProps for char '$errorGlyphSB' " + + "(${thisChar.charInfo()})") + } + val thisProp = glyphProps[thisChar] ?: nullProp + val lastNonDiacriticChar = str[nonDiacriticCounter] + val itsProp = glyphProps[lastNonDiacriticChar] ?: nullProp + val kerning = 0 + + + //println("char: ${thisChar.charInfo()}\nproperties: $thisProp") + + + var alignmentOffset = when (thisProp.alignWhere) { + GlyphProps.ALIGN_LEFT -> 0 + GlyphProps.ALIGN_RIGHT -> thisProp.width - TerrarumSansBitmap.W_VAR_INIT + GlyphProps.ALIGN_CENTRE -> Math.ceil((thisProp.width - TerrarumSansBitmap.W_VAR_INIT) / 2.0).toInt() + else -> 0 // implies "diacriticsBeforeGlyph = true" + } + + + if (!thisProp.writeOnTop) { + posXbuffer[charIndex] = when (itsProp.alignWhere) { + GlyphProps.ALIGN_RIGHT -> + posXbuffer[nonDiacriticCounter] + TerrarumSansBitmap.W_VAR_INIT + alignmentOffset + interchar + kerning + extraWidth + GlyphProps.ALIGN_CENTRE -> + posXbuffer[nonDiacriticCounter] + HALF_VAR_INIT + itsProp.width + alignmentOffset + interchar + kerning + extraWidth + else -> + posXbuffer[nonDiacriticCounter] + itsProp.width + alignmentOffset + interchar + kerning + extraWidth + } + + nonDiacriticCounter = charIndex + + stackUpwardCounter = 0 + stackDownwardCounter = 0 + extraWidth = 0 + } + else if (thisProp.writeOnTop && thisProp.alignXPos == GlyphProps.DIA_JOINER) { + posXbuffer[charIndex] = when (itsProp.alignWhere) { + GlyphProps.ALIGN_RIGHT -> + posXbuffer[nonDiacriticCounter] + TerrarumSansBitmap.W_VAR_INIT + alignmentOffset + //GlyphProps.ALIGN_CENTRE -> + // posXbuffer[nonDiacriticCounter] + HALF_VAR_INIT + itsProp.width + alignmentOffset + else -> + posXbuffer[nonDiacriticCounter] + itsProp.width + alignmentOffset + + } + } + else { + // set X pos according to alignment information + posXbuffer[charIndex] = when (thisProp.alignWhere) { + GlyphProps.ALIGN_LEFT, GlyphProps.ALIGN_BEFORE -> posXbuffer[nonDiacriticCounter] + GlyphProps.ALIGN_RIGHT -> { + posXbuffer[nonDiacriticCounter] - (TerrarumSansBitmap.W_VAR_INIT - itsProp.width) + } + GlyphProps.ALIGN_CENTRE -> { + val alignXPos = if (itsProp.alignXPos == 0) itsProp.width.div(2) else itsProp.alignXPos + + if (itsProp.alignWhere == GlyphProps.ALIGN_RIGHT) { + posXbuffer[nonDiacriticCounter] + alignXPos + (itsProp.width + 1).div(2) + } + else { + posXbuffer[nonDiacriticCounter] + alignXPos - HALF_VAR_INIT + } + } + else -> throw InternalError("Unsupported alignment: ${thisProp.alignWhere}") + } + + + // set Y pos according to diacritics position + if (thisProp.alignWhere == GlyphProps.ALIGN_CENTRE) { + when (thisProp.stackWhere) { + GlyphProps.STACK_DOWN -> { + posYbuffer[charIndex] = TerrarumSansBitmap.H_DIACRITICS * stackDownwardCounter + stackDownwardCounter++ + } + GlyphProps.STACK_UP -> { + posYbuffer[charIndex] = -TerrarumSansBitmap.H_DIACRITICS * stackUpwardCounter + + // shift down on lowercase if applicable + /*if (getSheetType(thisChar) in TerrarumSansBitmap.autoShiftDownOnLowercase && + lastNonDiacriticChar.isLowHeight()) { + //println("AAARRRRHHHH for character ${thisChar.toHex()}") + //println("lastNonDiacriticChar: ${lastNonDiacriticChar.toHex()}") + //println("cond: ${thisProp.alignXPos == GlyphProps.DIA_OVERLAY}, charIndex: $charIndex") + if (thisProp.alignXPos == GlyphProps.DIA_OVERLAY) + posYbuffer[charIndex] -= TerrarumSansBitmap.H_OVERLAY_LOWERCASE_SHIFTDOWN // if minus-assign doesn't work, try plus-assign + else + posYbuffer[charIndex] -= TerrarumSansBitmap.H_STACKUP_LOWERCASE_SHIFTDOWN // if minus-assign doesn't work, try plus-assign + }*/ + + stackUpwardCounter++ + } + GlyphProps.STACK_UP_N_DOWN -> { + posYbuffer[charIndex] = TerrarumSansBitmap.H_DIACRITICS * stackDownwardCounter + stackDownwardCounter++ + posYbuffer[charIndex] = -TerrarumSansBitmap.H_DIACRITICS * stackUpwardCounter + stackUpwardCounter++ + } + // for BEFORE_N_AFTER, do nothing in here + } + } + } + } + } + + // fill the last of the posXbuffer + if (str.isNotEmpty()) { + val lastCharProp = glyphProps[str.last()] + val penultCharProp = glyphProps[str[nonDiacriticCounter]]!! + posXbuffer[posXbuffer.lastIndex] = 1 + posXbuffer[posXbuffer.lastIndex - 1] + // adding 1 to house the shadow + if (lastCharProp?.writeOnTop == true) { + val realDiacriticWidth = if (lastCharProp.alignWhere == GlyphProps.ALIGN_CENTRE) { + (lastCharProp.width).div(2) + penultCharProp.alignXPos + } + else if (lastCharProp.alignWhere == GlyphProps.ALIGN_RIGHT) { + (lastCharProp.width) + penultCharProp.alignXPos + } + else 0 + + maxOf(penultCharProp.width, realDiacriticWidth) + } + else { + (lastCharProp?.width ?: 0) + } + } + else { + posXbuffer[0] = 0 + } + + return posXbuffer to posYbuffer + } + + + /*** + * @param col RGBA8888 representation + */ + private fun Pixmap.drawPixmap(pixmap: Pixmap, xPos: Int, yPos: Int, col: Int) { + for (y in 0 until pixmap.height) { + for (x in 0 until pixmap.width) { + val pixel = pixmap.getPixel(x, y) // Pixmap uses RGBA8888, while Color uses ARGB. What the fuck? + + val newPixel = pixel colorTimes col + + this.drawPixel(xPos + x, yPos + y, newPixel) + } + } + } + + + private infix fun Int.colorTimes(other: Int): Int { + val thisBytes = IntArray(4) { this.ushr(it * 8).and(255) } + val otherBytes = IntArray(4) { other.ushr(it * 8).and(255) } + + return (thisBytes[0] times256 otherBytes[0]) or + (thisBytes[1] times256 otherBytes[1]).shl(8) or + (thisBytes[2] times256 otherBytes[2]).shl(16) or + (thisBytes[3] times256 otherBytes[3]).shl(24) + } + + private infix fun Int.times256(other: Int) = multTable255[this][other] + + private val multTable255 = Array(256) { left -> + IntArray(256) { right -> + (255f * (left / 255f).times(right / 255f)).roundToInt() + } + } + + // randomiser effect hash ONLY + private val hashBasis = -3750763034362895579L + private val hashPrime = 1099511628211L + private var hashAccumulator = hashBasis + fun getHash(char: Int): Long { + hashAccumulator = hashAccumulator xor char.toLong() + hashAccumulator *= hashPrime + return hashAccumulator + } + + fun CodepointSequence.getHash(): Long { + val hashBasis = -3750763034362895579L + val hashPrime = 1099511628211L + var hashAccumulator = hashBasis + + this.forEach { + hashAccumulator = hashAccumulator xor it.toLong() + hashAccumulator *= hashPrime + } + + return hashAccumulator + } + + private fun Int.charInfo() = "U+${this.toString(16).padStart(4, '0').toUpperCase()}: ${Character.getName(this)}" + + + override fun dispose() { + super.dispose() + textCache.values.forEach { it.dispose() } + sheets.values.forEach { it.dispose() } + } } \ No newline at end of file diff --git a/work_files/typewriter_input/typewriter_input_template.psd b/work_files/typewriter_input/typewriter_input_template.psd index 85a9201cf67c95a44c251feca28a241d065bcdde..fdcb3fea0e04c63126fba26ad9497c1f323f12cf 100644 GIT binary patch delta 1076 zcmdnFiFxNH<_*Ovk~R$X3_c7V3;{sw!e9f0It&^NDhw)->yG(|4(i_XFj>lhmDO@*VR?mb+TN!Iqx4=E?rk$AOefT+uHN~b^WjV zABg|CG6B^r+-T4H56JuL$^aFac-|SP2E_XZR0mS?@I2HUh$%pk#!cp|U%+zb?aZN; kZ=7b%_;ItJy^Zu>a?KB(&F}TU^9&{@jRw$=N delta 1094 zcmdnFiFxNH<_*Ovk`@dW3@!{F3;{sw0));C1`HYuDhw)2y{SOrRJ9(ZRNCapM&=6f9`ZM{$CUc(u ruIx}_fp!X3g6ss^zS+;-MtYDr=m*c{_xj&?2AQiygK21{ra%q=hS`;R diff --git a/work_files/typewriter_input/typewriter_ko_3set-390.psd b/work_files/typewriter_input/typewriter_ko_3set-390.psd index c9768e331335f9907127345618fd18efdcee613e..435a32d0a7e3882ca70a912bbd80bf95cd7e9474 100644 GIT binary patch literal 157946 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 delta 16190 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

_pp%!zLb4 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 delta 30216 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 Yslt`Bb$+z_s4pZw8rm!NGv6Wq57~T>R{#J2