0

数か月前に「GL2gl」でOpengl(JOGL)を学び始めたときに、同様の問題が発生しました。その後、解決方法を発見しました(「gl」に関係するものはすべて、ディスプレイ内から呼び出す必要があります/ initメソッド)。

しばらくして、「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.gluLookAt(0、0、1、0、0、0、0、-1、0);」のような他のglu呼び出しが表示されます。そこに問題が発生したことはありません

  • 別のスレッド( "glcanvas.display")からリフレッシュを呼び出した場合にのみ発生します

  • ディスプレイで毎回初期化する、またはコンテキストを強制するなど、すでに多くの試みを行いました。

    glu = new GLU();
    gLContext = gLCanvas.getContext();
    gLContext.makeCurrent();
    

しかし、これまでのところ何も機能していません。

スレッド"AWT-EventQueue-0"の例外javax.media.opengl.GLException:javax.media.openglのjavax.media.opengl.glu.GLU.getCurrentGL(GLU.java:175)で、このスレッドに現在のOpenGLコンテキストがありません.glu.GLU.gluOrtho2D(GLU.java:1344)

4

1 に答える 1

1

getContextとmakeCurrentをglu.gluOrtho2Dの直前に移動しようとしましたが、機能しました。

于 2012-08-21T08:05:43.847 に答える