/*
- * Sixth 3D engine. Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * Sixth 3D engine. Copyright ©2012-2019, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 3 of the GNU Lesser General Public License
public class GlowingPoint extends ForwardOrientedTexture {
private static final int TEXTURE_SIZE = 50;
+ private static final Set<GlowingPoint> glowingPoints = Collections.newSetFromMap(new WeakHashMap<>());
private final Color color;
- private static final Set<GlowingPoint> glowingPoints = Collections.newSetFromMap(new WeakHashMap<GlowingPoint, Boolean>());
-
public GlowingPoint(final Point3D point, final double pointSize,
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);