我正在尝试让自己参与到 Libgdx OpenGL 框架中。我曾经LwjglApplication
创建过一些简单的应用程序来渲染盒子、一些网格和一些纹理。我遇到了 Aurelien Ribon 的创建刚性 Box2D 物体的应用程序。他用来LwjglCanvas
与 Java 的 Swing 集成。我尝试自己制作一个,我创建了一个JFrame
然后添加了LwjglCanvas
. 然后将JFrame
' 的默认操作设置为 close to EXIT_ON_CLOSE
。
但是,每次我关闭应用程序时,都会记录到我的控制台:
AL lib: alc_cleanup: 1 device not closed
.
我不知道这意味着什么,它对我没有任何伤害。我只是想知道这意味着什么。根据LwjglCanvas
文档:
All OpenGL calls are done on the EDT. This is slightly less efficient then a dedicated thread, but greatly simplifies synchronization. Note that you may need to call stop() or a Swing application may deadlock on System.exit due to how LWJGL and/or Swing deal with shutdown hooks.
我应该在哪里绑定LwjglCanvas.stop()
,我应该将它添加到EventDispatchThread
队列中还是应该将它绑定到JFrame.addWindowListener
?
“AL lib:alc_cleanup:1 个设备未关闭”的真正含义是什么?
非常感谢!