From b0d04d2b241bef2c13e2a29d176303ec3f1502ac Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Wed, 26 Jul 2023 02:22:34 +0200 Subject: [PATCH] properly set framebuffer and polygon mode for other renderers (e.g. gui) --- .../renderer/renderer/pipeline/RendererPipeline.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/pipeline/RendererPipeline.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/pipeline/RendererPipeline.kt index dfbe0b48d..15a5d9b23 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/pipeline/RendererPipeline.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/pipeline/RendererPipeline.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.gui.rendering.renderer.renderer.pipeline +import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererManager @@ -27,7 +28,7 @@ import de.bixilon.minosoft.gui.rendering.system.base.phases.SkipAll class RendererPipeline(private val renderer: RendererManager) : Drawable { val world = WorldRendererPipeline(renderer) - private val rest: MutableList = mutableListOf() + private val other: MutableList = mutableListOf() private val pre: MutableList = mutableListOf() private val post: MutableList = mutableListOf() @@ -42,11 +43,12 @@ class RendererPipeline(private val renderer: RendererManager) : Drawable { this.polygonMode = framebuffer?.polygonMode ?: PolygonModes.DEFAULT } - private fun drawRest() { - for (renderer in rest) { + private fun drawOther() { + for (renderer in other) { if (renderer.skipDraw) continue if (renderer is SkipAll && renderer.skipAll) continue + renderSystem.set(renderer.unsafeCast()) renderer.draw() } } @@ -72,7 +74,7 @@ class RendererPipeline(private val renderer: RendererManager) : Drawable { override fun draw() { world.draw() - drawRest() + drawOther() drawPre() framebuffer.draw() @@ -84,7 +86,7 @@ class RendererPipeline(private val renderer: RendererManager) : Drawable { return world.rebuild() } if (renderer is Drawable) { - rest += renderer + other += renderer // TODO: sort for framebuffer } if (renderer is PreDrawable) pre += renderer