我正在用 Java OpenGL (jogl) 制作一个简单的程序。在 display() 方法中,我打印了线程的名称,输出显示它是 AWT 线程。 OpenGL 不使用自己的线程吗?
最佳答案
这主要取决于您使用的版本。
对于早期版本 1.0 和 1.1,jogl 默认使用不同的线程进行渲染。
对于 1.1.1 版,它已切换为默认使用 AWT 线程。
这可以使用 -Djogl.1thread=true
从命令行手动控制。在 AWT 线程或 -Djogl.1thread=false
上强制单线程渲染在 AWT 线程之外强制进行多线程渲染(每个 Canvas 一个)。
较新版本的 Jogl 提供了一个名为 NEWT 的自定义工具包,它将在 AWT 线程之外执行渲染。
Jogl 1.0/1.1.1 线程行为描述如下:http://download.java.net/media/jogl/doc/userguide/在“多线程问题”部分
可以在此处找到有关 NEWT 线程的更多信息:http://jogamp.org/jogl/doc/NEWT-Overview.html
关于multithreading - JOGL - OpenGL 是否使用 AWT 线程来渲染图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7912589/