From fb36fc2ba86835ba04980310ec87336d40d0567c Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sun, 10 Apr 2022 17:07:08 +0200 Subject: [PATCH] Fix render progress framebuffer never being deleted --- .../com/replaymod/render/gui/progress/VirtualWindow.java | 8 +++++++- .../com/replaymod/render/rendering/VideoRenderer.java | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/replaymod/render/gui/progress/VirtualWindow.java b/src/main/java/com/replaymod/render/gui/progress/VirtualWindow.java index 5f2ef91d..c9d5769e 100644 --- a/src/main/java/com/replaymod/render/gui/progress/VirtualWindow.java +++ b/src/main/java/com/replaymod/render/gui/progress/VirtualWindow.java @@ -1,6 +1,7 @@ package com.replaymod.render.gui.progress; import com.replaymod.render.mixin.MainWindowAccessor; +import de.johni0702.minecraft.gui.function.Closeable; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.Framebuffer; import net.minecraft.client.util.Window; @@ -9,7 +10,7 @@ import net.minecraft.client.util.Window; //$$ import net.minecraft.client.gl.WindowFramebuffer; //#endif -public class VirtualWindow { +public class VirtualWindow implements Closeable { private final MinecraftClient mc; private final Window window; private final MainWindowAccessor acc; @@ -40,6 +41,11 @@ public class VirtualWindow { //#endif } + @Override + public void close() { + guiFramebuffer.delete(); + } + public void bind() { gameWidth = acc.getFramebufferWidth(); gameHeight = acc.getFramebufferHeight(); diff --git a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java index 2ea98438..c7a5720c 100644 --- a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java +++ b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java @@ -363,6 +363,8 @@ public class VideoRenderer implements RenderInfo { // Tear down of the timeline player might only happen the next tick after it was cancelled timelinePlayer.onTick(); + guiWindow.close(); + // FBOs are always used in 1.14+ //#if MC<11400 //$$ if (!OpenGlHelper.isFramebufferEnabled()) {