Enable glowing point texture caching.
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Tue, 13 Jun 2017 09:55:53 +0000 (12:55 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Tue, 13 Jun 2017 09:55:53 +0000 (12:55 +0300)
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/GlowingPoint.java

index 4dd454f..339d6bb 100644 (file)
@@ -28,12 +28,19 @@ public class GlowingPoint extends ForwardOrientedTexture {
                         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);