javax.media.OpenGL.glu.glu.getCurrentGL上此线程上没有当前的OpenGL上下文

javax.media.OpenGL.glu.glu.getCurrentGL上此线程上没有当前的OpenGL上下文,opengl,exception,glu,openglcontext,Opengl,Exception,Glu,Openglcontext,几个月前,当我开始为“GL2 gl”学习Opengl(JOGL)时,我遇到了类似的问题。。。。然后我发现了如何求解(应该从display/init方法中调用与“gl”相关的所有内容) 一段时间后,我还需要使用“GLU-GLU”(用于GLU2D)。因此,这个问题再次出现。但是我们可以说这并不是什么大问题,因为尽管出现了这个错误,程序仍然运行良好 不幸的是,现在这个问题似乎有一些恼人的影响。。所以我真的很想解决它 下面是一些代码: ... GLU glu = new GLU(); public v

几个月前,当我开始为“GL2 gl”学习Opengl(JOGL)时,我遇到了类似的问题。。。。然后我发现了如何求解(应该从display/init方法中调用与“gl”相关的所有内容)

一段时间后,我还需要使用“GLU-GLU”(用于GLU2D)。因此,这个问题再次出现。但是我们可以说这并不是什么大问题,因为尽管出现了这个错误,程序仍然运行良好

不幸的是,现在这个问题似乎有一些恼人的影响。。所以我真的很想解决它

下面是一些代码:

...
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,-1,0);”我从来没有遇到过问题

  • 只有当我从另一个线程调用刷新(“glcanvas.display”)时,才会发生这种情况

  • 我已经做了很多尝试,比如每次在显示中初始化它,或者使用以下命令强制上下文:

    glu = new GLU();
    gLContext = gLCanvas.getContext();
    gLContext.makeCurrent();
    
但到目前为止一切都不起作用:

线程“AWT-EventQueue-0”javax.media.opengl.gleException中的异常:此线程上没有当前的opengl上下文 位于javax.media.opengl.glu.glu.getCurrentGL(glu.java:175)
在javax.media.opengl.glu.glu.glu.gluOrtho2D(glu.java:1344)

中,我尝试在glu.gluOrtho2D之前移动getContext和makeCurrent,结果成功了