0

当我几个月前开始为“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)

4

1 回答 1

1

我试图在 glu.gluOrtho2D 之前移动 getContext 和 makeCurrent 并且它起作用了..

于 2012-08-21T08:05:43.847 回答