diff --git a/src/projectzombie/display/DisplayLighting.java b/src/projectzombie/display/DisplayLighting.java index ec86524..02089e6 100755 --- a/src/projectzombie/display/DisplayLighting.java +++ b/src/projectzombie/display/DisplayLighting.java @@ -1,6 +1,7 @@ package projectzombie.display; import java.nio.ByteBuffer; +import java.util.concurrent.atomic.AtomicReference; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL33; @@ -36,18 +37,18 @@ public class DisplayLighting private static boolean lighting_new = false; public static int lightmap; - private static Lighting lighting; + private static AtomicReference lighting = new AtomicReference(); public static void setDirty() { lighting_dirty = true; } - private synchronized static Lighting getLighting() { - return lighting; + private static Lighting getLighting() { + return lighting.get(); } - private synchronized static void setLighting(Lighting lighting) { - DisplayLighting.lighting = lighting; + private static void setLighting(Lighting lighting) { + DisplayLighting.lighting.set(lighting); lighting_new = true; } diff --git a/src/projectzombie/worker/WorkerLighting.java b/src/projectzombie/worker/WorkerLighting.java index 60d1760..17b2c53 100644 --- a/src/projectzombie/worker/WorkerLighting.java +++ b/src/projectzombie/worker/WorkerLighting.java @@ -1,5 +1,7 @@ package projectzombie.worker; +import java.util.concurrent.atomic.AtomicReference; + import projectzombie.display.DisplayLighting; import projectzombie.task.Task; @@ -14,7 +16,7 @@ public class WorkerLighting extends Thread } private boolean running; - private LightingTask task; + private AtomicReference task = new AtomicReference(); public void processLighting(float[] lights, int width, int height, int x, int y) { @@ -25,7 +27,7 @@ public class WorkerLighting extends Thread task.x = x; task.y = y; - this.task = task; + this.task.set(task); } private float getLight(LightingTask task, int x, int y) { @@ -78,7 +80,7 @@ public class WorkerLighting extends Thread { while(running) { - LightingTask task = this.task; + LightingTask task = this.task.get(); if(task != null) {