From c90b722fb662b318897d90d8c79b5073b402e60c Mon Sep 17 00:00:00 2001 From: Bane Stojkovic Date: Sat, 3 May 2025 22:05:23 +0200 Subject: [PATCH] optimize rendering of guitar switches --- .../src/main/java/org/diylc/components/guitar/LPSwitch.java | 4 ++++ .../main/java/org/diylc/components/guitar/LeverSwitch.java | 4 ++++ .../src/main/java/org/diylc/components/guitar/S1Switch.java | 1 + .../org/diylc/components/guitar/SchallerMegaSwitch.java | 6 ++++++ 4 files changed, 15 insertions(+) diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LPSwitch.java b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LPSwitch.java index 5cee8727..c878bfa0 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LPSwitch.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LPSwitch.java @@ -93,6 +93,8 @@ public class LPSwitch extends AbstractTransparentComponent implements IS g2d.setComposite(oldComposite); } + drawingObserver.stopTracking(); + Color finalBorderColor; if (outlineMode) { @@ -127,7 +129,9 @@ public class LPSwitch extends AbstractTransparentComponent implements IS g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); g2d.setColor(METAL_COLOR); + drawingObserver.startTracking(); g2d.draw(body[2]); + drawingObserver.stopTracking(); } @SuppressWarnings("incomplete-switch") diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java index a13c35fa..36f274f7 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java @@ -111,6 +111,8 @@ public class LeverSwitch extends AbstractAngledComponent implements ISwi } g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); g2d.fill(body); + drawingObserver.stopTracking(); g2d.setComposite(oldComposite); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); Color finalBorderColor; diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/SchallerMegaSwitch.java b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/SchallerMegaSwitch.java index 4e7238f7..a9b7c013 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/SchallerMegaSwitch.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/SchallerMegaSwitch.java @@ -115,6 +115,8 @@ public class SchallerMegaSwitch extends AbstractAngledComponent implemen g2d.setComposite(oldComposite); } + drawingObserver.stopTracking(); + Color finalBorderColor; if (outlineMode) { Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, @@ -150,12 +152,16 @@ public class SchallerMegaSwitch extends AbstractAngledComponent implemen g2d.draw(body[1]); g2d.setColor(LUG_COLOR); + drawingObserver.startTracking(); g2d.fill(body[2]); + drawingObserver.stopTracking(); g2d.setColor(LUG_COLOR.darker()); g2d.draw(body[2]); for (int i = 3; i < body.length; i++) { g2d.setColor(ISwitch.POLE_COLORS[i - 3]); + drawingObserver.startTracking(); g2d.fill(body[i]); + drawingObserver.stopTracking(); g2d.setColor(ISwitch.POLE_COLORS[i - 3].darker()); g2d.draw(body[i]); }