From 62c6b36f0889eae10887bd5ba012e89b41b0e71c Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 8 May 2020 10:17:49 +0200 Subject: [PATCH] Fix crash when minimizing on Windows during rendering (fixes #140) Hopefully, haven't actually tried it cause, you know, Windows (and minimizing with just xfwm4 doesn't exhibit the same behavior). --- .../replaymod/render/rendering/VideoRenderer.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java index c6e314fc..f2c0f575 100644 --- a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java +++ b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java @@ -557,10 +557,18 @@ public class VideoRenderer implements RenderInfo { private boolean displaySizeChanged() { //#if MC>=11400 - return displayWidth != getWindow(mc).getWidth() || displayHeight != getWindow(mc).getHeight(); + int realWidth = getWindow(mc).getWidth(); + int realHeight = getWindow(mc).getHeight(); //#else - //$$ return displayWidth != Display.getWidth() || displayHeight != Display.getHeight(); + //$$ int realWidth = Display.getWidth(); + //$$ int realHeight = Display.getHeight(); //#endif + if (realWidth == 0 || realHeight == 0) { + // These can be zero on Windows if minimized. + // Creating zero-sized framebuffers however will throw an error, so we never want to switch to zero values. + return false; + } + return displayWidth != realWidth || displayHeight != realHeight; } private void updateDisplaySize() {