3

我们有一个使用 java 3D API 的应用程序。我知道 java 3D 将尝试使用机器上可用的任何 3D 渲染引擎。

  1. 是否有 API 可以检测客户端机器是否能够使用整个 java 3D API?

示例:最近我们从一个使用带有 Java Web Start 10.25.2.16 的 Windows 8 平板电脑、使用 JRE 版本 1.7.0_25-b16 Java HotSpot(TM) 客户端 VM 的客户端获得了下面的堆栈跟踪。

Exception occurred in RenderingErrorListener:java.lang.NullPointerException
            at sun.awt.SunToolkit.getSystemEventQueueImplPP(Unknown Source)
            at sun.awt.SunToolkit.getSystemEventQueueImplPP(Unknown Source)
            at sun.awt.SunToolkit.getSystemEventQueueImpl(Unknown Source)
            at java.awt.Toolkit.getEventQueue(Unknown Source)
            at java.awt.EventQueue.invokeLater(Unknown Source)
            at javax.swing.SwingUtilities.invokeLater(Unknown Source)

我们实现了 javax.media.j3d.RenderingError 并得到以下消息:

OFF_SCREEN_BUFFER_ERROR:渲染器:创建 Canvas3D 屏幕外缓冲区 graphicsDevice = Win32GraphicsDevice[screen=0] 时出错

  • 有没有办法获得有关错误的更多详细信息?
  • 有没有办法调试渲染引擎发现/选择?
4

1 回答 1

1

Java 7u25 中的 WebStart 版本不再将 sun.awt.AppContext 存储在系统线程组中。它将 AppContext 存储在主线程上。

因此属于线程组的线程不是主线程组的父或祖父没有AppContext。

另请参阅:通过 Java Webstart 运行时在 invokeLater 中出现 NullPointerException

于 2013-06-25T14:35:15.243 回答