final Color color) {
super(point, pointSize, getTexture(color));
this.color = color;
+
+ synchronized (glowingPoints){
+ glowingPoints.add(this);
+ }
}
private static Texture getTexture(final Color color) {
// attempt to reuse texture from existing glowing point of the same color
- for (GlowingPoint glowingPoint : glowingPoints)
- if (color.equals(glowingPoint.color)) return glowingPoint.texture;
+ synchronized (glowingPoints) {
+ for (GlowingPoint glowingPoint : glowingPoints)
+ if (color.equals(glowingPoint.color))
+ return glowingPoint.texture;
+ }
// existing texture not found, creating new one
return createTexture(color);