From 1fd4d118668dedb8f0a33d8e6efead613d04a672 Mon Sep 17 00:00:00 2001 From: Kronos Date: Thu, 20 Apr 2017 08:47:31 +1000 Subject: [PATCH] Updated 2D rendering methods to use anti-aliasing for smoother overlays Also added a centralised function in Renderer for setting anti-aliasing --- .../net/runelite/client/ui/overlay/DynamicRenderer.java | 1 + .../main/java/net/runelite/client/ui/overlay/Renderer.java | 7 +++++++ .../runelite/client/ui/overlay/TopDownRendererLeft.java | 1 + .../runelite/client/ui/overlay/TopDownRendererRight.java | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java index 6c5d708e80..fb6d1ba91a 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java @@ -44,6 +44,7 @@ public class DynamicRenderer implements Renderer for (Overlay overlay : overlays) { Graphics2D graphics = clientBuffer.createGraphics(); + Renderer.setAntiAliasing(graphics); overlay.render(graphics); graphics.dispose(); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/Renderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/Renderer.java index 2cd6450e59..4c80d44d93 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/Renderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/Renderer.java @@ -24,9 +24,16 @@ */ package net.runelite.client.ui.overlay; +import java.awt.Graphics2D; +import java.awt.RenderingHints; import java.awt.image.BufferedImage; public interface Renderer { void render(BufferedImage clientBuffer); + + static void setAntiAliasing(Graphics2D graphics) + { + graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java index 87f3ed5e6d..17a0b3a1bd 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java @@ -54,6 +54,7 @@ public class TopDownRendererLeft implements Renderer { BufferedImage image = clientBuffer.getSubimage(BORDER_LEFT, y, clientBuffer.getWidth() - BORDER_LEFT, clientBuffer.getHeight() - y);//(int) dimension.getWidth(), (int) dimension.getHeight()); Graphics2D graphics = image.createGraphics(); + Renderer.setAntiAliasing(graphics); Dimension dimension = overlay.render(graphics); graphics.dispose(); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java index 2dfb6e5177..b294671957 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java @@ -56,8 +56,8 @@ public class TopDownRendererRight implements Renderer for (Overlay overlay : overlays) { BufferedImage image = clientBuffer.getSubimage(BORDER_RIGHT, y, client.getClientWidth(), 25); - Graphics2D graphics = image.createGraphics(); + Renderer.setAntiAliasing(graphics); Dimension dimension = overlay.render(graphics); graphics.dispose();