Optimize rendering of electro-mechanical components

This commit is contained in:
Bane Stojkovic
2025-05-03 21:35:11 +02:00
parent b4bcc25f66
commit aa98f27de8
14 changed files with 29 additions and 13 deletions
@@ -103,6 +103,8 @@ public class BatterySnap9V extends AbstractTransparentComponent<String> {
: color.brighter();
}
drawingObserver.stopTracking();
g2d.setColor(finalBorderColor);
g2d.draw(body[0]);
g2d.setColor(METAL_COLOR.darker());
@@ -236,6 +236,8 @@ public class ClosedJack1_4 extends AbstractMultiPartComponent<JackType> implemen
g2d.setComposite(oldComposite);
// }
drawingObserver.stopTracking();
Color finalBorderColor;
if (outlineMode) {
Theme theme =
@@ -356,6 +356,8 @@ public class DIPSwitch extends AbstractTransparentComponent<String> implements I
g2d.fill(mainArea);
g2d.setComposite(oldComposite);
drawingObserver.stopTracking();
Color finalBorderColor;
if (outlineMode) {
Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY,
@@ -392,8 +394,6 @@ public class DIPSwitch extends AbstractTransparentComponent<String> implements I
}
}
drawingObserver.stopTracking();
// Draw label.
g2d.setFont(project.getFont());
Color finalLabelColor;
@@ -304,6 +304,8 @@ public class MiniRelay extends AbstractLabeledComponent<String> implements IGerb
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR);
g2d.fill(mainArea);
g2d.setComposite(oldComposite);
drawingObserver.stopTracking();
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
@@ -150,6 +150,8 @@ public class OpenJack1_4 extends AbstractMultiPartComponent<OpenJackType> {
g2d.setComposite(oldComposite);
// }
drawingObserver.stopTracking();
if (outlineMode) {
Theme theme =
(Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
@@ -157,8 +159,6 @@ public class OpenJack1_4 extends AbstractMultiPartComponent<OpenJackType> {
} else {
finalBorderColor = BASE_COLOR.darker();
}
drawingObserver.stopTracking();
g2d.setColor(finalBorderColor);
g2d.draw(body[1]);
@@ -141,6 +141,8 @@ public class OpenJack1_8 extends AbstractMultiPartComponent<OpenJackType> {
g2d.setComposite(oldComposite);
// }
drawingObserver.stopTracking();
if (outlineMode) {
Theme theme =
(Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
@@ -148,8 +150,6 @@ public class OpenJack1_8 extends AbstractMultiPartComponent<OpenJackType> {
} else {
finalBorderColor = BASE_COLOR.darker();
}
drawingObserver.stopTracking();
g2d.setColor(finalBorderColor);
g2d.draw(body[1]);
@@ -134,6 +134,7 @@ public class PilotLampHolder extends AbstractMultiPartComponent<String> {
g2d.fill(body[2]);
drawingObserver.stopTrackingContinuityArea();
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
// }
@@ -232,6 +232,7 @@ public class PinHeader extends AbstractTransparentComponent<Void> {
g2d.setColor(shroudColor);
g2d.fill(shroudArea);
}
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
@@ -142,6 +142,7 @@ public class PlasticDCJack extends AbstractMultiPartComponent<String> implements
}
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR);
g2d.fill(body[0]);
drawingObserver.stopTracking();
if (!outlineMode) {
g2d.setColor(PHENOLIC_DARK_COLOR);
g2d.fill(body[1]);
@@ -93,6 +93,8 @@ public class RCAJack extends AbstractMultiPartComponent<String> {
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : WAFER_COLOR);
g2d.fill(body[0]);
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
// }
@@ -116,8 +118,10 @@ public class RCAJack extends AbstractMultiPartComponent<String> {
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BASE_COLOR);
drawingObserver.startTrackingContinuityArea(true);
drawingObserver.startTracking();
g2d.fill(body[1]);
g2d.fill(body[2]);
drawingObserver.stopTracking();
drawingObserver.stopTrackingContinuityArea();
if (body[3] != null)
@@ -362,7 +362,9 @@ public class RotarySwitchOpen extends AbstractAngledComponent<RotarySwitchOpenTy
drawingObserver.startTrackingContinuityArea(true);
for (int i = secondLevelStart; i < body.length; i++) {
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : pinColor);
drawingObserver.startTracking();
g2d.fill(body[i]);
drawingObserver.stopTracking();
g2d.setColor(outlineMode ? finalBorderColor : pinColor.darker());
g2d.draw(body[i]);
}
@@ -376,8 +378,8 @@ public class RotarySwitchOpen extends AbstractAngledComponent<RotarySwitchOpenTy
}
g2d.setColor(finalBorderColor);
drawingObserver.startTracking();
g2d.draw(body[0]);
drawingObserver.stopTracking();
// Draw pins
@@ -182,6 +182,7 @@ public class RotarySwitchSealed extends AbstractAngledComponent<RotarySwitchSeal
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getColor());
g2d.fill(body[0]);
}
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
Color finalBorderColor;
if (outlineMode) {
@@ -198,8 +199,6 @@ public class RotarySwitchSealed extends AbstractAngledComponent<RotarySwitchSeal
g2d.setColor(finalBorderColor);
g2d.draw(body[0]);
drawingObserver.stopTracking();
// Draw pins
if (!outlineMode) {
for (int i = 1; i < controlPoints.length; i++) {
@@ -247,7 +247,7 @@ public class SlideSwitch extends AbstractTransparentComponent<SlideSwitchType> i
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getBodyColor());
g2d.fill(body[0]);
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
Color finalBorderColor;
@@ -269,9 +269,7 @@ public class SlideSwitch extends AbstractTransparentComponent<SlideSwitchType> i
}
g2d.draw(body[0]);
}
// Do not track these changes because the whole switch has been tracked
// so far.
drawingObserver.stopTracking();
// Draw lugs.
int lugWidth;
@@ -232,7 +232,9 @@ public class TactileMicroSwitch extends AbstractLabeledComponent<String> impleme
Rectangle2D rect = new Rectangle2D.Double(point.getX() - pinSize / 2,
point.getY() - pinSize / 2, pinSize, pinSize);
g2d.setColor(PIN_COLOR);
drawingObserver.startTracking();
g2d.fill(rect);
drawingObserver.stopTrackingContinuityArea();
g2d.setColor(PIN_BORDER_COLOR);
g2d.draw(rect);
}
@@ -242,7 +244,9 @@ public class TactileMicroSwitch extends AbstractLabeledComponent<String> impleme
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA));
}
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getBodyColor());
drawingObserver.stopTracking();
g2d.fill(mainArea);
drawingObserver.stopTracking();
g2d.setColor(INDENT_COLOR);
g2d.fill(indentArea);