diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index b824fb357c..76335dfb19 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -345,7 +345,7 @@ public class Hooks implements Callbacks { MainBufferProvider bufferProvider = (MainBufferProvider) client.getBufferProvider(); BufferedImage image = (BufferedImage) bufferProvider.getImage(); - Graphics2D graphics2d = (Graphics2D) image.getGraphics(); + Graphics2D graphics2d = image.createGraphics(); try { @@ -355,6 +355,10 @@ public class Hooks implements Callbacks { log.warn("Error during overlay rendering", ex); } + finally + { + graphics2d.dispose(); + } } @Override @@ -362,7 +366,7 @@ public class Hooks implements Callbacks { MainBufferProvider bufferProvider = (MainBufferProvider) client.getBufferProvider(); BufferedImage image = (BufferedImage) bufferProvider.getImage(); - Graphics2D graphics2d = (Graphics2D) image.getGraphics(); + Graphics2D graphics2d = image.createGraphics(); try { @@ -372,13 +376,17 @@ public class Hooks implements Callbacks { log.warn("Error during overlay rendering", ex); } + finally + { + graphics2d.dispose(); + } } public static void drawAfterWidgets() { MainBufferProvider bufferProvider = (MainBufferProvider) client.getBufferProvider(); BufferedImage image = (BufferedImage) bufferProvider.getImage(); - Graphics2D graphics2d = (Graphics2D) image.getGraphics(); + Graphics2D graphics2d = image.createGraphics(); try { @@ -388,6 +396,10 @@ public class Hooks implements Callbacks { log.warn("Error during overlay rendering", ex); } + finally + { + graphics2d.dispose(); + } } @Override