我有一个在启动时加载一系列大图像的应用程序。这是一个处理应用程序,所以大多数事情都在单个主动画线程上运行,并且它使用处理的 OpenGL 渲染器。
编辑:当 JOGL 中的某个进程花费 > 5 秒时,将引发 RuntimeException。将堆栈备份到后续loadImage()
调用意味着避免了 RuntimeException。我还不清楚如何重现这一点,因此还没有找到解决方法来保存丑陋的 try-catch + 反射解决方法。
图像加载有时需要超过 5 秒,当它们加载时,JOGL 从内部抛出一个 RuntimeException 我的理解是,RecursiveLockImpl01Unfairish.lock()
。RecursiveLockImpl01Unfairish.lock()
如果主 GL 动画线程停止执行 > 5 秒,则会抱怨。
有一个简单的解决方法吗?我可以将图像加载转移到不同的线程并重新调整我的初始化序列以使其更加异步,但是对于只发生一次的事情,在应用程序初始化时,在应用程序有足够的时间启动时,这是很多工作不管。
(注意:这是为了安装,早上第一次启动时没有人在场或尝试使用该应用程序,因此在初始化时延迟几秒钟不是问题。)