【发布时间】:2015-12-18 14:00:49
【问题描述】:
我知道这个问题已经被问过好几次了,我在任何地方都找不到完美的答案。
我一直在尝试使用 LWJGL 中的第二个线程来加载纹理,而在加载纹理时进度条会在显示屏上填满。我已经编写了所有代码,但是当我开始第二个线程,它返回一个异常,即:
Exception in thread "Thread-1" java.lang.RuntimeException: No OpenGL context found in the current thread
我在主线程中使用 OGL 来渲染场景。当那个场景正在渲染它的东西时,我想加载纹理。
我尝试将线程设为Daemon Thread,但返回相同的错误。
如何确保“纹理加载”线程正在加载其纹理,而主线程正在更新其场景?
或者有其他方法吗?
一些代码:
mainScreen = new MainScreen();
MainScreen.java:
public void update() {
gameInitialiser.start();
do {
updateGameInitialiser();
super.update();
SceneRenderer.renderScene();
GuiRenderer.renderGui();
DisplayManager.updateDisplay();
} while(!Keyboard.isKeyDown(Keyboard.KEY_ESCAPE));
}
public void updateGameInitialiser() {
if(gameInitialiser.isInterrupted()) {
System.err.println("The Game Initialiser has been interrupted..");
} else if(!gameInitialiser.isAlive()) {
System.out.println("The Game Initialiser has been ended!");
}
}
【问题讨论】:
标签: java multithreading opengl textures lwjgl