hi
When I change the rendering thread for LWJGL I run into problems. Inside the rendering thread the following code is executed:
if (renderingThread != Thread.currentThread())
{
/*
* Sometimes it is necessary to remeber LWJGL, which Thread is is using ;-)
*/
try
{
if (renderingThread != null)
Display.releaseContext();
Display.makeCurrent();
}
catch (Throwable e)
{
e.printStackTrace();
}
renderingThread = Thread.currentThread();
}
and this is the exception that crashes the game:
java.lang.IllegalStateException: From thread Thread[Thread-4,5,main]: Thread[main,5,] already has the context current
at org.lwjgl.opengl.Context.checkAccess(Context.java:169)
at org.lwjgl.opengl.Context.makeCurrent(Context.java:176)
at org.lwjgl.opengl.Display.makeCurrent(Display.java:625)
at org.xith3d.render.lwjgl.CanvasPeerImpl.renderStart(CanvasPeerImpl.java:652)
at org.xith3d.render.lwjgl.CanvasPeerImpl.display(CanvasPeerImpl.java:1003)
at org.xith3d.render.lwjgl.CanvasPeerImpl.render(CanvasPeerImpl.java:1104)
at org.xith3d.render.Renderer.renderOnceInternal(Renderer.java:552)
at org.xith3d.render.Renderer.renderOnce(Renderer.java:578)
at org.xith3d.scenegraph.VirtualUniverse.renderOnce(VirtualUniverse.java:133)
at org.xith3d.render.base.ExtXith3DEnvironment.render(ExtXith3DEnvironment.java:286)
at org.xith3d.render.loop.RenderLoop.invokeRendering(RenderLoop.java:736)
at org.xith3d.render.loop.RenderLoop.loopIteration(RenderLoop.java:757)
at org.xith3d.render.loop.ExtRenderLoop.loopIteration(ExtRenderLoop.java:349)
at org.stratagem.apps.Stratagem.loopIteration(Stratagem.java:176)
at org.xith3d.render.loop.RenderLoop.nextIteration(RenderLoop.java:924)
at org.xith3d.render.loop.RenderLoop.run(RenderLoop.java:960)
at java.lang.Thread.run(Thread.java:595)
java.lang.NullPointerException
at org.lwjgl.opengl.GL11.glRenderMode(GL11.java:2021)
at org.xith3d.render.lwjgl.CanvasPeerImpl.renderStart(CanvasPeerImpl.java:725)
at org.xith3d.render.lwjgl.CanvasPeerImpl.display(CanvasPeerImpl.java:1003)
at org.xith3d.render.lwjgl.CanvasPeerImpl.render(CanvasPeerImpl.java:1104)
at org.xith3d.render.Renderer.renderOnceInternal(Renderer.java:552)
at org.xith3d.render.Renderer.renderOnce(Renderer.java:578)
at org.xith3d.scenegraph.VirtualUniverse.renderOnce(VirtualUniverse.java:133)
at org.xith3d.render.base.ExtXith3DEnvironment.render(ExtXith3DEnvironment.java:286)
at org.xith3d.render.loop.RenderLoop.invokeRendering(RenderLoop.java:736)
at org.xith3d.render.loop.RenderLoop.loopIteration(RenderLoop.java:757)
at org.xith3d.render.loop.ExtRenderLoop.loopIteration(ExtRenderLoop.java:349)
at org.stratagem.apps.Stratagem.loopIteration(Stratagem.java:176)
at org.xith3d.render.loop.RenderLoop.nextIteration(RenderLoop.java:924)
at org.xith3d.render.loop.RenderLoop.run(RenderLoop.java:960)
at java.lang.Thread.run(Thread.java:595)
Exception in thread "Thread-4" java.lang.Error: java.lang.NullPointerException
at org.xith3d.render.lwjgl.CanvasPeerImpl.display(CanvasPeerImpl.java:1068)
at org.xith3d.render.lwjgl.CanvasPeerImpl.render(CanvasPeerImpl.java:1104)
at org.xith3d.render.Renderer.renderOnceInternal(Renderer.java:552)
at org.xith3d.render.Renderer.renderOnce(Renderer.java:578)
at org.xith3d.scenegraph.VirtualUniverse.renderOnce(VirtualUniverse.java:133)
at org.xith3d.render.base.ExtXith3DEnvironment.render(ExtXith3DEnvironment.java:286)
at org.xith3d.render.loop.RenderLoop.invokeRendering(RenderLoop.java:736)
at org.xith3d.render.loop.RenderLoop.loopIteration(RenderLoop.java:757)
at org.xith3d.render.loop.ExtRenderLoop.loopIteration(ExtRenderLoop.java:349)
at org.stratagem.apps.Stratagem.loopIteration(Stratagem.java:176)
at org.xith3d.render.loop.RenderLoop.nextIteration(RenderLoop.java:924)
at org.xith3d.render.loop.RenderLoop.run(RenderLoop.java:960)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at org.lwjgl.opengl.GL11.glRenderMode(GL11.java:2021)
at org.xith3d.render.lwjgl.CanvasPeerImpl.renderStart(CanvasPeerImpl.java:725)
at org.xith3d.render.lwjgl.CanvasPeerImpl.display(CanvasPeerImpl.java:1003)
... 12 more
Any help would be appreciated. Thanks in advance.
Marvin
