diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt index 736dae577..aba0072e1 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt @@ -20,6 +20,7 @@ import de.bixilon.kutil.observer.DataObserver.Companion.observed import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.gui.rendering.RenderContext import de.bixilon.minosoft.gui.rendering.events.ResizeWindowEvent +import de.bixilon.minosoft.gui.rendering.framebuffer.IntegratedFramebuffer import de.bixilon.minosoft.gui.rendering.gui.atlas.AtlasManager import de.bixilon.minosoft.gui.rendering.gui.gui.GUIManager import de.bixilon.minosoft.gui.rendering.gui.gui.dragged.DraggedManager @@ -30,8 +31,6 @@ import de.bixilon.minosoft.gui.rendering.input.InputHandler import de.bixilon.minosoft.gui.rendering.renderer.renderer.AsyncRenderer import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions -import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes -import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer import de.bixilon.minosoft.gui.rendering.system.base.phases.OtherDrawable import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2Util.EMPTY @@ -54,10 +53,7 @@ class GUIRenderer( var halfSize: Vec2 = Vec2() private set var resolutionUpdate = true - override val framebuffer: Framebuffer - get() = context.framebuffer.gui.framebuffer - override val polygonMode: PolygonModes - get() = context.framebuffer.gui.polygonMode + override val framebuffer: IntegratedFramebuffer get() = context.framebuffer.gui val shader = context.system.createShader("minosoft:gui".toResourceLocation()) { GUIShader(it) } val atlasManager = AtlasManager(context) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/Renderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/Renderer.kt index 9eacaa878..cc16ee2e8 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/Renderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/Renderer.kt @@ -15,17 +15,13 @@ package de.bixilon.minosoft.gui.rendering.renderer.renderer import de.bixilon.kutil.latch.AbstractLatch import de.bixilon.minosoft.gui.rendering.RenderContext -import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes +import de.bixilon.minosoft.gui.rendering.framebuffer.IntegratedFramebuffer import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem -import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer interface Renderer { val context: RenderContext val renderSystem: RenderSystem - val framebuffer: Framebuffer? - get() = context.framebuffer.world.framebuffer - val polygonMode: PolygonModes - get() = context.framebuffer.world.polygonMode + val framebuffer: IntegratedFramebuffer? get() = context.framebuffer.world fun preAsyncInit(latch: AbstractLatch) = Unit fun init(latch: AbstractLatch) = Unit diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/RendererManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/RendererManager.kt index a143757e6..a5693eb3e 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/RendererManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/renderer/renderer/RendererManager.kt @@ -22,6 +22,7 @@ import de.bixilon.kutil.latch.AbstractLatch import de.bixilon.kutil.latch.ParentLatch import de.bixilon.kutil.latch.SimpleLatch import de.bixilon.minosoft.gui.rendering.RenderContext +import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes import de.bixilon.minosoft.gui.rendering.system.base.phases.PostDrawable import de.bixilon.minosoft.gui.rendering.system.base.phases.PreDrawable import de.bixilon.minosoft.gui.rendering.system.base.phases.RenderPhases @@ -99,8 +100,9 @@ class RendererManager( if (phase.invokeSkip(renderer)) { continue } - renderSystem.framebuffer = renderer.framebuffer - renderSystem.polygonMode = renderer.polygonMode + val framebuffer = renderer.framebuffer + renderSystem.framebuffer = framebuffer?.framebuffer + renderSystem.polygonMode = framebuffer?.polygonMode ?: PolygonModes.DEFAULT phase.invokeSetup(renderer) phase.invokeDraw(renderer) } @@ -150,7 +152,7 @@ class RendererManager( if (renderer.skipPre) { continue } - renderSystem.polygonMode = renderer.polygonMode + renderSystem.polygonMode = renderer.framebuffer?.polygonMode ?: PolygonModes.DEFAULT renderer.drawPre() } } @@ -166,7 +168,7 @@ class RendererManager( if (renderer.skipPost) { continue } - renderSystem.polygonMode = renderer.polygonMode + renderSystem.polygonMode = renderer.framebuffer?.polygonMode ?: PolygonModes.DEFAULT renderer.drawPost() } } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt index 6fc77a036..75f6fb6f2 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt @@ -19,6 +19,7 @@ import de.bixilon.kutil.observer.DataObserver.Companion.observe import de.bixilon.kutil.observer.DataObserver.Companion.observed import de.bixilon.minosoft.gui.rendering.RenderContext import de.bixilon.minosoft.gui.rendering.events.CameraMatrixChangeEvent +import de.bixilon.minosoft.gui.rendering.framebuffer.IntegratedFramebuffer import de.bixilon.minosoft.gui.rendering.renderer.renderer.AsyncRenderer import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder @@ -27,9 +28,7 @@ import de.bixilon.minosoft.gui.rendering.sky.planet.MoonRenderer import de.bixilon.minosoft.gui.rendering.sky.planet.SunRenderer import de.bixilon.minosoft.gui.rendering.sky.planet.scatter.SunScatterRenderer import de.bixilon.minosoft.gui.rendering.system.base.DepthFunctions -import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem -import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer import de.bixilon.minosoft.gui.rendering.system.base.phases.PreDrawable import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companion.listen import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection @@ -39,8 +38,7 @@ class SkyRenderer( override val context: RenderContext, ) : Renderer, PreDrawable, AsyncRenderer { override val renderSystem: RenderSystem = context.system - override val framebuffer: Framebuffer? = null - override val polygonMode: PolygonModes = PolygonModes.DEFAULT + override val framebuffer: IntegratedFramebuffer? = null private val renderer: MutableList = mutableListOf() var effects by observed(connection.world.dimension.effects) var matrix by observed(Mat4())