PlayN中没有发现OpenGL上下文错误

时间:2013-04-01 10:51:39

标签: opengl playn

使用PlayN,我试图在方形图层上更改图像。我正在尝试创建一个翻转效果来改变图像。我这样做是通过将图层的原点设置为图像的中心,然后减小宽度并在宽度几乎为零(图像不可见)时更改图像,然后将宽度增加回原始尺寸。

我正在使用自定义计时器任务来进行此转换。

现在我有一个问题和一个问题。

问题是,是否有更好的方法来实现我想要做的事情

问题是图像完全翻转但是当我再次点击图像将其翻转时我得到以下错误

[java] Exception in thread "Timer-1" java.lang.RuntimeException: No OpenGL context found in the current thread.
 [java]   at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
 [java]   at org.lwjgl.opengl.GL11.glDeleteTextures(GL11.java:721)
 [java]   at playn.java.JavaGL20.glDeleteTextures(JavaGL20.java:1050)
 [java]   at playn.core.gl.GL20Context.destroyTexture(GL20Context.java:164)
 [java]   at playn.core.gl.ImageGL.clearTexture(ImageGL.java:60)
 [java]   at playn.core.gl.ImageGL.release(ImageGL.java:87)
 [java]   at playn.core.gl.ImageLayerGL.setImage(ImageLayerGL.java:74)
 [java]   at playn_poc.core.util.RotationTimerTask.run(RotationTimerTask.java:51)
 [java]   at java.util.TimerThread.mainLoop(Timer.java:512)
 [java]   at java.util.TimerThread.run(Timer.java:462)

1 个答案:

答案 0 :(得分:0)

你只能在主线程(调用update()/ paint()方法的线程)中调用draw方法 - 如果你创建了一个计时器任务,我假设它是在另一个线程上运行的,那么它就不会有gl背景。不要使用计时器任务,或使用计时器任务,而是抛出事件,并在主update()/ paint()方法中侦听事件以执行操作。