From 2e34cbcbe100db843e64f22da48e7335f459e873 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 8 Feb 2022 13:28:36 -0500 Subject: [PATCH] gpu: reset fbo on resizablechanged on macos Changing resizable mode changes the canvas size but doesn't change the client size, so the existing resize adapter doesn't get triggered --- .../net/runelite/client/plugins/gpu/GpuPlugin.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index 869ac73eef..232dd9d351 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -78,6 +78,7 @@ import net.runelite.api.SceneTilePaint; import net.runelite.api.Texture; import net.runelite.api.TextureProvider; import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.ResizeableChanged; import net.runelite.api.hooks.DrawCallbacks; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; @@ -1535,6 +1536,17 @@ public class GpuPlugin extends Plugin implements DrawCallbacks } } + @Subscribe + public void onResizeableChanged(ResizeableChanged resizeableChanged) + { + if (OSType.getOSType() == OSType.MacOS) + { + // switching resizable mode adjusts the canvas size, without adjusting + // the client size. queue the GLFBODrawable resize for later. + needsReset = 5; + } + } + private void uploadScene() { vertexBuffer.clear();