1

最近 lwjgl を使い始めましたが、何の問題もありません。昨日、私は新しいウィンドウを作成しに行きました(それ以上ではないにしても、少なくとも十数回は行ったことがあります)、実行するとこれらのエラーが発生しました

Exception in thread "main" java.lang.RuntimeException: No OpenGL context found in the current thread.
    at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
    at org.lwjgl.opengl.GL11.glMatrixMode(GL11.java:2051)
    at Main.initGL(Main.java:10)
    at Main.main(Main.java:34)

私のコードは

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import static org.lwjgl.opengl.GL11.*;

public class Main
{
    public static void initGL()
    {
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(0, 640, 480, 0, 1, -1);
        glMatrixMode(GL_MODELVIEW);
    }

    public static void initDisplay()
    {
        try 
        {
            Display.setDisplayMode(new DisplayMode(480, 600));
            Display.setTitle("Texture Demo");
            Display.create();
        }

        catch (LWJGLException e) 
        {
            e.printStackTrace();
        }
        Display.update();
    }

    public static void main(String[] args)
    {
        initGL();
        initDisplay();
    }
}

エラーは表示されません。前述のように、このコードは以前に実行したことがあります。

4

3 に答える 3

1

最近、ゲームを作っているときにこの問題が発生しました。OpenGL の初期化は、ディスプレイの作成後に行う必要があります。また、常にディスプレイを更新する必要があります。そうしないと、作成時にすぐに閉じてしまいます。ここでの例:

    public void run() {
        while(!Display.isCloseRequested) {
            Display.update()
            // Add repainting and input here
        }
    }   

そして、「メイン」メソッドに「実行」メソッドを追加します

于 2013-08-12T20:23:05.250 に答える