JOGL - OpenGL是否使用AWT线程来渲染图形?

4

我正在使用Java OpenGL (jogl)编写一个简单的程序。在display()方法中,我打印了线程的名称,并且输出显示为AWT线程。那么OpenGL不是应该使用自己的线程吗?


我认为JOGL使用AWT框架来渲染内容。 - skyuzo
2个回答

3

大多数情况下,这取决于您使用的版本。

对于早期版本1.0和1.1,jogl默认使用不同的线程进行渲染。 在版本1.1.1中,它被切换为默认使用AWT线程。

可以通过命令行手动控制此设置,使用-Djogl.1thread=true强制在AWT线程上进行单线程渲染,或使用-Djogl.1thread=false强制进行多线程渲染(每个画布一个线程)在AWT线程之外。

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


0

OpenGL 库通过钩入本地 Java Display 和通用框架来工作。您可以在 AWT 线程中创建一个新的画布,然后为 Display 创建一个新线程,在新线程中将新画布设置为 displayparent,这样 Display 就不会在 AWT 线程中运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接