mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 10:34:06 +09:00
more descriptive name for the blend-normal function because why there are two fucking standards for an alpha channel
This commit is contained in:
@@ -188,7 +188,7 @@ internal class UIHomeComputer : UICanvas(
|
|||||||
|
|
||||||
otherBatch.begin()
|
otherBatch.begin()
|
||||||
otherBatch.shader = null
|
otherBatch.shader = null
|
||||||
blendNormal(otherBatch)
|
blendNormalStraightAlpha(otherBatch)
|
||||||
otherBatch.color = Color.WHITE
|
otherBatch.color = Color.WHITE
|
||||||
otherBatch.draw(fbo.colorBufferTexture, posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
otherBatch.draw(fbo.colorBufferTexture, posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||||
otherBatch.color = Toolkit.Theme.COL_INACTIVE
|
otherBatch.color = Toolkit.Theme.COL_INACTIVE
|
||||||
|
|||||||
@@ -557,7 +557,7 @@ public class App implements ApplicationListener {
|
|||||||
|
|
||||||
|
|
||||||
FrameBufferManager.begin(renderFBO);
|
FrameBufferManager.begin(renderFBO);
|
||||||
gdxClearAndSetBlend(.094f, .094f, .094f, 0f);
|
gdxClearAndEnableBlend(.094f, .094f, .094f, 0f);
|
||||||
setCameraPosition(0, 0);
|
setCameraPosition(0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ object ErrorDisp : Screen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun render(delta: Float) {
|
override fun render(delta: Float) {
|
||||||
gdxClearAndSetBlend(.094f, .094f, .094f, 0f)
|
gdxClearAndEnableBlend(.094f, .094f, .094f, 0f)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class NoModuleDefaultTitlescreen(batch: FlippingSpriteBatch) : IngameInstance(ba
|
|||||||
genericBackdrop
|
genericBackdrop
|
||||||
|
|
||||||
override fun render(updateRate: Float) {
|
override fun render(updateRate: Float) {
|
||||||
gdxClearAndSetBlend(0f, 0f, 0f, 0f)
|
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
|
||||||
|
|
||||||
if (!init) {
|
if (!init) {
|
||||||
val lh = 28f
|
val lh = 28f
|
||||||
@@ -68,7 +68,7 @@ class NoModuleDefaultTitlescreen(batch: FlippingSpriteBatch) : IngameInstance(ba
|
|||||||
val centering = (App.scr.hf - heights.last() - App.fontGameFBO.lineHeight) / 2f
|
val centering = (App.scr.hf - heights.last() - App.fontGameFBO.lineHeight) / 2f
|
||||||
|
|
||||||
fbo.inAction(null, null) {
|
fbo.inAction(null, null) {
|
||||||
gdxClearAndSetBlend(backdrop)
|
gdxClearAndEnableBlend(backdrop)
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
wot.reversed().forEachIndexed { index, s ->
|
wot.reversed().forEachIndexed { index, s ->
|
||||||
|
|||||||
@@ -78,10 +78,10 @@ object SanicLoadScreen : LoadScreenBase() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
gdxClearAndSetBlend(.094f, .094f, .094f, 0f)
|
gdxClearAndEnableBlend(.094f, .094f, .094f, 0f)
|
||||||
|
|
||||||
textFbo.inAction(null, null) {
|
textFbo.inAction(null, null) {
|
||||||
gdxClearAndSetBlend(0f, 0f, 0f, 0f)
|
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update arrow object
|
// update arrow object
|
||||||
@@ -114,7 +114,7 @@ object SanicLoadScreen : LoadScreenBase() {
|
|||||||
App.batch.inUse {
|
App.batch.inUse {
|
||||||
|
|
||||||
|
|
||||||
blendNormal(App.batch)
|
blendNormalStraightAlpha(App.batch)
|
||||||
App.fontGame
|
App.fontGame
|
||||||
it.color = Color.WHITE
|
it.color = Color.WHITE
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@ object SanicLoadScreen : LoadScreenBase() {
|
|||||||
App.batch.inUse {
|
App.batch.inUse {
|
||||||
initViewPort(App.scr.width, App.scr.height) // dunno, no render without this
|
initViewPort(App.scr.width, App.scr.height) // dunno, no render without this
|
||||||
it.projectionMatrix = camera.combined
|
it.projectionMatrix = camera.combined
|
||||||
blendNormal(App.batch)
|
blendNormalStraightAlpha(App.batch)
|
||||||
|
|
||||||
|
|
||||||
// almost black background
|
// almost black background
|
||||||
@@ -204,7 +204,7 @@ object SanicLoadScreen : LoadScreenBase() {
|
|||||||
|
|
||||||
initViewPort(App.scr.width, App.scr.height) // dunno, no render without this
|
initViewPort(App.scr.width, App.scr.height) // dunno, no render without this
|
||||||
it.projectionMatrix = camera.combined
|
it.projectionMatrix = camera.combined
|
||||||
blendNormal(App.batch)
|
blendNormalStraightAlpha(App.batch)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -479,46 +479,62 @@ fun blendDisable(batch: SpriteBatch) {
|
|||||||
batch.disableBlending()
|
batch.disableBlending()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
fun blendNormalStraightAlpha(batch: SpriteBatch) {
|
||||||
* GLSource (foreground) must NOT have alpha premultiplied!
|
|
||||||
*/
|
|
||||||
fun blendNormal(batch: SpriteBatch) {
|
|
||||||
batch.enableBlending()
|
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)
|
||||||
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
|
|
||||||
// helpful links:
|
// 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://gamedev.stackexchange.com/questions/82741/normal-blend-mode-with-opengl-trouble
|
||||||
// - https://www.andersriggelsen.dk/glblendfunc.php
|
// - https://www.andersriggelsen.dk/glblendfunc.php
|
||||||
// - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl
|
// - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl
|
||||||
}
|
}
|
||||||
|
|
||||||
fun gdxClearAndSetBlend(color: Color) {
|
fun gdxClearAndEnableBlend(color: Color) {
|
||||||
gdxClearAndSetBlend(color.r, color.g, color.b, color.a)
|
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.glClearColor(r,g,b,a)
|
||||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
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_TEXTURE_2D)
|
||||||
Gdx.gl.glEnable(GL20.GL_BLEND)
|
Gdx.gl.glEnable(GL20.GL_BLEND)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun gdxSetBlendNormal() {
|
fun gdxBlendNormalStraightAlpha() {
|
||||||
gdxSetBlend()
|
gdxEnableBlend()
|
||||||
// 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)
|
||||||
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
|
|
||||||
// helpful links:
|
// 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://gamedev.stackexchange.com/questions/82741/normal-blend-mode-with-opengl-trouble
|
||||||
// - https://www.andersriggelsen.dk/glblendfunc.php
|
// - https://www.andersriggelsen.dk/glblendfunc.php
|
||||||
// - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl
|
// - https://stackoverflow.com/questions/45781683/how-to-get-correct-sourceover-alpha-compositing-in-sdl-with-opengl
|
||||||
}
|
}
|
||||||
|
|
||||||
fun gdxSetBlendMul() {
|
fun gdxBlendNormalPremultAlpha() {
|
||||||
gdxSetBlend()
|
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)
|
Gdx.gl.glBlendFunc(GL20.GL_DST_COLOR, GL20.GL_ONE_MINUS_SRC_ALPHA)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -532,7 +548,7 @@ object BlendMode {
|
|||||||
when (mode) {
|
when (mode) {
|
||||||
SCREEN -> blendScreen(batch)
|
SCREEN -> blendScreen(batch)
|
||||||
MULTIPLY -> blendMul(batch)
|
MULTIPLY -> blendMul(batch)
|
||||||
NORMAL -> blendNormal(batch)
|
NORMAL -> blendNormalStraightAlpha(batch)
|
||||||
//MAX -> blendLightenOnly() // not supported by GLES -- use shader
|
//MAX -> blendLightenOnly() // not supported by GLES -- use shader
|
||||||
else -> throw Error("Unknown blend mode: $mode")
|
else -> throw Error("Unknown blend mode: $mode")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ object TerrarumPostProcessor : Disposable {
|
|||||||
outFBO.inAction(camera, batch) {
|
outFBO.inAction(camera, batch) {
|
||||||
App.measureDebugTime("Renderer.PostProcessor") {
|
App.measureDebugTime("Renderer.PostProcessor") {
|
||||||
|
|
||||||
gdxClearAndSetBlend(.094f, .094f, .094f, 0f)
|
gdxClearAndEnableBlend(.094f, .094f, .094f, 0f)
|
||||||
|
|
||||||
fbo.colorBufferTexture.setFilter(
|
fbo.colorBufferTexture.setFilter(
|
||||||
Texture.TextureFilter.Linear,
|
Texture.TextureFilter.Linear,
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class UIFakeGradOverlay : UICanvas() {
|
|||||||
blendMul(batch)
|
blendMul(batch)
|
||||||
batch.draw(tex, 0f, 0f, App.scr.wf, App.scr.hf)
|
batch.draw(tex, 0f, 0f, App.scr.wf, App.scr.hf)
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doOpening(delta: Float) {}
|
override fun doOpening(delta: Float) {}
|
||||||
@@ -90,7 +90,7 @@ class UIFakeBlurOverlay(val blurRadius: Float, val nodarken: Boolean) : UICanvas
|
|||||||
batch.color = darken
|
batch.color = darken
|
||||||
Toolkit.fillArea(batch, 0, 0, width, height)
|
Toolkit.fillArea(batch, 0, 0, width, height)
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -267,7 +267,7 @@ class UIItemInventoryCatBar(
|
|||||||
if (showSideButtons) sideButtons.forEach { it.render(batch, camera) }
|
if (showSideButtons) sideButtons.forEach { it.render(batch, camera) }
|
||||||
|
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
|
|
||||||
// underline
|
// underline
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ class UIItemInventoryElemSimple(
|
|||||||
private var highlightToSubCol = false
|
private var highlightToSubCol = false
|
||||||
|
|
||||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
highlightToMainCol = customHighlightRuleMain?.invoke(this) ?: (equippedSlot != null && highlightEquippedItem) || forceHighlighted
|
highlightToMainCol = customHighlightRuleMain?.invoke(this) ?: (equippedSlot != null && highlightEquippedItem) || forceHighlighted
|
||||||
highlightToSubCol = customHighlightRule2?.invoke(this) ?: false
|
highlightToSubCol = customHighlightRule2?.invoke(this) ?: false
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ class UIItemInventoryElemWide(
|
|||||||
var textHighlightNormalCol = Color.WHITE
|
var textHighlightNormalCol = Color.WHITE
|
||||||
|
|
||||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
highlightToMainCol = customHighlightRuleMain?.invoke(this) ?: (equippedSlot != null && highlightEquippedItem) || forceHighlighted
|
highlightToMainCol = customHighlightRuleMain?.invoke(this) ?: (equippedSlot != null && highlightEquippedItem) || forceHighlighted
|
||||||
highlightToSubCol = customHighlightRule2?.invoke(this) ?: false
|
highlightToSubCol = customHighlightRule2?.invoke(this) ?: false
|
||||||
@@ -100,7 +100,7 @@ class UIItemInventoryElemWide(
|
|||||||
if (item != null && itemImage != null) {
|
if (item != null && itemImage != null) {
|
||||||
val amountString = amount.toItemCountText()
|
val amountString = amount.toItemCountText()
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
// item image
|
// item image
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
|
|||||||
@@ -1695,7 +1695,7 @@ open class ActorWithBody : Actor {
|
|||||||
|
|
||||||
open fun drawGlow(batch: SpriteBatch) {
|
open fun drawGlow(batch: SpriteBatch) {
|
||||||
if (isVisible && spriteGlow != null) {
|
if (isVisible && spriteGlow != null) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
drawSpriteInGoodPosition(spriteGlow!!, batch)
|
drawSpriteInGoodPosition(spriteGlow!!, batch)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class ChunkLoadingLoadScreen(screenToBeLoaded: IngameInstance, private val world
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun render(delta: Float) {
|
override fun render(delta: Float) {
|
||||||
gdxClearAndSetBlend(.094f, .094f, .094f, 0f)
|
gdxClearAndEnableBlend(.094f, .094f, .094f, 0f)
|
||||||
|
|
||||||
val drawWidth = Toolkit.drawWidth
|
val drawWidth = Toolkit.drawWidth
|
||||||
|
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ object IngameRenderer : Disposable {
|
|||||||
|
|
||||||
// clear main or whatever super-FBO being used
|
// clear main or whatever super-FBO being used
|
||||||
//clearBuffer()
|
//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)
|
aTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
||||||
|
|
||||||
fboMixedOut.inAction(camera, batch) {
|
fboMixedOut.inAction(camera, batch) {
|
||||||
gdxClearAndSetBlend(0f, 0f, 0f, 0f)
|
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
|
||||||
|
|
||||||
// draw sky
|
// draw sky
|
||||||
WeatherMixer.render(camera, batch, world)
|
WeatherMixer.render(camera, batch, world)
|
||||||
@@ -269,7 +269,7 @@ object IngameRenderer : Disposable {
|
|||||||
|
|
||||||
|
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.shader = shaderBlendGlow
|
batch.shader = shaderBlendGlow
|
||||||
shaderBlendGlow.setUniformi("tex1", 1)
|
shaderBlendGlow.setUniformi("tex1", 1)
|
||||||
batch.draw(rgbTex,
|
batch.draw(rgbTex,
|
||||||
@@ -287,7 +287,7 @@ object IngameRenderer : Disposable {
|
|||||||
) {
|
) {
|
||||||
debugMode = 1
|
debugMode = 1
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.shader = null
|
batch.shader = null
|
||||||
batch.draw(rgbTex,
|
batch.draw(rgbTex,
|
||||||
-0.5f * rgbTex.regionWidth * zoom + 0.5f * rgbTex.regionWidth,
|
-0.5f * rgbTex.regionWidth * zoom + 0.5f * rgbTex.regionWidth,
|
||||||
@@ -314,7 +314,7 @@ object IngameRenderer : Disposable {
|
|||||||
) {
|
) {
|
||||||
debugMode = 2
|
debugMode = 2
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.shader = null
|
batch.shader = null
|
||||||
batch.draw(aTex,
|
batch.draw(aTex,
|
||||||
-0.5f * aTex.regionWidth * zoom + 0.5f * aTex.regionWidth,
|
-0.5f * aTex.regionWidth * zoom + 0.5f * aTex.regionWidth,
|
||||||
@@ -348,7 +348,7 @@ object IngameRenderer : Disposable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
// it's no use applying dithering here: colours are no longer "floats" once they're written to the FBO
|
// 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
|
// 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
|
batch.color = Color.WHITE
|
||||||
|
|
||||||
|
|
||||||
@@ -409,7 +409,7 @@ object IngameRenderer : Disposable {
|
|||||||
processKawaseBlur(lightmapFbo)
|
processKawaseBlur(lightmapFbo)
|
||||||
|
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -479,14 +479,14 @@ object IngameRenderer : Disposable {
|
|||||||
setCameraPosition(0f, 0f)
|
setCameraPosition(0f, 0f)
|
||||||
val (xrem, yrem) = worldCamToRenderPos()
|
val (xrem, yrem) = worldCamToRenderPos()
|
||||||
|
|
||||||
gdxSetBlend()
|
gdxEnableBlend()
|
||||||
|
|
||||||
// App.getCurrentDitherTex().bind(1)
|
// App.getCurrentDitherTex().bind(1)
|
||||||
Gdx.gl.glActiveTexture(GL20.GL_TEXTURE0) // so that batch that comes next will bind any tex to it
|
Gdx.gl.glActiveTexture(GL20.GL_TEXTURE0) // so that batch that comes next will bind any tex to it
|
||||||
|
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
// draw world
|
// draw world
|
||||||
batch.shader = shaderDemultiply
|
batch.shader = shaderDemultiply
|
||||||
@@ -497,7 +497,7 @@ object IngameRenderer : Disposable {
|
|||||||
lightTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
lightTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
||||||
|
|
||||||
if (KeyToggler.isOn(Input.Keys.F8))
|
if (KeyToggler.isOn(Input.Keys.F8))
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
else
|
else
|
||||||
blendMul(batch)
|
blendMul(batch)
|
||||||
|
|
||||||
@@ -522,7 +522,7 @@ object IngameRenderer : Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun drawToA(
|
private fun drawToA(
|
||||||
@@ -536,7 +536,7 @@ object IngameRenderer : Disposable {
|
|||||||
fboA.inAction(null, null) {
|
fboA.inAction(null, null) {
|
||||||
clearBuffer()
|
clearBuffer()
|
||||||
// paint black
|
// 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() }
|
fboA_lightMixed.inAction(null, null) { clearBuffer() }
|
||||||
|
|
||||||
@@ -591,7 +591,7 @@ object IngameRenderer : Disposable {
|
|||||||
lightTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
lightTex.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
||||||
|
|
||||||
if (KeyToggler.isOn(Input.Keys.F8))
|
if (KeyToggler.isOn(Input.Keys.F8))
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
else
|
else
|
||||||
blendMul(batch)
|
blendMul(batch)
|
||||||
|
|
||||||
@@ -612,7 +612,7 @@ object IngameRenderer : Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun drawOverlayActors(actors: List<ActorWithBody>?) {
|
private fun drawOverlayActors(actors: List<ActorWithBody>?) {
|
||||||
@@ -652,7 +652,7 @@ object IngameRenderer : Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun clearBuffer() {
|
private fun clearBuffer() {
|
||||||
gdxClearAndSetBlend(0f,0f,0f,0f)
|
gdxClearAndEnableBlend(0f,0f,0f,0f)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun moveCameraToWorldCoord() {
|
private fun moveCameraToWorldCoord() {
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ class TitleScreen(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
|||||||
//camera.setToOrtho(true, AppLoader.terrarumAppConfig.screenWf, AppLoader.terrarumAppConfig.screenHf)
|
//camera.setToOrtho(true, AppLoader.terrarumAppConfig.screenWf, AppLoader.terrarumAppConfig.screenHf)
|
||||||
|
|
||||||
// render world
|
// 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
|
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() {
|
private fun renderOverlayTexts() {
|
||||||
setCameraPosition(0f, 0f)
|
setCameraPosition(0f, 0f)
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.shader = null
|
batch.shader = null
|
||||||
|
|
||||||
batch.color = Color.LIGHT_GRAY
|
batch.color = Color.LIGHT_GRAY
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class WorldgenLoadScreen(screenToBeLoaded: IngameInstance, private val worldwidt
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun render(delta: Float) {
|
override fun render(delta: Float) {
|
||||||
gdxClearAndSetBlend(.094f, .094f, .094f, 0f)
|
gdxClearAndEnableBlend(.094f, .094f, .094f, 0f)
|
||||||
|
|
||||||
val drawWidth = Toolkit.drawWidth
|
val drawWidth = Toolkit.drawWidth
|
||||||
|
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ internal class UIStorageChest : UICanvas(
|
|||||||
itemListPlayer.render(batch, camera)
|
itemListPlayer.render(batch, camera)
|
||||||
|
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
// encumbrance meter
|
// encumbrance meter
|
||||||
val encumbranceText = Lang["GAME_INVENTORY_ENCUMBRANCE"]
|
val encumbranceText = Lang["GAME_INVENTORY_ENCUMBRANCE"]
|
||||||
|
|||||||
@@ -465,7 +465,7 @@ class UICrafting(val full: UIInventoryFull) : UICanvas(), HasInventory {
|
|||||||
|
|
||||||
// control hints
|
// control hints
|
||||||
val controlHintXPos = thisOffsetX.toFloat()
|
val controlHintXPos = thisOffsetX.toFloat()
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
App.fontGame.draw(batch, controlHelp, controlHintXPos, full.yEnd - 20)
|
App.fontGame.draw(batch, controlHelp, controlHintXPos, full.yEnd - 20)
|
||||||
|
|
||||||
|
|
||||||
@@ -482,7 +482,7 @@ class UICrafting(val full: UIInventoryFull) : UICanvas(), HasInventory {
|
|||||||
else 0f
|
else 0f
|
||||||
App.fontGame.draw(batch, encumbranceText, encumbBarTextXPos, encumbBarYPos - 3f)
|
App.fontGame.draw(batch, encumbranceText, encumbBarTextXPos, encumbBarYPos - 3f)
|
||||||
// encumbrance bar background
|
// encumbrance bar background
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
val encumbCol = UIItemInventoryCellCommonRes.getHealthMeterColour(1f - encumbrancePerc, 0f, 1f)
|
val encumbCol = UIItemInventoryCellCommonRes.getHealthMeterColour(1f - encumbrancePerc, 0f, 1f)
|
||||||
val encumbBack = encumbCol mul UIItemInventoryCellCommonRes.meterBackDarkening
|
val encumbBack = encumbCol mul UIItemInventoryCellCommonRes.meterBackDarkening
|
||||||
batch.color = encumbBack
|
batch.color = encumbBack
|
||||||
@@ -511,7 +511,7 @@ class UICrafting(val full: UIInventoryFull) : UICanvas(), HasInventory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doOpening(delta: Float) {
|
override fun doOpening(delta: Float) {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.App
|
import net.torvald.terrarum.App
|
||||||
import net.torvald.terrarum.Second
|
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.Toolkit
|
||||||
import net.torvald.terrarum.ui.UICanvas
|
import net.torvald.terrarum.ui.UICanvas
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ class Notification : UICanvas() {
|
|||||||
private val drawColor = Color(1f, 1f, 1f, 1f)
|
private val drawColor = Color(1f, 1f, 1f, 1f)
|
||||||
|
|
||||||
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
drawColor.a = handler.opacity
|
drawColor.a = handler.opacity
|
||||||
fontCol.a = handler.opacity
|
fontCol.a = handler.opacity
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
|||||||
import net.torvald.terrarum.BlockCodex
|
import net.torvald.terrarum.BlockCodex
|
||||||
import net.torvald.terrarum.ItemCodex
|
import net.torvald.terrarum.ItemCodex
|
||||||
import net.torvald.terrarum.Terrarum
|
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.BuildingMaker
|
||||||
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_WHITE
|
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_WHITE
|
||||||
import net.torvald.terrarum.ui.Toolkit
|
import net.torvald.terrarum.ui.Toolkit
|
||||||
@@ -128,7 +128,7 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() {
|
|||||||
|
|
||||||
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
||||||
palette.forEach { it.render(batch, camera) }
|
palette.forEach { it.render(batch, camera) }
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
// gaps between tabs and close button
|
// gaps between tabs and close button
|
||||||
batch.color = DEFAULT_BACKGROUNDCOL
|
batch.color = DEFAULT_BACKGROUNDCOL
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ internal class UIInventoryCells(
|
|||||||
|
|
||||||
// control hints
|
// control hints
|
||||||
val controlHintXPos = full.offsetX
|
val controlHintXPos = full.offsetX
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
App.fontGame.draw(batch, full.listControlHelp, controlHintXPos, full.yEnd - 20)
|
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)
|
App.fontGame.draw(batch, encumbranceText, encumbBarTextXPos, encumbBarYPos - 3f)
|
||||||
|
|
||||||
// encumbrance bar background
|
// encumbrance bar background
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
val encumbCol = UIItemInventoryCellCommonRes.getHealthMeterColour(1f - encumbrancePerc, 0f, 1f)
|
val encumbCol = UIItemInventoryCellCommonRes.getHealthMeterColour(1f - encumbrancePerc, 0f, 1f)
|
||||||
val encumbBack = encumbCol mul UIItemInventoryCellCommonRes.meterBackDarkening
|
val encumbBack = encumbCol mul UIItemInventoryCellCommonRes.meterBackDarkening
|
||||||
batch.color = encumbBack
|
batch.color = encumbBack
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import net.torvald.terrarum.App.printdbg
|
|||||||
import net.torvald.terrarum.INGAME
|
import net.torvald.terrarum.INGAME
|
||||||
import net.torvald.terrarum.Terrarum.getPlayerSaveFiledesc
|
import net.torvald.terrarum.Terrarum.getPlayerSaveFiledesc
|
||||||
import net.torvald.terrarum.Terrarum.getWorldSaveFiledesc
|
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.gameactors.AVKey
|
||||||
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
@@ -271,7 +271,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
screenRenders[screen](batch, camera)
|
screenRenders[screen](batch, camera)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ class UIInventoryFull(
|
|||||||
|
|
||||||
fun drawBackground(batch: SpriteBatch) {
|
fun drawBackground(batch: SpriteBatch) {
|
||||||
batch.end()
|
batch.end()
|
||||||
gdxSetBlendNormal()
|
gdxBlendNormalStraightAlpha()
|
||||||
|
|
||||||
if (shapeRenderer == null) {
|
if (shapeRenderer == null) {
|
||||||
shapeRenderer = ShapeRenderer()
|
shapeRenderer = ShapeRenderer()
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
|||||||
import com.badlogic.gdx.graphics.glutils.FrameBuffer
|
import com.badlogic.gdx.graphics.glutils.FrameBuffer
|
||||||
import com.badlogic.gdx.utils.GdxRuntimeException
|
import com.badlogic.gdx.utils.GdxRuntimeException
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.App.printdbg
|
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
||||||
import net.torvald.terrarum.blockstats.MinimapComposer
|
import net.torvald.terrarum.blockstats.MinimapComposer
|
||||||
import net.torvald.terrarum.blockstats.MinimapComposer.MINIMAP_TILE_HEIGHT
|
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) {
|
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
val cellOffY = INVENTORY_CELLS_OFFSET_Y()
|
val cellOffY = INVENTORY_CELLS_OFFSET_Y()
|
||||||
val worldWidth = INGAME.world.width
|
val worldWidth = INGAME.world.width
|
||||||
|
|
||||||
@@ -145,7 +144,7 @@ class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() {
|
|||||||
|
|
||||||
|
|
||||||
minimapFBO.inActionF(minimapCamera, batch) {
|
minimapFBO.inActionF(minimapCamera, batch) {
|
||||||
gdxClearAndSetBlend(MINIMAP_SKYCOL)
|
gdxClearAndEnableBlend(MINIMAP_SKYCOL)
|
||||||
|
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class UIItemInventoryEquippedView(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
val posXDelta = posX - oldPosX
|
val posXDelta = posX - oldPosX
|
||||||
itemGrid.forEach { it.posX += posXDelta }
|
itemGrid.forEach { it.posX += posXDelta }
|
||||||
@@ -84,7 +84,7 @@ class UIItemInventoryEquippedView(
|
|||||||
// sprite
|
// sprite
|
||||||
INGAME.actorNowPlaying?.let { actor ->
|
INGAME.actorNowPlaying?.let { actor ->
|
||||||
actor.sprite?.let {
|
actor.sprite?.let {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
batch.color = SPRITE_DRAW_COL
|
batch.color = SPRITE_DRAW_COL
|
||||||
|
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() {
|
|||||||
// to hide the "flipped skybox" artefact
|
// to hide the "flipped skybox" artefact
|
||||||
batch.end()
|
batch.end()
|
||||||
|
|
||||||
gdxClearAndSetBlend(.094f, .094f, .094f, 0f)
|
gdxClearAndEnableBlend(.094f, .094f, .094f, 0f)
|
||||||
|
|
||||||
batch.begin()
|
batch.begin()
|
||||||
|
|
||||||
@@ -314,7 +314,7 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() {
|
|||||||
|
|
||||||
lateinit var savePixmap: Pixmap
|
lateinit var savePixmap: Pixmap
|
||||||
sliderFBO.inAction(camera as OrthographicCamera, batch) {
|
sliderFBO.inAction(camera as OrthographicCamera, batch) {
|
||||||
gdxClearAndSetBlend(0f, 0f, 0f, 0f)
|
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
|
||||||
|
|
||||||
setCameraPosition(batch, camera, 0f, 0f)
|
setCameraPosition(batch, camera, 0f, 0f)
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
@@ -787,7 +787,7 @@ class UIItemWorldCells(
|
|||||||
|
|
||||||
// draw thumbnail
|
// draw thumbnail
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.draw(thumb ?: CommonResourcePool.getAsTextureRegion("terrarum-defaultsavegamethumb"), x, y, width.toFloat(), height.toFloat())
|
batch.draw(thumb ?: CommonResourcePool.getAsTextureRegion("terrarum-defaultsavegamethumb"), x, y, width.toFloat(), height.toFloat())
|
||||||
// draw gradient
|
// draw gradient
|
||||||
blendMul(batch)
|
blendMul(batch)
|
||||||
@@ -795,7 +795,7 @@ class UIItemWorldCells(
|
|||||||
|
|
||||||
// draw texts
|
// draw texts
|
||||||
batch.color = highlightCol
|
batch.color = highlightCol
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
// save status icon
|
// save status icon
|
||||||
(if (saveDamaged) icons.get(1,0)
|
(if (saveDamaged) icons.get(1,0)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.Texture
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.App
|
import net.torvald.terrarum.App
|
||||||
import net.torvald.terrarum.ItemCodex
|
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.blockproperties.Block
|
||||||
import net.torvald.terrarum.gameitems.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.modulebasegame.BuildingMaker
|
import net.torvald.terrarum.modulebasegame.BuildingMaker
|
||||||
@@ -74,7 +74,7 @@ class UIPaletteSelector(val parent: BuildingMaker) : UICanvas() {
|
|||||||
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
||||||
// draw title bar
|
// draw title bar
|
||||||
batch.color = UINSMenu.DEFAULT_TITLEBACKCOL
|
batch.color = UINSMenu.DEFAULT_TITLEBACKCOL
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
Toolkit.fillArea(batch, 0, 0, width, LINE_HEIGHT)
|
Toolkit.fillArea(batch, 0, 0, width, LINE_HEIGHT)
|
||||||
|
|
||||||
// draw "Pal."
|
// draw "Pal."
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ class UITitleModules(val remoCon: UIRemoCon) : UICanvas() {
|
|||||||
|
|
||||||
lateinit var savePixmap: Pixmap
|
lateinit var savePixmap: Pixmap
|
||||||
sliderFBO.inAction(camera as OrthographicCamera, batch) {
|
sliderFBO.inAction(camera as OrthographicCamera, batch) {
|
||||||
gdxClearAndSetBlend(0f, 0f, 0f, 0f)
|
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
|
||||||
|
|
||||||
setCameraPosition(batch, camera, 0f, 0f)
|
setCameraPosition(batch, camera, 0f, 0f)
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.badlogic.gdx.graphics.Texture
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.unicode.EMDASH
|
import net.torvald.unicode.EMDASH
|
||||||
import net.torvald.gdx.graphics.PixmapIO2
|
import net.torvald.gdx.graphics.PixmapIO2
|
||||||
import net.torvald.terrarum.gdxClearAndSetBlend
|
import net.torvald.terrarum.gdxClearAndEnableBlend
|
||||||
import net.torvald.terrarum.inUse
|
import net.torvald.terrarum.inUse
|
||||||
import java.awt.BorderLayout
|
import java.awt.BorderLayout
|
||||||
import java.awt.Font
|
import java.awt.Font
|
||||||
@@ -288,7 +288,7 @@ class SpriteAssemblerPreview: Game() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
gdxClearAndSetBlend(bgCol)
|
gdxClearAndEnableBlend(bgCol)
|
||||||
|
|
||||||
|
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
|
|||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont
|
import com.badlogic.gdx.graphics.g2d.BitmapFont
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.unicode.EMDASH
|
import net.torvald.unicode.EMDASH
|
||||||
import net.torvald.terrarum.gdxClearAndSetBlend
|
import net.torvald.terrarum.gdxClearAndEnableBlend
|
||||||
import net.torvald.terrarum.inUse
|
import net.torvald.terrarum.inUse
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,7 +101,7 @@ class GetKeycode : Game() {
|
|||||||
override fun render() {
|
override fun render() {
|
||||||
Gdx.graphics.setTitle("Get Keycode $EMDASH F: ${Gdx.graphics.framesPerSecond}")
|
Gdx.graphics.setTitle("Get Keycode $EMDASH F: ${Gdx.graphics.framesPerSecond}")
|
||||||
|
|
||||||
gdxClearAndSetBlend(.1f,.1f,.1f,1f)
|
gdxClearAndEnableBlend(.1f,.1f,.1f,1f)
|
||||||
|
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
font.draw(batch, "Hit a key", 10f, 20f)
|
font.draw(batch, "Hit a key", 10f, 20f)
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class UIElemTest : ApplicationAdapter() {
|
|||||||
|
|
||||||
|
|
||||||
override fun render() {
|
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.update(Gdx.graphics.deltaTime)
|
||||||
ui.render(batch, camera)
|
ui.render(batch, camera)
|
||||||
|
|||||||
@@ -359,7 +359,7 @@ class BasicDebugInfoWindow : UICanvas() {
|
|||||||
Toolkit.fillArea(batch, bar_x, bar_y, bar_w, -bar_h)
|
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) {
|
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
|
val deadzone = App.gamepadDeadzone
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
batch.end()
|
batch.end()
|
||||||
gdxSetBlendNormal()
|
gdxBlendNormalStraightAlpha()
|
||||||
Terrarum.inShapeRenderer {
|
Terrarum.inShapeRenderer {
|
||||||
it.color = uiColour
|
it.color = uiColour
|
||||||
it.rect(uiX.toFloat(), App.scr.height - uiY.toFloat(), w, -h)
|
it.rect(uiX.toFloat(), App.scr.height - uiY.toFloat(), w, -h)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.terrarum.BlendMode
|
import net.torvald.terrarum.BlendMode
|
||||||
import net.torvald.terrarum.blendNormal
|
import net.torvald.terrarum.blendNormalStraightAlpha
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by minjaesong on 2017-07-16.
|
* Created by minjaesong on 2017-07-16.
|
||||||
@@ -62,7 +62,7 @@ open class UIItemImageButton(
|
|||||||
|
|
||||||
|
|
||||||
// draw image
|
// draw image
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
batch.color = if (highlighted) highlightCol
|
batch.color = if (highlighted) highlightCol
|
||||||
else if (mouseUp) activeCol
|
else if (mouseUp) activeCol
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class UIItemModuleInfoCell(
|
|||||||
private val ccDesc = App.fontGame.toColorCode(13,13,13)
|
private val ccDesc = App.fontGame.toColorCode(13,13,13)
|
||||||
|
|
||||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
batch.color = Toolkit.Theme.COL_CELL_FILL
|
batch.color = Toolkit.Theme.COL_CELL_FILL
|
||||||
Toolkit.fillArea(batch, initialX, initialY, 32, height)
|
Toolkit.fillArea(batch, initialX, initialY, 32, height)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.App
|
import net.torvald.terrarum.App
|
||||||
import net.torvald.terrarum.BlendMode
|
import net.torvald.terrarum.BlendMode
|
||||||
import net.torvald.terrarum.blendNormal
|
import net.torvald.terrarum.blendNormalStraightAlpha
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -102,7 +102,7 @@ open class UIItemTextButton(
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
if (hasBorder) {
|
if (hasBorder) {
|
||||||
batch.color = Toolkit.Theme.COL_CELL_FILL
|
batch.color = Toolkit.Theme.COL_CELL_FILL
|
||||||
|
|||||||
@@ -483,7 +483,7 @@ class UIItemTextLineInput(
|
|||||||
if (true || fboUpdateLatch) {
|
if (true || fboUpdateLatch) {
|
||||||
fboUpdateLatch = false
|
fboUpdateLatch = false
|
||||||
fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse {
|
fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse {
|
||||||
gdxClearAndSetBlend(0f, 0f, 0f, 0f)
|
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
|
||||||
|
|
||||||
it.color = Color.WHITE
|
it.color = Color.WHITE
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
|||||||
import com.badlogic.gdx.graphics.glutils.FrameBuffer
|
import com.badlogic.gdx.graphics.glutils.FrameBuffer
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.gameworld.fmod
|
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
|
* @param width width of the text input where the text gets drawn, not the entire item
|
||||||
@@ -130,7 +129,7 @@ class UIItemTextSelector(
|
|||||||
if (fboUpdateLatch) {
|
if (fboUpdateLatch) {
|
||||||
fboUpdateLatch = false
|
fboUpdateLatch = false
|
||||||
fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse {
|
fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse {
|
||||||
gdxClearAndSetBlend(0f, 0f, 0f, 0f)
|
gdxClearAndEnableBlend(0f, 0f, 0f, 0f)
|
||||||
|
|
||||||
it.color = Color.WHITE
|
it.color = Color.WHITE
|
||||||
val t = labelCache[selection]
|
val t = labelCache[selection]
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.Texture
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.terrarum.CommonResourcePool
|
import net.torvald.terrarum.CommonResourcePool
|
||||||
import net.torvald.terrarum.blendNormal
|
import net.torvald.terrarum.blendNormalStraightAlpha
|
||||||
import net.torvald.terrarum.toInt
|
import net.torvald.terrarum.toInt
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ class UIItemToggleButton(
|
|||||||
|
|
||||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
|
|
||||||
batch.draw(togglerBase, posX.toFloat(), posY.toFloat())
|
batch.draw(togglerBase, posX.toFloat(), posY.toFloat())
|
||||||
batch.draw(togglerHandle, (posX + handlePos).toFloat(), posY.toFloat())
|
batch.draw(togglerHandle, (posX + handlePos).toFloat(), posY.toFloat())
|
||||||
|
|||||||
@@ -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())
|
Toolkit.fillArea(batch, it.ui.posX.toFloat(), it.ui.posY.toFloat() - LINE_HEIGHT, it.ui.width.toFloat(), LINE_HEIGHT.toFloat())
|
||||||
|
|
||||||
batch.color = titleTextCol
|
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)
|
App.fontGame.draw(batch, it.title, TEXT_OFFSETX + it.ui.posX, TEXT_OFFSETY + it.ui.posY - LINE_HEIGHT)
|
||||||
|
|
||||||
// draw the list
|
// draw the list
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ internal object WeatherMixer : RNGConsumer {
|
|||||||
// draw using shaperenderer or whatever
|
// draw using shaperenderer or whatever
|
||||||
|
|
||||||
//Terrarum.textureWhiteSquare.bind(0)
|
//Terrarum.textureWhiteSquare.bind(0)
|
||||||
gdxSetBlendNormal()
|
gdxBlendNormalStraightAlpha()
|
||||||
|
|
||||||
// draw to skybox texture
|
// draw to skybox texture
|
||||||
skyboxPixmap.setColor(colBottom)
|
skyboxPixmap.setColor(colBottom)
|
||||||
|
|||||||
@@ -207,15 +207,15 @@ internal object BlocksDrawer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun drawWall(projectionMatrix: Matrix4, drawGlow: Boolean) {
|
internal fun drawWall(projectionMatrix: Matrix4, drawGlow: Boolean) {
|
||||||
gdxSetBlendNormal()
|
gdxBlendNormalStraightAlpha()
|
||||||
renderUsingBuffer(WALL, projectionMatrix, drawGlow)
|
renderUsingBuffer(WALL, projectionMatrix, drawGlow)
|
||||||
|
|
||||||
gdxSetBlendMul()
|
gdxBlendMul()
|
||||||
renderUsingBuffer(OCCLUSION, projectionMatrix, false)
|
renderUsingBuffer(OCCLUSION, projectionMatrix, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun drawTerrain(projectionMatrix: Matrix4, drawGlow: Boolean) {
|
internal fun drawTerrain(projectionMatrix: Matrix4, drawGlow: Boolean) {
|
||||||
gdxSetBlendNormal()
|
gdxBlendNormalStraightAlpha()
|
||||||
|
|
||||||
renderUsingBuffer(TERRAIN, projectionMatrix, drawGlow)
|
renderUsingBuffer(TERRAIN, projectionMatrix, drawGlow)
|
||||||
renderUsingBuffer(FLUID, projectionMatrix, drawGlow)
|
renderUsingBuffer(FLUID, projectionMatrix, drawGlow)
|
||||||
@@ -223,14 +223,14 @@ internal object BlocksDrawer {
|
|||||||
|
|
||||||
|
|
||||||
internal fun drawFront(projectionMatrix: Matrix4) {
|
internal fun drawFront(projectionMatrix: Matrix4) {
|
||||||
gdxSetBlendMul()
|
gdxBlendMul()
|
||||||
|
|
||||||
// let's just not MUL on terrain, make it FLUID only...
|
// let's just not MUL on terrain, make it FLUID only...
|
||||||
renderUsingBuffer(FLUID, projectionMatrix, false)
|
renderUsingBuffer(FLUID, projectionMatrix, false)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gdxSetBlendNormal()
|
gdxBlendNormalStraightAlpha()
|
||||||
|
|
||||||
/*if (selectedWireRenderClass.isNotBlank()) {
|
/*if (selectedWireRenderClass.isNotBlank()) {
|
||||||
//println("Wires! draw: $drawWires") // use F10 instead
|
//println("Wires! draw: $drawWires") // use F10 instead
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import net.torvald.terrarum.App
|
|||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
||||||
import net.torvald.terrarum.blendMul
|
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.blockproperties.Block
|
||||||
import net.torvald.terrarum.blockstats.BlockStats
|
import net.torvald.terrarum.blockstats.BlockStats
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
@@ -68,7 +68,7 @@ object FeaturesDrawer {
|
|||||||
(App.scr.height * if (zoom < 1) 1f / zoom else zoom).roundToInt()
|
(App.scr.height * if (zoom < 1) 1f / zoom else zoom).roundToInt()
|
||||||
)
|
)
|
||||||
|
|
||||||
blendNormal(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user