From 60e0ce6392c99ebaf02ab8164859d409a0b5421a Mon Sep 17 00:00:00 2001 From: bancika Date: Sat, 15 Jan 2011 21:05:31 +0000 Subject: [PATCH] painting optimization --- .../DIYLC/src/org/diylc/presenter/G2DWrapper.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java index eae50238..5824d602 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java @@ -62,6 +62,7 @@ class G2DWrapper extends Graphics2D { private Font originalFont; private AffineTransform currentTx; private Area currentArea; + private Shape lastFilledShape; /** * Creates a wrapper around specified {@link Graphics2D} object. @@ -87,6 +88,7 @@ class G2DWrapper extends Graphics2D { originalComposite = canvasGraphics.getComposite(); originalFont = canvasGraphics.getFont(); currentTx = new AffineTransform(); + lastFilledShape = null; } /** @@ -117,6 +119,7 @@ class G2DWrapper extends Graphics2D { Area area = new Area(s); area.transform(currentTx); currentArea.add(area); + lastFilledShape = s; } /** @@ -125,7 +128,8 @@ class G2DWrapper extends Graphics2D { * @param s */ private void appendShapeOutline(Shape s) { - if (!drawingComponent) { + // Do not add shape outline if the same shape has been filled recently. + if (!drawingComponent || s.equals(lastFilledShape)) { return; } PathIterator pathIterator = s.getPathIterator(null);