From 03bfb535f35d11e1b80700a8d75129148dc9dfa9 Mon Sep 17 00:00:00 2001 From: SomeoneWithAnInternetConnection <34518321+SomeoneWithAnInternetConnection@users.noreply.github.com> Date: Thu, 4 Jan 2018 21:46:16 -0500 Subject: [PATCH] Reduce clearRect calls to improve framerate This change improves the framerate in resizable mode by 10-15 fps by reducing the amount of screen clearing done while drawing overlays. --- .../java/net/runelite/client/ui/overlay/OverlayRenderer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 664e9986b4..1acbff793a 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -241,8 +241,6 @@ public class OverlayRenderer } else { - surfaceGraphics.clearRect(0, 0, surface.getWidth(), surface.getHeight()); - final Dimension dimension = MoreObjects.firstNonNull(safeRender(overlay, surfaceGraphics, subPosition), new Dimension()); if (dimension.width == 0 && dimension.height == 0) { @@ -272,6 +270,7 @@ public class OverlayRenderer final Point transformed = OverlayUtil.transformPosition(overlayPosition, dimension); graphics.drawImage(clippedImage, subPosition.x + transformed.x, subPosition.y + transformed.y, null); + surfaceGraphics.clearRect(0, 0, (int) dimension.getWidth(), (int) dimension.getHeight()); } }); }