From ca5947ded8a85a7100bea2656094810e49f919c4 Mon Sep 17 00:00:00 2001 From: TheRamenChef Date: Fri, 23 Nov 2018 21:42:29 -0600 Subject: [PATCH] Improve the ShapeRenderer class Use a copy of the old transform to avoid floating point precision errors Apply the supplied transforms on top of the existing transform --- src/de/gurkenlabs/litiengine/graphics/ShapeRenderer.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/de/gurkenlabs/litiengine/graphics/ShapeRenderer.java b/src/de/gurkenlabs/litiengine/graphics/ShapeRenderer.java index ede8a9d46..d1ce1c536 100644 --- a/src/de/gurkenlabs/litiengine/graphics/ShapeRenderer.java +++ b/src/de/gurkenlabs/litiengine/graphics/ShapeRenderer.java @@ -18,9 +18,10 @@ public static void render(final Graphics2D g, final Shape shape) { } public static void render(final Graphics2D g, final Shape shape, double x, double y) { + AffineTransform oldTransform = g.getTransform(); g.translate(x, y); render(g, shape); - g.translate(-x, -y); + g.setTransform(oldTransform); } public static void render(final Graphics2D g, final Shape shape, Point2D location) { @@ -44,7 +45,7 @@ public static void renderOutline(final Graphics2D g, final Shape shape, final St public static void renderTransformed(final Graphics2D g, final Shape shape, AffineTransform transform) { final AffineTransform oldTransForm = g.getTransform(); - g.setTransform(transform); + g.transform(transform); render(g, shape); g.setTransform(oldTransForm); } @@ -55,7 +56,7 @@ public static void renderOutlineTransformed(final Graphics2D g, final Shape shap public static void renderOutlineTransformed(final Graphics2D g, final Shape shape, AffineTransform transform, final Stroke stroke) { final AffineTransform oldTransForm = g.getTransform(); - g.setTransform(transform); + g.transform(transform); renderOutline(g, shape, stroke); g.setTransform(oldTransForm); }