我的程序中运行了两个线程。当我尝试在不是我主要的线程中使用OpenGL函数时,它会抛出IllegalStateException:当前线程中没有OpenGL上下文。所以我的问题是,如何将主要线程的上下文传递给另一个线程?我正在使用LWJGL 3。
答案 0 :(得分:2)
我想我已经解决了,但我并不是100%确定这是最好的方法。你必须调用GLFW.glfwMakeContextCurrent(MemoryUtil.NULL);在你要离开的主题中,然后调用GLFW.glfwMakeContextCurrent(window); GLContext.createFromCurrent();来自您要切换到的主题。
答案 1 :(得分:0)
看看this example。它使用您可以在两个Java线程中使用的Drawable。我不完全确定它是否仍然有效,因为很多这个类与LWJGL 2有关。我会很快测试它并让你知道这个或你的方法是否更有效(将创建一个微小的基准测试:)