Made the lighting thread safe
This commit is contained in:
parent
7c176bbcde
commit
25314cfebb
|
|
@ -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> lighting = new AtomicReference<DisplayLighting.Lighting>();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<LightingTask> task = new AtomicReference<WorkerLighting.LightingTask>();
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue