From 963f82f9887f4d2ce6b61b03e2b6cffa31c1ceea Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Fri, 17 Nov 2023 10:11:22 +0100 Subject: [PATCH] debug hud: show opaque and translucent size --- .../gui/rendering/entities/feature/item/ItemFeature.kt | 2 +- .../gui/rendering/entities/visibility/VisibilityManager.kt | 5 ++++- .../gui/hud/elements/other/debug/DebugHUDElement.kt | 2 +- .../terminal/commands/connection/BenchmarkCommand.kt | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/entities/feature/item/ItemFeature.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/entities/feature/item/ItemFeature.kt index 3e0a482a0..0a484168c 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/entities/feature/item/ItemFeature.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/entities/feature/item/ItemFeature.kt @@ -132,7 +132,7 @@ open class ItemFeature( EXTREME(48.0), ; - val distance = distance * distance * distance + val distance = distance * distance companion object { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/entities/visibility/VisibilityManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/entities/visibility/VisibilityManager.kt index a0aad1852..ab0ae6c07 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/entities/visibility/VisibilityManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/entities/visibility/VisibilityManager.kt @@ -26,6 +26,7 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition class VisibilityManager(val renderer: EntitiesRenderer) { private var update = false + private var _size = 0 var size: Int = 0 private set @@ -53,6 +54,7 @@ class VisibilityManager(val renderer: EntitiesRenderer) { opaque.clear() translucent.clear() size = 0 + _size = 0 } private fun EntityRenderer<*>.isInRenderDistance(): Boolean { @@ -80,7 +82,7 @@ class VisibilityManager(val renderer: EntitiesRenderer) { fun collect(renderer: EntityRenderer<*>) { if (!renderer.visible) return lock.lock() - size++ + _size++ for (feature in renderer.features) { if (!feature.enabled || !feature.visible || feature.isInvisible()) continue feature.collect(this) @@ -93,6 +95,7 @@ class VisibilityManager(val renderer: EntitiesRenderer) { this.opaque.sort() this.translucent.sort() this.update = false + size = _size } operator fun get(layer: EntityLayer) = when (layer) { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/debug/DebugHUDElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/debug/DebugHUDElement.kt index ba63136a7..110b59ad4 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/debug/DebugHUDElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/debug/DebugHUDElement.kt @@ -100,7 +100,7 @@ class DebugHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), Layouted } layout += context.renderer[EntitiesRenderer]?.let { - AutoTextElement(guiRenderer, 1) { BaseComponent("E v=", it.visibility.size, ", t=", it.renderers.size, ", w=", connection.world.entities.size) } + AutoTextElement(guiRenderer, 1) { BaseComponent("E v=", it.visibility.size, ",ov=", it.visibility.opaque.size, ",tv=", it.visibility.translucent.size, ", t=", it.renderers.size, ", w=", connection.world.entities.size) } } ?: AutoTextElement(guiRenderer, 1) { "E w=${connection.world.entities.size.format()}" } context.renderer[ParticleRenderer]?.apply { diff --git a/src/main/java/de/bixilon/minosoft/terminal/commands/connection/BenchmarkCommand.kt b/src/main/java/de/bixilon/minosoft/terminal/commands/connection/BenchmarkCommand.kt index 6ff9f1500..65eabb4ff 100644 --- a/src/main/java/de/bixilon/minosoft/terminal/commands/connection/BenchmarkCommand.kt +++ b/src/main/java/de/bixilon/minosoft/terminal/commands/connection/BenchmarkCommand.kt @@ -15,6 +15,7 @@ package de.bixilon.minosoft.terminal.commands.connection import de.bixilon.kotlinglm.GLM.PIf import de.bixilon.kotlinglm.vec3.Vec3d +import de.bixilon.kutil.math.Trigonometry.sin import de.bixilon.kutil.random.RandomUtil.nextDouble import de.bixilon.kutil.random.RandomUtil.nextFloat import de.bixilon.kutil.random.RandomUtil.nextInt @@ -33,7 +34,6 @@ import de.bixilon.minosoft.util.KUtil.startInit import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap import java.util.* import kotlin.math.cbrt -import kotlin.math.sin object BenchmarkCommand : ConnectionCommand { override var node = LiteralNode("benchmark").addChild(