JOGL には addGLEventListener があります。それにリスナーを追加しました。display() "callback on gl" が呼び出されると、画面が黒く印刷されますが、4 フレーム後にdisplay()
何かが印刷されます。
display()
最初のコールバックで何かを印刷する方法はdisplay()
?
アプリケーションがインターフェイス GLEventListener を実装する場合、常に次のシーケンスがあり
ます。
—reshape();
-画面()。
私の意見では、関数 display() の描画シーケンスが間違っています。
このようにしてみてください:
public void display(GLAutoDrawable drawable) {
gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glColor3f(1.0f, 1.0f, 1.0f);
gl.glBegin(GL.GL_POLYGON);
gl.glVertex2f(-0.5f, -0.5f);
gl.glVertex2f(-0.5f, 0.5f);
gl.glVertex2f(0.5f, 0.5f);
gl.glVertex2f(0.5f, -0.5f);
gl.glEnd();
drawable.swapBuffers(); // — it's for double buffering
}