From 474279aefe6733e7cd5980abd678a3e10e4c9e70 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 31 Oct 2022 01:52:40 +0900 Subject: [PATCH] more descriptive name for the blend-normal function because why there are two fucking standards for an alpha channel --- .../gameactors/FixtureHomeComputer.kt | 2 +- src/net/torvald/terrarum/App.java | 2 +- src/net/torvald/terrarum/ErrorDisp.kt | 2 +- .../terrarum/NoModuleDefaultTitlescreen.kt | 4 +- src/net/torvald/terrarum/SanicLoadScreen.kt | 10 ++-- src/net/torvald/terrarum/Terrarum.kt | 52 ++++++++++++------- .../torvald/terrarum/TerrarumPostProcessor.kt | 2 +- src/net/torvald/terrarum/UIFakeGradOverlay.kt | 4 +- .../torvald/terrarum/UIItemInventoryCatBar.kt | 2 +- .../terrarum/UIItemInventoryElemSimple.kt | 2 +- .../terrarum/UIItemInventoryElemWide.kt | 4 +- .../terrarum/gameactors/ActorWithBody.kt | 2 +- .../modulebasegame/ChunkLoadingLoadScreen.kt | 2 +- .../terrarum/modulebasegame/IngameRenderer.kt | 32 ++++++------ .../terrarum/modulebasegame/TitleScreen.kt | 4 +- .../modulebasegame/WorldgenLoadScreen.kt | 2 +- .../gameactors/FixtureStorageChest.kt | 2 +- .../modulebasegame/gameactors/UICrafting.kt | 6 +-- .../modulebasegame/ui/Notification.kt | 4 +- .../ui/UIBuildingMakerBlockChooser.kt | 4 +- .../modulebasegame/ui/UIInventoryCells.kt | 4 +- .../modulebasegame/ui/UIInventoryEscMenu.kt | 4 +- .../modulebasegame/ui/UIInventoryFull.kt | 2 +- .../modulebasegame/ui/UIInventoryMinimap.kt | 5 +- .../ui/UIItemInventoryEquippedView.kt | 4 +- .../modulebasegame/ui/UILoadDemoSavefiles.kt | 8 +-- .../modulebasegame/ui/UIPaletteSelector.kt | 4 +- .../modulebasegame/ui/UITitleModules.kt | 2 +- .../spriteassembler/SpriteAssemblerApp.kt | 4 +- .../terrarum/tests/MakeKeylayoutFile.kt | 4 +- src/net/torvald/terrarum/tests/UIElemTest.kt | 2 +- .../terrarum/ui/BasicDebugInfoWindow.kt | 6 +-- .../torvald/terrarum/ui/UIItemImageButton.kt | 4 +- .../terrarum/ui/UIItemModuleInfoCell.kt | 2 +- .../torvald/terrarum/ui/UIItemTextButton.kt | 4 +- .../terrarum/ui/UIItemTextLineInput.kt | 2 +- .../torvald/terrarum/ui/UIItemTextSelector.kt | 3 +- .../torvald/terrarum/ui/UIItemToggleButton.kt | 4 +- src/net/torvald/terrarum/ui/UINSMenu.kt | 2 +- .../torvald/terrarum/weather/WeatherMixer.kt | 2 +- .../terrarum/worlddrawer/BlocksDrawer.kt | 10 ++-- .../terrarum/worlddrawer/FeaturesDrawer.kt | 4 +- 42 files changed, 122 insertions(+), 108 deletions(-) diff --git a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt index ff3470f33..a6c1a6e1b 100644 --- a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt +++ b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt @@ -188,7 +188,7 @@ internal class UIHomeComputer : UICanvas( otherBatch.begin() otherBatch.shader = null - blendNormal(otherBatch) + blendNormalStraightAlpha(otherBatch) otherBatch.color = Color.WHITE otherBatch.draw(fbo.colorBufferTexture, posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat()) otherBatch.color = Toolkit.Theme.COL_INACTIVE diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index 337aeaa1f..4c4b66aba 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -557,7 +557,7 @@ public class App implements ApplicationListener { FrameBufferManager.begin(renderFBO); - gdxClearAndSetBlend(.094f, .094f, .094f, 0f); + gdxClearAndEnableBlend(.094f, .094f, .094f, 0f); setCameraPosition(0, 0); diff --git a/src/net/torvald/terrarum/ErrorDisp.kt b/src/net/torvald/terrarum/ErrorDisp.kt index 461229cb7..b5e4e22db 100644 --- a/src/net/torvald/terrarum/ErrorDisp.kt +++ b/src/net/torvald/terrarum/ErrorDisp.kt @@ -38,7 +38,7 @@ object ErrorDisp : Screen { } override fun render(delta: Float) { - gdxClearAndSetBlend(.094f, .094f, .094f, 0f) + gdxClearAndEnableBlend(.094f, .094f, .094f, 0f) diff --git a/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt b/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt index d8fa35ebf..6431dcf4a 100644 --- a/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt +++ b/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt @@ -50,7 +50,7 @@ class NoModuleDefaultTitlescreen(batch: FlippingSpriteBatch) : IngameInstance(ba genericBackdrop override fun render(updateRate: Float) { - gdxClearAndSetBlend(0f, 0f, 0f, 0f) + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) if (!init) { val lh = 28f @@ -68,7 +68,7 @@ class NoModuleDefaultTitlescreen(batch: FlippingSpriteBatch) : IngameInstance(ba val centering = (App.scr.hf - heights.last() - App.fontGameFBO.lineHeight) / 2f fbo.inAction(null, null) { - gdxClearAndSetBlend(backdrop) + gdxClearAndEnableBlend(backdrop) batch.inUse { batch.color = Color.WHITE wot.reversed().forEachIndexed { index, s -> diff --git a/src/net/torvald/terrarum/SanicLoadScreen.kt b/src/net/torvald/terrarum/SanicLoadScreen.kt index 28f9929e4..5feabf787 100644 --- a/src/net/torvald/terrarum/SanicLoadScreen.kt +++ b/src/net/torvald/terrarum/SanicLoadScreen.kt @@ -78,10 +78,10 @@ object SanicLoadScreen : LoadScreenBase() { - gdxClearAndSetBlend(.094f, .094f, .094f, 0f) + gdxClearAndEnableBlend(.094f, .094f, .094f, 0f) textFbo.inAction(null, null) { - gdxClearAndSetBlend(0f, 0f, 0f, 0f) + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) } // update arrow object @@ -114,7 +114,7 @@ object SanicLoadScreen : LoadScreenBase() { App.batch.inUse { - blendNormal(App.batch) + blendNormalStraightAlpha(App.batch) App.fontGame it.color = Color.WHITE @@ -137,7 +137,7 @@ object SanicLoadScreen : LoadScreenBase() { App.batch.inUse { initViewPort(App.scr.width, App.scr.height) // dunno, no render without this it.projectionMatrix = camera.combined - blendNormal(App.batch) + blendNormalStraightAlpha(App.batch) // almost black background @@ -204,7 +204,7 @@ object SanicLoadScreen : LoadScreenBase() { initViewPort(App.scr.width, App.scr.height) // dunno, no render without this it.projectionMatrix = camera.combined - blendNormal(App.batch) + blendNormalStraightAlpha(App.batch) diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index d706e4e40..bf3d8f988 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -479,46 +479,62 @@ fun blendDisable(batch: SpriteBatch) { batch.disableBlending() } -/** - * GLSource (foreground) must NOT have alpha premultiplied! - */ -fun blendNormal(batch: SpriteBatch) { +fun blendNormalStraightAlpha(batch: SpriteBatch) { batch.enableBlending() -// batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA) // for premultiplied textures - batch.setBlendFunctionSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // for not premultiplied textures + batch.setBlendFunctionSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // helpful links: + // - https://stackoverflow.com/questions/19674740/opengl-es2-premultiplied-vs-straight-alpha-blending#37869033 + // - https://gamedev.stackexchange.com/questions/82741/normal-blend-mode-with-opengl-trouble + // - https://www.andersriggelsen.dk/glblendfunc.php + // - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl +} +fun blendNormalPremultAlpha(batch: SpriteBatch) { + batch.enableBlending() + batch.setBlendFunction(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) + // helpful links: + // - https://stackoverflow.com/questions/19674740/opengl-es2-premultiplied-vs-straight-alpha-blending#37869033 // - https://gamedev.stackexchange.com/questions/82741/normal-blend-mode-with-opengl-trouble // - https://www.andersriggelsen.dk/glblendfunc.php // - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl } -fun gdxClearAndSetBlend(color: Color) { - gdxClearAndSetBlend(color.r, color.g, color.b, color.a) +fun gdxClearAndEnableBlend(color: Color) { + gdxClearAndEnableBlend(color.r, color.g, color.b, color.a) } -fun gdxClearAndSetBlend(r: Float, g: Float, b: Float, a: Float) { +fun gdxClearAndEnableBlend(r: Float, g: Float, b: Float, a: Float) { Gdx.gl.glClearColor(r,g,b,a) Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT) - gdxSetBlend() + gdxEnableBlend() } -fun gdxSetBlend() { +fun gdxEnableBlend() { Gdx.gl.glEnable(GL20.GL_TEXTURE_2D) Gdx.gl.glEnable(GL20.GL_BLEND) } -fun gdxSetBlendNormal() { - gdxSetBlend() -// Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA) // for premultiplied textures - Gdx.gl.glBlendFuncSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // for not premultiplied textures +fun gdxBlendNormalStraightAlpha() { + gdxEnableBlend() + Gdx.gl.glBlendFuncSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // helpful links: + // - https://stackoverflow.com/questions/19674740/opengl-es2-premultiplied-vs-straight-alpha-blending#37869033 // - https://gamedev.stackexchange.com/questions/82741/normal-blend-mode-with-opengl-trouble // - https://www.andersriggelsen.dk/glblendfunc.php // - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl } -fun gdxSetBlendMul() { - gdxSetBlend() +fun gdxBlendNormalPremultAlpha() { + gdxEnableBlend() + Gdx.gl.glBlendFunc(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) + // helpful links: + // - https://stackoverflow.com/questions/19674740/opengl-es2-premultiplied-vs-straight-alpha-blending#37869033 + // - https://gamedev.stackexchange.com/questions/82741/normal-blend-mode-with-opengl-trouble + // - https://www.andersriggelsen.dk/glblendfunc.php + // - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl +} + +fun gdxBlendMul() { + gdxEnableBlend() Gdx.gl.glBlendFunc(GL20.GL_DST_COLOR, GL20.GL_ONE_MINUS_SRC_ALPHA) } @@ -532,7 +548,7 @@ object BlendMode { when (mode) { SCREEN -> blendScreen(batch) MULTIPLY -> blendMul(batch) - NORMAL -> blendNormal(batch) + NORMAL -> blendNormalStraightAlpha(batch) //MAX -> blendLightenOnly() // not supported by GLES -- use shader else -> throw Error("Unknown blend mode: $mode") } diff --git a/src/net/torvald/terrarum/TerrarumPostProcessor.kt b/src/net/torvald/terrarum/TerrarumPostProcessor.kt index 90ed3c242..00ae5df88 100644 --- a/src/net/torvald/terrarum/TerrarumPostProcessor.kt +++ b/src/net/torvald/terrarum/TerrarumPostProcessor.kt @@ -105,7 +105,7 @@ object TerrarumPostProcessor : Disposable { outFBO.inAction(camera, batch) { App.measureDebugTime("Renderer.PostProcessor") { - gdxClearAndSetBlend(.094f, .094f, .094f, 0f) + gdxClearAndEnableBlend(.094f, .094f, .094f, 0f) fbo.colorBufferTexture.setFilter( Texture.TextureFilter.Linear, diff --git a/src/net/torvald/terrarum/UIFakeGradOverlay.kt b/src/net/torvald/terrarum/UIFakeGradOverlay.kt index a470cbe79..88b8193aa 100644 --- a/src/net/torvald/terrarum/UIFakeGradOverlay.kt +++ b/src/net/torvald/terrarum/UIFakeGradOverlay.kt @@ -55,7 +55,7 @@ class UIFakeGradOverlay : UICanvas() { blendMul(batch) batch.draw(tex, 0f, 0f, App.scr.wf, App.scr.hf) - blendNormal(batch) + blendNormalStraightAlpha(batch) } override fun doOpening(delta: Float) {} @@ -90,7 +90,7 @@ class UIFakeBlurOverlay(val blurRadius: Float, val nodarken: Boolean) : UICanvas batch.color = darken Toolkit.fillArea(batch, 0, 0, width, height) - blendNormal(batch) + blendNormalStraightAlpha(batch) } } diff --git a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt index 4942116e6..146347502 100644 --- a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt +++ b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt @@ -267,7 +267,7 @@ class UIItemInventoryCatBar( if (showSideButtons) sideButtons.forEach { it.render(batch, camera) } - blendNormal(batch) + blendNormalStraightAlpha(batch) // underline diff --git a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt index 8a55a1b0a..4f1cb6d83 100644 --- a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt +++ b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt @@ -54,7 +54,7 @@ class UIItemInventoryElemSimple( private var highlightToSubCol = false override fun render(batch: SpriteBatch, camera: Camera) { - blendNormal(batch) + blendNormalStraightAlpha(batch) highlightToMainCol = customHighlightRuleMain?.invoke(this) ?: (equippedSlot != null && highlightEquippedItem) || forceHighlighted highlightToSubCol = customHighlightRule2?.invoke(this) ?: false diff --git a/src/net/torvald/terrarum/UIItemInventoryElemWide.kt b/src/net/torvald/terrarum/UIItemInventoryElemWide.kt index 71f7593ec..6ad4c6d67 100644 --- a/src/net/torvald/terrarum/UIItemInventoryElemWide.kt +++ b/src/net/torvald/terrarum/UIItemInventoryElemWide.kt @@ -79,7 +79,7 @@ class UIItemInventoryElemWide( var textHighlightNormalCol = Color.WHITE override fun render(batch: SpriteBatch, camera: Camera) { - blendNormal(batch) + blendNormalStraightAlpha(batch) highlightToMainCol = customHighlightRuleMain?.invoke(this) ?: (equippedSlot != null && highlightEquippedItem) || forceHighlighted highlightToSubCol = customHighlightRule2?.invoke(this) ?: false @@ -100,7 +100,7 @@ class UIItemInventoryElemWide( if (item != null && itemImage != null) { val amountString = amount.toItemCountText() - blendNormal(batch) + blendNormalStraightAlpha(batch) // item image batch.color = Color.WHITE diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index 0436429e9..41a070bb5 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -1695,7 +1695,7 @@ open class ActorWithBody : Actor { open fun drawGlow(batch: SpriteBatch) { if (isVisible && spriteGlow != null) { - blendNormal(batch) + blendNormalStraightAlpha(batch) drawSpriteInGoodPosition(spriteGlow!!, batch) } } diff --git a/src/net/torvald/terrarum/modulebasegame/ChunkLoadingLoadScreen.kt b/src/net/torvald/terrarum/modulebasegame/ChunkLoadingLoadScreen.kt index 251193605..cf78e4732 100644 --- a/src/net/torvald/terrarum/modulebasegame/ChunkLoadingLoadScreen.kt +++ b/src/net/torvald/terrarum/modulebasegame/ChunkLoadingLoadScreen.kt @@ -38,7 +38,7 @@ class ChunkLoadingLoadScreen(screenToBeLoaded: IngameInstance, private val world } override fun render(delta: Float) { - gdxClearAndSetBlend(.094f, .094f, .094f, 0f) + gdxClearAndEnableBlend(.094f, .094f, .094f, 0f) val drawWidth = Toolkit.drawWidth diff --git a/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt b/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt index e964b2ed9..c232a967c 100644 --- a/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt +++ b/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt @@ -241,7 +241,7 @@ object IngameRenderer : Disposable { // clear main or whatever super-FBO being used //clearBuffer() - gdxClearAndSetBlend(.64f, .754f, .84f, 0f) + gdxClearAndEnableBlend(.64f, .754f, .84f, 0f) /////////////////////////////////////////////////////////////////////// @@ -252,7 +252,7 @@ object IngameRenderer : Disposable { aTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) fboMixedOut.inAction(camera, batch) { - gdxClearAndSetBlend(0f, 0f, 0f, 0f) + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) // draw sky WeatherMixer.render(camera, batch, world) @@ -269,7 +269,7 @@ object IngameRenderer : Disposable { batch.inUse { - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.shader = shaderBlendGlow shaderBlendGlow.setUniformi("tex1", 1) batch.draw(rgbTex, @@ -287,7 +287,7 @@ object IngameRenderer : Disposable { ) { debugMode = 1 batch.inUse { - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.shader = null batch.draw(rgbTex, -0.5f * rgbTex.regionWidth * zoom + 0.5f * rgbTex.regionWidth, @@ -314,7 +314,7 @@ object IngameRenderer : Disposable { ) { debugMode = 2 batch.inUse { - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.shader = null batch.draw(aTex, -0.5f * aTex.regionWidth * zoom + 0.5f * aTex.regionWidth, @@ -348,7 +348,7 @@ object IngameRenderer : Disposable { } } - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.inUse { // it's no use applying dithering here: colours are no longer "floats" once they're written to the FBO @@ -389,7 +389,7 @@ object IngameRenderer : Disposable { } // works but some UI elements have wrong transparency -> should be fixed with Terrarum.gdxCleanAndSetBlend -- Torvald 2019-01-12 - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.color = Color.WHITE @@ -409,7 +409,7 @@ object IngameRenderer : Disposable { processKawaseBlur(lightmapFbo) - blendNormal(batch) + blendNormalStraightAlpha(batch) } /** @@ -479,14 +479,14 @@ object IngameRenderer : Disposable { setCameraPosition(0f, 0f) val (xrem, yrem) = worldCamToRenderPos() - gdxSetBlend() + gdxEnableBlend() // App.getCurrentDitherTex().bind(1) Gdx.gl.glActiveTexture(GL20.GL_TEXTURE0) // so that batch that comes next will bind any tex to it batch.inUse { - blendNormal(batch) + blendNormalStraightAlpha(batch) // draw world batch.shader = shaderDemultiply @@ -497,7 +497,7 @@ object IngameRenderer : Disposable { lightTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) if (KeyToggler.isOn(Input.Keys.F8)) - blendNormal(batch) + blendNormalStraightAlpha(batch) else blendMul(batch) @@ -522,7 +522,7 @@ object IngameRenderer : Disposable { } - blendNormal(batch) + blendNormalStraightAlpha(batch) } private fun drawToA( @@ -536,7 +536,7 @@ object IngameRenderer : Disposable { fboA.inAction(null, null) { clearBuffer() // paint black - gdxClearAndSetBlend(0f,0f,0f,1f) // solid black: so that unused area will be also black + gdxClearAndEnableBlend(0f,0f,0f,1f) // solid black: so that unused area will be also black } fboA_lightMixed.inAction(null, null) { clearBuffer() } @@ -591,7 +591,7 @@ object IngameRenderer : Disposable { lightTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) if (KeyToggler.isOn(Input.Keys.F8)) - blendNormal(batch) + blendNormalStraightAlpha(batch) else blendMul(batch) @@ -612,7 +612,7 @@ object IngameRenderer : Disposable { } - blendNormal(batch) + blendNormalStraightAlpha(batch) } private fun drawOverlayActors(actors: List?) { @@ -652,7 +652,7 @@ object IngameRenderer : Disposable { } private fun clearBuffer() { - gdxClearAndSetBlend(0f,0f,0f,0f) + gdxClearAndEnableBlend(0f,0f,0f,0f) } private fun moveCameraToWorldCoord() { diff --git a/src/net/torvald/terrarum/modulebasegame/TitleScreen.kt b/src/net/torvald/terrarum/modulebasegame/TitleScreen.kt index e9ef56cfb..9e62cee7f 100644 --- a/src/net/torvald/terrarum/modulebasegame/TitleScreen.kt +++ b/src/net/torvald/terrarum/modulebasegame/TitleScreen.kt @@ -297,7 +297,7 @@ class TitleScreen(batch: FlippingSpriteBatch) : IngameInstance(batch) { //camera.setToOrtho(true, AppLoader.terrarumAppConfig.screenWf, AppLoader.terrarumAppConfig.screenHf) // render world - gdxClearAndSetBlend(.64f, .754f, .84f, 1f) + gdxClearAndEnableBlend(.64f, .754f, .84f, 1f) if (!demoWorld.layerTerrain.ptr.destroyed) { // FIXME q&d hack to circumvent the dangling pointer issue #26 @@ -328,7 +328,7 @@ class TitleScreen(batch: FlippingSpriteBatch) : IngameInstance(batch) { private fun renderOverlayTexts() { setCameraPosition(0f, 0f) - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.shader = null batch.color = Color.LIGHT_GRAY diff --git a/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt b/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt index 5088745d0..e1d9a7ad9 100644 --- a/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt +++ b/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt @@ -55,7 +55,7 @@ class WorldgenLoadScreen(screenToBeLoaded: IngameInstance, private val worldwidt } override fun render(delta: Float) { - gdxClearAndSetBlend(.094f, .094f, .094f, 0f) + gdxClearAndEnableBlend(.094f, .094f, .094f, 0f) val drawWidth = Toolkit.drawWidth diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt index 594bf517d..cc1a26234 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt @@ -237,7 +237,7 @@ internal class UIStorageChest : UICanvas( itemListPlayer.render(batch, camera) - blendNormal(batch) + blendNormalStraightAlpha(batch) // encumbrance meter val encumbranceText = Lang["GAME_INVENTORY_ENCUMBRANCE"] diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/UICrafting.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/UICrafting.kt index d64667aca..0d0de1c12 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/UICrafting.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/UICrafting.kt @@ -465,7 +465,7 @@ class UICrafting(val full: UIInventoryFull) : UICanvas(), HasInventory { // control hints val controlHintXPos = thisOffsetX.toFloat() - blendNormal(batch) + blendNormalStraightAlpha(batch) App.fontGame.draw(batch, controlHelp, controlHintXPos, full.yEnd - 20) @@ -482,7 +482,7 @@ class UICrafting(val full: UIInventoryFull) : UICanvas(), HasInventory { else 0f App.fontGame.draw(batch, encumbranceText, encumbBarTextXPos, encumbBarYPos - 3f) // encumbrance bar background - blendNormal(batch) + blendNormalStraightAlpha(batch) val encumbCol = UIItemInventoryCellCommonRes.getHealthMeterColour(1f - encumbrancePerc, 0f, 1f) val encumbBack = encumbCol mul UIItemInventoryCellCommonRes.meterBackDarkening batch.color = encumbBack @@ -511,7 +511,7 @@ class UICrafting(val full: UIInventoryFull) : UICanvas(), HasInventory { } - blendNormal(batch) + blendNormalStraightAlpha(batch) } override fun doOpening(delta: Float) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt index faea59989..a4ec9880d 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt @@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.App import net.torvald.terrarum.Second -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas @@ -51,7 +51,7 @@ class Notification : UICanvas() { private val drawColor = Color(1f, 1f, 1f, 1f) override fun renderUI(batch: SpriteBatch, camera: Camera) { - blendNormal(batch) + blendNormalStraightAlpha(batch) drawColor.a = handler.opacity fontCol.a = handler.opacity diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt index d58341dbb..cc854045f 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt @@ -6,7 +6,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.BlockCodex import net.torvald.terrarum.ItemCodex import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha import net.torvald.terrarum.modulebasegame.BuildingMaker import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_WHITE import net.torvald.terrarum.ui.Toolkit @@ -128,7 +128,7 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() { override fun renderUI(batch: SpriteBatch, camera: Camera) { palette.forEach { it.render(batch, camera) } - blendNormal(batch) + blendNormalStraightAlpha(batch) // gaps between tabs and close button batch.color = DEFAULT_BACKGROUNDCOL diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt index 49a268beb..764b7db88 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt @@ -91,7 +91,7 @@ internal class UIInventoryCells( // control hints val controlHintXPos = full.offsetX - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.color = Color.WHITE App.fontGame.draw(batch, full.listControlHelp, controlHintXPos, full.yEnd - 20) @@ -110,7 +110,7 @@ internal class UIInventoryCells( App.fontGame.draw(batch, encumbranceText, encumbBarTextXPos, encumbBarYPos - 3f) // encumbrance bar background - blendNormal(batch) + blendNormalStraightAlpha(batch) val encumbCol = UIItemInventoryCellCommonRes.getHealthMeterColour(1f - encumbrancePerc, 0f, 1f) val encumbBack = encumbCol mul UIItemInventoryCellCommonRes.meterBackDarkening batch.color = encumbBack diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt index e516d9053..b79f08809 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt @@ -8,7 +8,7 @@ import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum.getPlayerSaveFiledesc import net.torvald.terrarum.Terrarum.getWorldSaveFiledesc -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent import net.torvald.terrarum.modulebasegame.TerrarumIngame @@ -271,7 +271,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() { } override fun renderUI(batch: SpriteBatch, camera: Camera) { - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.color = Color.WHITE screenRenders[screen](batch, camera) } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index d263d9c4a..bb0dbe7c6 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -65,7 +65,7 @@ class UIInventoryFull( fun drawBackground(batch: SpriteBatch) { batch.end() - gdxSetBlendNormal() + gdxBlendNormalStraightAlpha() if (shapeRenderer == null) { shapeRenderer = ShapeRenderer() diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt index ab13c523f..178b86a78 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt @@ -7,7 +7,6 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.FrameBuffer import com.badlogic.gdx.utils.GdxRuntimeException import net.torvald.terrarum.* -import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF import net.torvald.terrarum.blockstats.MinimapComposer import net.torvald.terrarum.blockstats.MinimapComposer.MINIMAP_TILE_HEIGHT @@ -67,7 +66,7 @@ class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() { } override fun renderUI(batch: SpriteBatch, camera: Camera) { - blendNormal(batch) + blendNormalStraightAlpha(batch) val cellOffY = INVENTORY_CELLS_OFFSET_Y() val worldWidth = INGAME.world.width @@ -145,7 +144,7 @@ class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() { minimapFBO.inActionF(minimapCamera, batch) { - gdxClearAndSetBlend(MINIMAP_SKYCOL) + gdxClearAndEnableBlend(MINIMAP_SKYCOL) batch.inUse { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt index 6de020627..bcb412aaf 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt @@ -68,7 +68,7 @@ class UIItemInventoryEquippedView( } override fun render(batch: SpriteBatch, camera: Camera) { - blendNormal(batch) + blendNormalStraightAlpha(batch) val posXDelta = posX - oldPosX itemGrid.forEach { it.posX += posXDelta } @@ -84,7 +84,7 @@ class UIItemInventoryEquippedView( // sprite INGAME.actorNowPlaying?.let { actor -> actor.sprite?.let { - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.color = SPRITE_DRAW_COL diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt index 36f90a664..f538d30e0 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt @@ -295,7 +295,7 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() { // to hide the "flipped skybox" artefact batch.end() - gdxClearAndSetBlend(.094f, .094f, .094f, 0f) + gdxClearAndEnableBlend(.094f, .094f, .094f, 0f) batch.begin() @@ -314,7 +314,7 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() { lateinit var savePixmap: Pixmap sliderFBO.inAction(camera as OrthographicCamera, batch) { - gdxClearAndSetBlend(0f, 0f, 0f, 0f) + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) setCameraPosition(batch, camera, 0f, 0f) batch.color = Color.WHITE @@ -787,7 +787,7 @@ class UIItemWorldCells( // draw thumbnail batch.color = Color.WHITE - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.draw(thumb ?: CommonResourcePool.getAsTextureRegion("terrarum-defaultsavegamethumb"), x, y, width.toFloat(), height.toFloat()) // draw gradient blendMul(batch) @@ -795,7 +795,7 @@ class UIItemWorldCells( // draw texts batch.color = highlightCol - blendNormal(batch) + blendNormalStraightAlpha(batch) // save status icon (if (saveDamaged) icons.get(1,0) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt index 4f6702075..f33bad4b3 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt @@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.App import net.torvald.terrarum.ItemCodex -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.BuildingMaker @@ -74,7 +74,7 @@ class UIPaletteSelector(val parent: BuildingMaker) : UICanvas() { override fun renderUI(batch: SpriteBatch, camera: Camera) { // draw title bar batch.color = UINSMenu.DEFAULT_TITLEBACKCOL - blendNormal(batch) + blendNormalStraightAlpha(batch) Toolkit.fillArea(batch, 0, 0, width, LINE_HEIGHT) // draw "Pal." diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt index 1206dd45d..beb2ba99d 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt @@ -141,7 +141,7 @@ class UITitleModules(val remoCon: UIRemoCon) : UICanvas() { lateinit var savePixmap: Pixmap sliderFBO.inAction(camera as OrthographicCamera, batch) { - gdxClearAndSetBlend(0f, 0f, 0f, 0f) + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) setCameraPosition(batch, camera, 0f, 0f) batch.color = Color.WHITE diff --git a/src/net/torvald/terrarum/spriteassembler/SpriteAssemblerApp.kt b/src/net/torvald/terrarum/spriteassembler/SpriteAssemblerApp.kt index 974517f53..b3de4ad65 100644 --- a/src/net/torvald/terrarum/spriteassembler/SpriteAssemblerApp.kt +++ b/src/net/torvald/terrarum/spriteassembler/SpriteAssemblerApp.kt @@ -10,7 +10,7 @@ import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.unicode.EMDASH import net.torvald.gdx.graphics.PixmapIO2 -import net.torvald.terrarum.gdxClearAndSetBlend +import net.torvald.terrarum.gdxClearAndEnableBlend import net.torvald.terrarum.inUse import java.awt.BorderLayout import java.awt.Font @@ -288,7 +288,7 @@ class SpriteAssemblerPreview: Game() { } - gdxClearAndSetBlend(bgCol) + gdxClearAndEnableBlend(bgCol) batch.inUse { diff --git a/src/net/torvald/terrarum/tests/MakeKeylayoutFile.kt b/src/net/torvald/terrarum/tests/MakeKeylayoutFile.kt index da7f34277..1c3f005a0 100644 --- a/src/net/torvald/terrarum/tests/MakeKeylayoutFile.kt +++ b/src/net/torvald/terrarum/tests/MakeKeylayoutFile.kt @@ -7,7 +7,7 @@ import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration import com.badlogic.gdx.graphics.g2d.BitmapFont import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.unicode.EMDASH -import net.torvald.terrarum.gdxClearAndSetBlend +import net.torvald.terrarum.gdxClearAndEnableBlend import net.torvald.terrarum.inUse /** @@ -101,7 +101,7 @@ class GetKeycode : Game() { override fun render() { Gdx.graphics.setTitle("Get Keycode $EMDASH F: ${Gdx.graphics.framesPerSecond}") - gdxClearAndSetBlend(.1f,.1f,.1f,1f) + gdxClearAndEnableBlend(.1f,.1f,.1f,1f) batch.inUse { font.draw(batch, "Hit a key", 10f, 20f) diff --git a/src/net/torvald/terrarum/tests/UIElemTest.kt b/src/net/torvald/terrarum/tests/UIElemTest.kt index e0c487006..57a8b9bbc 100644 --- a/src/net/torvald/terrarum/tests/UIElemTest.kt +++ b/src/net/torvald/terrarum/tests/UIElemTest.kt @@ -84,7 +84,7 @@ class UIElemTest : ApplicationAdapter() { override fun render() { - gdxClearAndSetBlend(0.1f, 0.1f, 0.1f, 1f) + gdxClearAndEnableBlend(0.1f, 0.1f, 0.1f, 1f) ui.update(Gdx.graphics.deltaTime) ui.render(batch, camera) diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt index d62829f43..6d02adfb1 100644 --- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt +++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt @@ -359,7 +359,7 @@ class BasicDebugInfoWindow : UICanvas() { Toolkit.fillArea(batch, bar_x, bar_y, bar_w, -bar_h) } } - blendNormal(batch) + blendNormalStraightAlpha(batch) } private fun drawGamepadAxis(gamepad: TerrarumController, batch: SpriteBatch, axisX: Float, axisY: Float, uiX: Int, uiY: Int) { @@ -375,10 +375,10 @@ class BasicDebugInfoWindow : UICanvas() { val deadzone = App.gamepadDeadzone - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.end() - gdxSetBlendNormal() + gdxBlendNormalStraightAlpha() Terrarum.inShapeRenderer { it.color = uiColour it.rect(uiX.toFloat(), App.scr.height - uiY.toFloat(), w, -h) diff --git a/src/net/torvald/terrarum/ui/UIItemImageButton.kt b/src/net/torvald/terrarum/ui/UIItemImageButton.kt index 0357cf622..bb246b7b4 100644 --- a/src/net/torvald/terrarum/ui/UIItemImageButton.kt +++ b/src/net/torvald/terrarum/ui/UIItemImageButton.kt @@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.BlendMode -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha /** * Created by minjaesong on 2017-07-16. @@ -62,7 +62,7 @@ open class UIItemImageButton( // draw image - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.color = if (highlighted) highlightCol else if (mouseUp) activeCol diff --git a/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt b/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt index cbb1c59c6..190fae4c3 100644 --- a/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt +++ b/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt @@ -58,7 +58,7 @@ class UIItemModuleInfoCell( private val ccDesc = App.fontGame.toColorCode(13,13,13) override fun render(batch: SpriteBatch, camera: Camera) { - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.color = Toolkit.Theme.COL_CELL_FILL Toolkit.fillArea(batch, initialX, initialY, 32, height) diff --git a/src/net/torvald/terrarum/ui/UIItemTextButton.kt b/src/net/torvald/terrarum/ui/UIItemTextButton.kt index d325632c8..bd4b80f14 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextButton.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextButton.kt @@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.App import net.torvald.terrarum.BlendMode -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha import net.torvald.terrarum.langpack.Lang /** @@ -102,7 +102,7 @@ open class UIItemTextButton( }*/ - blendNormal(batch) + blendNormalStraightAlpha(batch) if (hasBorder) { batch.color = Toolkit.Theme.COL_CELL_FILL diff --git a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt index 44b217d88..75f3a59a9 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt @@ -483,7 +483,7 @@ class UIItemTextLineInput( if (true || fboUpdateLatch) { fboUpdateLatch = false fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse { - gdxClearAndSetBlend(0f, 0f, 0f, 0f) + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) it.color = Color.WHITE diff --git a/src/net/torvald/terrarum/ui/UIItemTextSelector.kt b/src/net/torvald/terrarum/ui/UIItemTextSelector.kt index b073f8a86..5d702361d 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextSelector.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextSelector.kt @@ -8,7 +8,6 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.FrameBuffer import net.torvald.terrarum.* import net.torvald.terrarum.gameworld.fmod -import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** * @param width width of the text input where the text gets drawn, not the entire item @@ -130,7 +129,7 @@ class UIItemTextSelector( if (fboUpdateLatch) { fboUpdateLatch = false fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse { - gdxClearAndSetBlend(0f, 0f, 0f, 0f) + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) it.color = Color.WHITE val t = labelCache[selection] diff --git a/src/net/torvald/terrarum/ui/UIItemToggleButton.kt b/src/net/torvald/terrarum/ui/UIItemToggleButton.kt index 436d2fe77..81deb4532 100644 --- a/src/net/torvald/terrarum/ui/UIItemToggleButton.kt +++ b/src/net/torvald/terrarum/ui/UIItemToggleButton.kt @@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha import net.torvald.terrarum.toInt import kotlin.math.roundToInt @@ -95,7 +95,7 @@ class UIItemToggleButton( override fun render(batch: SpriteBatch, camera: Camera) { batch.color = Color.WHITE - blendNormal(batch) + blendNormalStraightAlpha(batch) batch.draw(togglerBase, posX.toFloat(), posY.toFloat()) batch.draw(togglerHandle, (posX + handlePos).toFloat(), posY.toFloat()) diff --git a/src/net/torvald/terrarum/ui/UINSMenu.kt b/src/net/torvald/terrarum/ui/UINSMenu.kt index a19999f2d..731abfee1 100644 --- a/src/net/torvald/terrarum/ui/UINSMenu.kt +++ b/src/net/torvald/terrarum/ui/UINSMenu.kt @@ -174,7 +174,7 @@ class UINSMenu( Toolkit.fillArea(batch, it.ui.posX.toFloat(), it.ui.posY.toFloat() - LINE_HEIGHT, it.ui.width.toFloat(), LINE_HEIGHT.toFloat()) batch.color = titleTextCol - blendNormal(batch) + blendNormalStraightAlpha(batch) App.fontGame.draw(batch, it.title, TEXT_OFFSETX + it.ui.posX, TEXT_OFFSETY + it.ui.posY - LINE_HEIGHT) // draw the list diff --git a/src/net/torvald/terrarum/weather/WeatherMixer.kt b/src/net/torvald/terrarum/weather/WeatherMixer.kt index dbb570b09..7bb9b2d58 100644 --- a/src/net/torvald/terrarum/weather/WeatherMixer.kt +++ b/src/net/torvald/terrarum/weather/WeatherMixer.kt @@ -186,7 +186,7 @@ internal object WeatherMixer : RNGConsumer { // draw using shaperenderer or whatever //Terrarum.textureWhiteSquare.bind(0) - gdxSetBlendNormal() + gdxBlendNormalStraightAlpha() // draw to skybox texture skyboxPixmap.setColor(colBottom) diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt index 29fd7e574..55e8ab7c8 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt @@ -207,15 +207,15 @@ internal object BlocksDrawer { } internal fun drawWall(projectionMatrix: Matrix4, drawGlow: Boolean) { - gdxSetBlendNormal() + gdxBlendNormalStraightAlpha() renderUsingBuffer(WALL, projectionMatrix, drawGlow) - gdxSetBlendMul() + gdxBlendMul() renderUsingBuffer(OCCLUSION, projectionMatrix, false) } internal fun drawTerrain(projectionMatrix: Matrix4, drawGlow: Boolean) { - gdxSetBlendNormal() + gdxBlendNormalStraightAlpha() renderUsingBuffer(TERRAIN, projectionMatrix, drawGlow) renderUsingBuffer(FLUID, projectionMatrix, drawGlow) @@ -223,14 +223,14 @@ internal object BlocksDrawer { internal fun drawFront(projectionMatrix: Matrix4) { - gdxSetBlendMul() + gdxBlendMul() // let's just not MUL on terrain, make it FLUID only... renderUsingBuffer(FLUID, projectionMatrix, false) - gdxSetBlendNormal() + gdxBlendNormalStraightAlpha() /*if (selectedWireRenderClass.isNotBlank()) { //println("Wires! draw: $drawWires") // use F10 instead diff --git a/src/net/torvald/terrarum/worlddrawer/FeaturesDrawer.kt b/src/net/torvald/terrarum/worlddrawer/FeaturesDrawer.kt index 4e1acf629..0d72289a2 100644 --- a/src/net/torvald/terrarum/worlddrawer/FeaturesDrawer.kt +++ b/src/net/torvald/terrarum/worlddrawer/FeaturesDrawer.kt @@ -7,7 +7,7 @@ import net.torvald.terrarum.App import net.torvald.terrarum.Terrarum import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF import net.torvald.terrarum.blendMul -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.blendNormalStraightAlpha import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockstats.BlockStats import net.torvald.terrarum.gameworld.GameWorld @@ -68,7 +68,7 @@ object FeaturesDrawer { (App.scr.height * if (zoom < 1) 1f / zoom else zoom).roundToInt() ) - blendNormal(batch) + blendNormalStraightAlpha(batch) } /**