optimize guitar pickup rendering

This commit is contained in:
Bane Stojkovic
2025-05-03 21:56:38 +02:00
parent 24ee6b3a5f
commit 3332b727e0
8 changed files with 29 additions and 12 deletions
@@ -66,7 +66,7 @@ public abstract class AbstractGuitarPickup extends AbstractLabeledComponent<Stri
updateControlPoints();
}
protected void drawlTerminalLabels(Graphics2D g2d, Color color, Project project) {
protected void drawTerminalLabels(Graphics2D g2d, Color color, Project project) {
Point2D[] points = getControlPoints();
g2d.setColor(color);
@@ -34,7 +34,7 @@ public abstract class AbstractSingleOrHumbuckerPickup extends AbstractGuitarPick
private static final long serialVersionUID = 1L;
@Override
protected void drawlTerminalLabels(Graphics2D g2d, Color color, Project project) {
protected void drawTerminalLabels(Graphics2D g2d, Color color, Project project) {
Point2D[] points = getControlPoints();
g2d.setColor(color);
@@ -93,6 +93,8 @@ public class HumbuckerPickup extends AbstractGuitarPickup {
@Override
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project,
IDrawingObserver drawingObserver) {
drawingObserver.stopTracking();
Shape[] body = getBody();
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
@@ -102,10 +104,16 @@ public class HumbuckerPickup extends AbstractGuitarPickup {
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA));
}
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color);
if (getType() != HumbuckerType.Filtertron)
if (getType() != HumbuckerType.Filtertron) {
drawingObserver.startTracking();
g2d.fill(body[0]);
if (body[1] != null)
drawingObserver.stopTracking();
}
if (body[1] != null) {
drawingObserver.startTracking();
g2d.fill(body[1]);
drawingObserver.stopTracking();
}
if (!outlineMode) {
if (body[4] != null) {
@@ -120,7 +128,9 @@ public class HumbuckerPickup extends AbstractGuitarPickup {
if (getType() == HumbuckerType.Filtertron) {
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color);
drawingObserver.startTracking();
g2d.fill(body[0]);
drawingObserver.stopTracking();
}
// g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR);
@@ -175,7 +185,7 @@ public class HumbuckerPickup extends AbstractGuitarPickup {
drawMainLabel(g2d, project, outlineMode, componentState);
drawlTerminalLabels(g2d, finalBorderColor, project);
drawTerminalLabels(g2d, finalBorderColor, project);
}
@Override
@@ -81,6 +81,7 @@ public class JazzBassPickup extends AbstractSingleOrHumbuckerPickup {
@Override
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project,
IDrawingObserver drawingObserver) {
Shape[] body = getBody();
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
@@ -91,7 +92,8 @@ public class JazzBassPickup extends AbstractSingleOrHumbuckerPickup {
}
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color);
g2d.fill(body[0]);
g2d.fill(body[1]);
g2d.fill(body[1]);
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
Color finalBorderColor;
@@ -137,7 +139,7 @@ public class JazzBassPickup extends AbstractSingleOrHumbuckerPickup {
// VerticalAlignment.CENTER);
drawMainLabel(g2d, project, outlineMode, componentState);
drawlTerminalLabels(g2d, finalBorderColor, project);
drawTerminalLabels(g2d, finalBorderColor, project);
}
@SuppressWarnings("incomplete-switch")
@@ -107,6 +107,7 @@ public class P90Pickup extends AbstractSingleOrHumbuckerPickup {
g2d.fill(body[1]);
// g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR);
// g2d.fill(body[2]);
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
Color finalBorderColor;
@@ -153,7 +154,7 @@ public class P90Pickup extends AbstractSingleOrHumbuckerPickup {
// VerticalAlignment.CENTER);
drawMainLabel(g2d, project, outlineMode, componentState);
drawlTerminalLabels(g2d, finalBorderColor, project);
drawTerminalLabels(g2d, finalBorderColor, project);
// terminal labels
// Point[] points = getControlPoints();
// g2d.setColor(finalBorderColor);
@@ -90,6 +90,7 @@ public class PBassPickup extends AbstractSingleOrHumbuckerPickup {
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color);
g2d.fill(body[0]);
g2d.fill(body[1]);
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
Color finalBorderColor;
@@ -135,7 +136,7 @@ public class PBassPickup extends AbstractSingleOrHumbuckerPickup {
// VerticalAlignment.CENTER);
drawMainLabel(g2d, project, outlineMode, componentState);
drawlTerminalLabels(g2d, finalBorderColor, project);
drawTerminalLabels(g2d, finalBorderColor, project);
}
@SuppressWarnings("incomplete-switch")
@@ -124,6 +124,8 @@ public class SingleCoilPickup extends AbstractSingleOrHumbuckerPickup {
g2d.fill(body[0]);
else
g2d.fill(body[3]);
drawingObserver.stopTracking();
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getLugColor());
g2d.fill(body[1]);
@@ -172,7 +174,7 @@ public class SingleCoilPickup extends AbstractSingleOrHumbuckerPickup {
drawMainLabel(g2d, project, outlineMode, componentState);
drawlTerminalLabels(g2d, finalBorderColor, project);
drawTerminalLabels(g2d, finalBorderColor, project);
}
@Override
@@ -102,6 +102,7 @@ public class StingrayBassPickup extends AbstractGuitarPickup {
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color);
g2d.fill(body[0]);
g2d.fill(body[1]);
drawingObserver.stopTracking();
g2d.setComposite(oldComposite);
Color finalBorderColor;
@@ -148,7 +149,7 @@ public class StingrayBassPickup extends AbstractGuitarPickup {
drawMainLabel(g2d, project, outlineMode, componentState);
drawlTerminalLabels(g2d, finalBorderColor, project);
drawTerminalLabels(g2d, finalBorderColor, project);
}
@SuppressWarnings("incomplete-switch")
@@ -336,4 +337,4 @@ public class StingrayBassPickup extends AbstractGuitarPickup {
// just to disable editor
return super.getPolarity();
}
}
}