当我几个月前开始为“GL2 gl”学习Opengl(JOGL)时遇到了类似的问题......然后我发现了如何解决(所有与“gl”有关的东西都应该从显示器中调用/初始化方法)。
一段时间后,我还需要使用“GLU glu”(用于 gluOrtho2D)。于是这个问题又出现了。但是可以说这不是什么大问题,因为尽管出现了这个错误,程序运行良好。
不幸的是,现在这个问题似乎有一些烦人的影响..所以我真的很想解决它。
这里有一些代码:
...
GLU glu = new GLU();
public void display(GLAutoDrawable gLAutoDrawable) {
...
// map a 2D bild width*height on OpenGL
glu.gluOrtho2D(-width/2, (width+1)/2, -(height+1)/2, height/2);
}
有趣的是:
我在显示中有其他 glu 调用,例如“glu.gluLookAt(0, 0, 1, 0, 0, 0, 0, -1, 0);" 我从来没有遇到过问题
仅当我从另一个线程(“glcanvas.display”)调用刷新时才会发生
我已经做了很多尝试,比如每次在显示中初始化它,或者强制上下文:
glu = new GLU(); gLContext = gLCanvas.getContext(); gLContext.makeCurrent();
但到目前为止没有任何效果:
线程“AWT-EventQueue-0”javax.media.opengl.GLException 中的异常:javax.media.opengl.glu.GLU.getCurrentGL(GLU.java:175) 处 javax.media.opengl.glu.GLU.getCurrentGL(GLU.java:175) 处的此线程上没有 OpenGL 上下文。 .glu.GLU.gluOrtho2D(GLU.java:1344)