I'm having an issue where if I try to call drawLine from a class extended from TimerTask, GL will produce an exception.
Here's my drawing code. MainGame.graphics is updated periodically in that class.
Code:
import java.util.TimerTask;
import org.newdawn.slick.Graphics;
public class DrawBox extends TimerTask{
Graphics g = MainGame.graphics;
float start = 0;
float startY = 0;
float end = 1;
float endY = 1;
long time = 0;
public void run() {
System.out.println(g);
g = MainGame.graphics;
g.drawLine(start, startY, end-((time/50)*(time/50)), startY);//top line
g.drawLine(start, endY, end-((time/50) * (time/50)), endY);//bottom line
g.drawLine(start, startY, start, endY-((time/50)*(time/50)));//left
g.drawLine(end-((time/50)*(time/50)), startY, end, endY-((time/50)*(time/50)));//right
if(time == 1000){
this.cancel();
return;
}
time += 50;
}
}
Error:
Code:
Exception in thread "Timer-1" java.lang.NullPointerException
at org.lwjgl.opengl.GL11.glDisable(GL11.java:1009)
at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glDisable(ImmediateModeOGLRenderer.java:147)
at org.newdawn.slick.opengl.TextureImpl.bindNone(TextureImpl.java:120)
at org.newdawn.slick.Graphics.fillRect(Graphics.java:888)
at org.newdawn.slick.Graphics.drawLine(Graphics.java:473)
at DrawBox.run(DrawBox.java:18)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)