screen zooming, temporarily toggle with Z key

This commit is contained in:
minjaesong
2019-08-11 05:42:04 +09:00
parent 08c18caa25
commit 419773550a
11 changed files with 61 additions and 17 deletions

View File

@@ -198,6 +198,8 @@ object IngameRenderer : Disposable {
//renderingParticleCount = (particlesContainer?.buffer?.map { (!it.flagDespawn).toInt() } ?: listOf(0)).sum()
renderingUIsCount = ((uisToDraw?.map { (it?.isVisible ?: false).toInt() }) ?: listOf(0)).sum()
val zoom = Terrarum.ingame?.screenZoom ?: 1f
if (uisToDraw != null) {
uiListToDraw = uisToDraw
@@ -236,6 +238,8 @@ object IngameRenderer : Disposable {
val rgbTex = fboRGB_lightMixed.colorBufferTexture
val aTex = fboA_lightMixed.colorBufferTexture
rgbTex.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
aTex.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
// normal behaviour
if (!KeyToggler.isOn(Input.Keys.F6) &&
@@ -250,11 +254,11 @@ object IngameRenderer : Disposable {
blendNormal(batch)
batch.shader = shaderBlendGlow
shaderBlendGlow.setUniformi("tex1", 1)
batch.draw(rgbTex, 0f, 0f)
batch.draw(rgbTex, 0f, 0f, rgbTex.width * zoom, rgbTex.height * zoom)
}
// definitely something is not blended correctly
// blending is correct... somewhat. Alpha must be premultiplied
}
// something about RGB
else if (KeyToggler.isOn(Input.Keys.F6) &&
@@ -264,7 +268,7 @@ object IngameRenderer : Disposable {
batch.inUse {
blendNormal(batch)
batch.shader = null
batch.draw(rgbTex, 0f, 0f)
batch.draw(rgbTex, 0f, 0f, rgbTex.width * zoom, rgbTex.height * zoom)
// indicator
@@ -287,7 +291,7 @@ object IngameRenderer : Disposable {
batch.inUse {
blendNormal(batch)
batch.shader = null
batch.draw(aTex, 0f, 0f)
batch.draw(aTex, 0f, 0f, aTex.width * zoom, aTex.height * zoom)
// indicator

View File

@@ -12,9 +12,9 @@ import net.torvald.terrarum.*
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gamecontroller.KeyToggler
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.IngameRenderer
import net.torvald.terrarum.modulebasegame.RNGConsumer
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.ParticleMegaRain
import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension
import net.torvald.terrarum.modulebasegame.worldgenerator.WorldGenerator
@@ -161,6 +161,7 @@ internal object WeatherMixer : RNGConsumer {
IngameRenderer.shaderSkyboxFill.setUniformf("bottomColor", bottomCol.r, bottomCol.g, bottomCol.b)
IngameRenderer.shaderSkyboxFill.setUniformf("parallax", parallax.coerceIn(-1f, 1f))
IngameRenderer.shaderSkyboxFill.setUniformf("parallax_size", 1f/3f)
IngameRenderer.shaderSkyboxFill.setUniformf("zoomInv", 1f / (Terrarum.ingame?.screenZoom ?: 1f))
AppLoader.fullscreenQuad.render(IngameRenderer.shaderSkyboxFill, GL20.GL_TRIANGLES)
IngameRenderer.shaderSkyboxFill.end()