From cf3091421fc0e76dfd79c1b671194989b702d9c0 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 9 Aug 2018 15:46:57 +0900 Subject: [PATCH] bringing the shadow back --- .idea/workspace.xml | 63 +++++++-------- FontTestGDX/lib/TerrarumSansBitmap.jar | Bin 49770 -> 50874 bytes FontTestGDX/src/FontTestGDX.kt | 47 ++++++++--- .../terrarumsansbitmap/gdx/GameFontBase.kt | 75 ++++-------------- 4 files changed, 80 insertions(+), 105 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index d571c65..7d13a63 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -7,11 +7,8 @@ - - - - + @@ -32,8 +29,8 @@ - - + + @@ -78,11 +75,11 @@ - + - - + + @@ -90,8 +87,8 @@ - - + + @@ -105,11 +102,11 @@ - + - - + + @@ -193,9 +190,9 @@ @@ -844,13 +841,6 @@ - - - - - - - @@ -893,15 +883,8 @@ - - - - - - - - - + + @@ -912,10 +895,24 @@ + + + + + + + - - + + + + + + + + + diff --git a/FontTestGDX/lib/TerrarumSansBitmap.jar b/FontTestGDX/lib/TerrarumSansBitmap.jar index 5dc7bc5c77af8e95b1f34fc65def5d42431e728c..4ec59190f9f0eae12e328772ab9e751fae9f25a6 100644 GIT binary patch delta 32850 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 Osy>JerP}wO(f<#bD0X-N delta 31820 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 diff --git a/FontTestGDX/src/FontTestGDX.kt b/FontTestGDX/src/FontTestGDX.kt index b2fb49f..518ffc0 100644 --- a/FontTestGDX/src/FontTestGDX.kt +++ b/FontTestGDX/src/FontTestGDX.kt @@ -5,7 +5,10 @@ import com.badlogic.gdx.backends.lwjgl.LwjglApplication import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.GL20 +import com.badlogic.gdx.graphics.Pixmap +import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch +import com.badlogic.gdx.graphics.glutils.FrameBuffer import net.torvald.terrarumsansbitmap.gdx.GameFontBase /** @@ -19,6 +22,8 @@ class FontTestGDX : Game() { lateinit var batch: SpriteBatch + lateinit var frameBuffer: FrameBuffer + override fun create() { font = GameFontBase("./assets", flipY = false, errorOnUnknownChar = true) // must test for two flipY cases @@ -135,6 +140,7 @@ class FontTestGDX : Game() { println(font.toColorCode(0xF_F55)) println(font.toColorCode(0xE_CCC)) + frameBuffer = FrameBuffer(Pixmap.Format.RGBA8888, appConfig.width, appConfig.height, true) } override fun getScreen(): Screen? { @@ -144,22 +150,39 @@ class FontTestGDX : Game() { override fun setScreen(screen: Screen?) { } + var tex: Texture? = null + override fun render() { - Gdx.gl.glClearColor(.141f, .141f, .141f, 1f) - Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT) - Gdx.gl.glEnable(GL20.GL_TEXTURE_2D) - Gdx.gl.glEnable(GL20.GL_BLEND) - Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA) + if (tex == null) { + frameBuffer.begin() + + Gdx.gl.glClearColor(.141f, .141f, .141f, 1f) + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT) + Gdx.gl.glEnable(GL20.GL_TEXTURE_2D) + Gdx.gl.glEnable(GL20.GL_BLEND) + Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA) + + batch.begin() + + batch.color = Color(0xeeeeeeff.toInt()) + inputText.forEachIndexed { index, s -> + font.draw(batch, s, 10f, appConfig.height - 30f - index * font.lineHeight) + } + + batch.end() + + frameBuffer.end() + + /////////////// + + tex = frameBuffer.colorBufferTexture + } batch.begin() - - batch.color = Color(0xeeeeeeff.toInt()) - inputText.forEachIndexed { index, s -> - font.draw(batch, s, 10f, appConfig.height - 30f - index * font.lineHeight) - } - + batch.color = Color.WHITE + batch.draw(tex, 0f, appConfig.height.toFloat(), appConfig.width.toFloat(), -appConfig.height.toFloat()) batch.end() } @@ -183,7 +206,7 @@ fun main(args: Array) { appConfig = LwjglApplicationConfiguration() appConfig.vSyncEnabled = false appConfig.resizable = false//true; - appConfig.width = 960 + appConfig.width = 874 appConfig.height = 2048 appConfig.title = "Terrarum Sans Bitmap Test (GDX)" diff --git a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt index 31b3cc1..6fb3f86 100644 --- a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt @@ -544,16 +544,16 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo batch.color = shadowCol batch.draw(hangulSheet.get(indexCho, choRow ), x + posXbuffer[index] + 1, y) - batch.draw(hangulSheet.get(indexCho, choRow ), x + posXbuffer[index] , y + if (flipY) 1 else -1) - batch.draw(hangulSheet.get(indexCho, choRow ), x + posXbuffer[index] + 1, y + if (flipY) 1 else -1) + batch.draw(hangulSheet.get(indexCho, choRow ), x + posXbuffer[index] , y + 1.flipY()) + batch.draw(hangulSheet.get(indexCho, choRow ), x + posXbuffer[index] + 1, y + 1.flipY()) batch.draw(hangulSheet.get(indexJung, jungRow), x + posXbuffer[index] + 1, y) - batch.draw(hangulSheet.get(indexJung, jungRow), x + posXbuffer[index] , y + if (flipY) 1 else -1) - batch.draw(hangulSheet.get(indexJung, jungRow), x + posXbuffer[index] + 1, y + if (flipY) 1 else -1) + batch.draw(hangulSheet.get(indexJung, jungRow), x + posXbuffer[index] , y + 1.flipY()) + batch.draw(hangulSheet.get(indexJung, jungRow), x + posXbuffer[index] + 1, y + 1.flipY()) batch.draw(hangulSheet.get(indexJong, jongRow), x + posXbuffer[index] + 1, y) - batch.draw(hangulSheet.get(indexJong, jongRow), x + posXbuffer[index] , y + if (flipY) 1 else -1) - batch.draw(hangulSheet.get(indexJong, jongRow), x + posXbuffer[index] + 1, y + if (flipY) 1 else -1) + batch.draw(hangulSheet.get(indexJong, jongRow), x + posXbuffer[index] , y + 1.flipY()) + batch.draw(hangulSheet.get(indexJong, jongRow), x + posXbuffer[index] + 1, y + 1.flipY()) } @@ -564,61 +564,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo } else { try { - /*val offset = if (!isDiacritics(c)) 0 else { - if (index > 0) // LIMITATION: does not support double (or more) diacritics properly - (glyphWidthBuffer[index] - glyphWidthBuffer[index - 1]) / 2 - else - glyphWidthBuffer[index] - } - if (!noShadow) { - batch.color = shadowCol - batch.draw( - sheets[sheetID].get(sheetX, sheetY), - x + posXbuffer[index] + 1 + offset, - y + (if (sheetID == SHEET_UNIHAN) // evil exceptions - offsetUnihan.flipY() - else if (sheetID == SHEET_CUSTOM_SYM) - offsetCustomSym - else - 0) * if (flipY) 1 else -1 - ) - batch.draw( - sheets[sheetID].get(sheetX, sheetY), - x + posXbuffer[index] + offset, - y + (if (sheetID == SHEET_UNIHAN) // evil exceptions - offsetUnihan.flipY() + 1 - else if (sheetID == SHEET_CUSTOM_SYM) - offsetCustomSym + 1 - else - 1) * if (flipY) 1 else -1 - ) - batch.draw( - sheets[sheetID].get(sheetX, sheetY), - x + posXbuffer[index] + 1 + offset, - y + (if (sheetID == SHEET_UNIHAN) // evil exceptions - offsetUnihan.flipY() + 1 - else if (sheetID == SHEET_CUSTOM_SYM) - offsetCustomSym + 1 - else - 1).flipY() - ) - } - - - batch.color = mainCol - batch.draw( - sheets[sheetID].get(sheetX, sheetY), - x + posXbuffer[index] + offset, - y + - if (sheetID == SHEET_UNIHAN) // evil exceptions - offsetUnihan - else if (sheetID == SHEET_CUSTOM_SYM) - offsetCustomSym - else 0 - )*/ - - batch.color = mainCol val posY = y + posYbuffer[index].flipY() + if (sheetID == SHEET_UNIHAN) // evil exceptions offsetUnihan @@ -629,6 +575,15 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo val posX = x + posXbuffer[index] val texture = sheets[sheetID].get(sheetX, sheetY) + + if (!noShadow) { + batch.color = shadowCol + batch.draw(texture, posX + 1, posY + 1.flipY()) + batch.draw(texture, posX , posY + 1.flipY()) + batch.draw(texture, posX + 1, posY) + } + + batch.color = mainCol batch.draw(texture, posX, posY) } catch (noSuchGlyph: ArrayIndexOutOfBoundsException) {