mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-09 18:14:06 +09:00
Can setTitle() cause memleak (right before test commit)
This commit is contained in:
@@ -25,7 +25,7 @@ uniform ivec2 tilesInAtlas = ivec2(256, 256);
|
|||||||
uniform ivec2 atlasTexSize = ivec2(4096, 4096);
|
uniform ivec2 atlasTexSize = ivec2(4096, 4096);
|
||||||
ivec2 tileSizeInPx = atlasTexSize / tilesInAtlas;
|
ivec2 tileSizeInPx = atlasTexSize / tilesInAtlas;
|
||||||
|
|
||||||
uniform vec4 colourFilter = vec4(1, 1, 1, 1);
|
uniform vec4 colourFilter = vec4(1, 1, 1, 1); // used by WALL to darken it
|
||||||
|
|
||||||
uniform ivec2 cameraTranslation = ivec2(0, 0);
|
uniform ivec2 cameraTranslation = ivec2(0, 0);
|
||||||
|
|
||||||
|
|||||||
@@ -694,7 +694,14 @@ object Terrarum : Screen {
|
|||||||
get() = Gdx.input.x
|
get() = Gdx.input.x
|
||||||
inline val mouseScreenY: Int
|
inline val mouseScreenY: Int
|
||||||
get() = Gdx.input.y
|
get() = Gdx.input.y
|
||||||
|
/** Bigger than 1.0 */
|
||||||
|
inline val updateRate: Double
|
||||||
|
get() = 1.0 / Gdx.graphics.deltaTime
|
||||||
|
val updateRateStr: String
|
||||||
|
get() = String.format("%.2f", updateRate)
|
||||||
|
/** Smaller than 1.0 */
|
||||||
|
val renderRate = 1.0 / TARGET_INTERNAL_FPS
|
||||||
|
val renderRateStr = TARGET_INTERNAL_FPS.toString()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Usage:
|
* Usage:
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import net.torvald.terrarum.blockproperties.BlockCodex
|
|||||||
import net.torvald.terrarum.gameactors.AVKey
|
import net.torvald.terrarum.gameactors.AVKey
|
||||||
import net.torvald.terrarum.gameactors.Actor
|
import net.torvald.terrarum.gameactors.Actor
|
||||||
import net.torvald.terrarum.gameactors.ai.ActorAI
|
import net.torvald.terrarum.gameactors.ai.ActorAI
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
|
||||||
import net.torvald.terrarum.gameworld.fmod
|
import net.torvald.terrarum.gameworld.fmod
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.Ingame
|
import net.torvald.terrarum.modulebasegame.Ingame
|
||||||
@@ -191,7 +190,7 @@ class TitleScreen(val batch: SpriteBatch) : Screen {
|
|||||||
private val introUncoverTime: Second = 0.3f
|
private val introUncoverTime: Second = 0.3f
|
||||||
private var introUncoverDeltaCounter = 0f
|
private var introUncoverDeltaCounter = 0f
|
||||||
private var updateDeltaCounter = 0.0
|
private var updateDeltaCounter = 0.0
|
||||||
protected val updateRate = 1.0 / Terrarum.TARGET_INTERNAL_FPS
|
protected val renderRate = Terrarum.renderRate
|
||||||
|
|
||||||
override fun render(delta: Float) {
|
override fun render(delta: Float) {
|
||||||
if (!loadDone) {
|
if (!loadDone) {
|
||||||
@@ -201,9 +200,9 @@ class TitleScreen(val batch: SpriteBatch) : Screen {
|
|||||||
// async update
|
// async update
|
||||||
updateDeltaCounter += delta
|
updateDeltaCounter += delta
|
||||||
var updateTries = 0
|
var updateTries = 0
|
||||||
while (updateDeltaCounter >= updateRate) {
|
while (updateDeltaCounter >= renderRate) {
|
||||||
updateScreen(delta)
|
updateScreen(delta)
|
||||||
updateDeltaCounter -= updateRate
|
updateDeltaCounter -= renderRate
|
||||||
updateTries++
|
updateTries++
|
||||||
|
|
||||||
if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) {
|
if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) {
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import net.torvald.dataclass.CircularArray
|
|||||||
import net.torvald.terrarum.blockproperties.BlockPropUtil
|
import net.torvald.terrarum.blockproperties.BlockPropUtil
|
||||||
import net.torvald.terrarum.blockstats.BlockStats
|
import net.torvald.terrarum.blockstats.BlockStats
|
||||||
import net.torvald.terrarum.concurrent.ThreadParallel
|
import net.torvald.terrarum.concurrent.ThreadParallel
|
||||||
import net.torvald.terrarum.console.*
|
|
||||||
import net.torvald.terrarum.gameactors.*
|
import net.torvald.terrarum.gameactors.*
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.physicssolver.CollisionSolver
|
import net.torvald.terrarum.modulebasegame.gameactors.physicssolver.CollisionSolver
|
||||||
import net.torvald.terrarum.gamecontroller.IngameController
|
import net.torvald.terrarum.gamecontroller.IngameController
|
||||||
@@ -28,7 +27,6 @@ import net.torvald.terrarum.AppLoader.printdbg
|
|||||||
import net.torvald.terrarum.modulebasegame.console.AVTracker
|
import net.torvald.terrarum.modulebasegame.console.AVTracker
|
||||||
import net.torvald.terrarum.modulebasegame.console.ActorsList
|
import net.torvald.terrarum.modulebasegame.console.ActorsList
|
||||||
import net.torvald.terrarum.console.Authenticator
|
import net.torvald.terrarum.console.Authenticator
|
||||||
import net.torvald.terrarum.console.SetGlobalLightOverride
|
|
||||||
import net.torvald.terrarum.itemproperties.GameItem
|
import net.torvald.terrarum.itemproperties.GameItem
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.*
|
import net.torvald.terrarum.modulebasegame.gameactors.*
|
||||||
import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension
|
import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension
|
||||||
@@ -81,8 +79,8 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getCanonicalTitle() = AppLoader.GAME_NAME +
|
fun getCanonicalTitle() = AppLoader.GAME_NAME +
|
||||||
" — F: ${Gdx.graphics.framesPerSecond} (${Terrarum.TARGET_INTERNAL_FPS})" +
|
" — F: ${Gdx.graphics.framesPerSecond} (Δt${Terrarum.updateRateStr} / RT${Terrarum.renderRateStr})" +
|
||||||
" — M: J${Terrarum.memJavaHeap}M / N${Terrarum.memNativeHeap}M / X${Terrarum.memXmx}M"
|
" — M: J${Terrarum.memJavaHeap}M / N${Terrarum.memNativeHeap}M / X${Terrarum.memXmx}M"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -420,7 +418,7 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected var updateDeltaCounter = 0.0
|
protected var updateDeltaCounter = 0.0
|
||||||
protected val updateRate = 1.0 / Terrarum.TARGET_INTERNAL_FPS
|
protected val renderRate = Terrarum.renderRate
|
||||||
|
|
||||||
private var firstTimeRun = true
|
private var firstTimeRun = true
|
||||||
|
|
||||||
@@ -430,9 +428,9 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
private class ThreadIngameUpdate(val ingame: Ingame): Runnable {
|
private class ThreadIngameUpdate(val ingame: Ingame): Runnable {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
var updateTries = 0
|
var updateTries = 0
|
||||||
while (ingame.updateDeltaCounter >= ingame.updateRate) {
|
while (ingame.updateDeltaCounter >= ingame.renderRate) {
|
||||||
ingame.updateGame(Terrarum.deltaTime)
|
ingame.updateGame(Terrarum.deltaTime)
|
||||||
ingame.updateDeltaCounter -= ingame.updateRate
|
ingame.updateDeltaCounter -= ingame.renderRate
|
||||||
updateTries++
|
updateTries++
|
||||||
|
|
||||||
if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) {
|
if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) {
|
||||||
@@ -486,12 +484,12 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var updateTries = 0
|
var updateTries = 0
|
||||||
while (updateDeltaCounter >= updateRate) {
|
while (updateDeltaCounter >= renderRate) {
|
||||||
|
|
||||||
//updateGame(delta)
|
//updateGame(delta)
|
||||||
Terrarum.debugTimers["Ingame.update"] = measureNanoTime { updateGame(delta) }
|
Terrarum.debugTimers["Ingame.update"] = measureNanoTime { updateGame(delta) }
|
||||||
|
|
||||||
updateDeltaCounter -= updateRate
|
updateDeltaCounter -= renderRate
|
||||||
updateTries++
|
updateTries++
|
||||||
|
|
||||||
if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) {
|
if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) {
|
||||||
|
|||||||
@@ -733,9 +733,8 @@ internal object BlocksDrawer {
|
|||||||
shader.setUniformi("tilemapDimension", tilesBuffer.width, tilesBuffer.height)
|
shader.setUniformi("tilemapDimension", tilesBuffer.width, tilesBuffer.height)
|
||||||
shader.setUniformf("tilesInAxes", tilesInHorizontal.toFloat(), tilesInVertical.toFloat())
|
shader.setUniformf("tilesInAxes", tilesInHorizontal.toFloat(), tilesInVertical.toFloat())
|
||||||
shader.setUniformi("cameraTranslation", WorldCamera.x fmod TILE_SIZE, WorldCamera.y fmod TILE_SIZE)
|
shader.setUniformi("cameraTranslation", WorldCamera.x fmod TILE_SIZE, WorldCamera.y fmod TILE_SIZE)
|
||||||
shader.setUniformi("tileSizeInPx", TILE_SIZE)
|
/*shader hard-code*/shader.setUniformi("tilesInAtlas", tileAtlas.horizontalCount, tileAtlas.verticalCount) //depends on the tile atlas
|
||||||
shader.setUniformi("tilesInAtlas", tileAtlas.horizontalCount, tileAtlas.verticalCount) //depends on the tile atlas
|
/*shader hard-code*/shader.setUniformi("atlasTexSize", tileAtlas.texture.width, tileAtlas.texture.height) //depends on the tile atlas
|
||||||
shader.setUniformi("atlasTexSize", tileAtlas.texture.width, tileAtlas.texture.height) //depends on the tile atlas
|
|
||||||
tilesQuad.render(shader, GL20.GL_TRIANGLES)
|
tilesQuad.render(shader, GL20.GL_TRIANGLES)
|
||||||
shader.end()
|
shader.end()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user