private float paintLineLayoutWithEffect( Graphics2D g, LineLayout layout, float x, float y, @Nullable Color effectColor, @Nullable EffectType effectType) { float initialX = x; for (LineLayout.VisualFragment fragment : layout.getFragmentsInVisualOrder(x)) { fragment.draw(g, x, y); x = fragment.getEndX(); } if (hasTextEffect(effectColor, effectType)) { paintTextEffect(g, initialX, x, (int) y, effectColor, effectType); } return x; }