2016-05-14 9 views
1

Ich benutze LWJGL, um ein Spiel zu erstellen.LWJGL erstellt kein Fenster mit GLFW_API_UNAVAILABLE Fehler

Aber es gibt ein Problem. Wenn ich glfwCreateWindow aufruft, wirft LWJGL einen Fehler und erstellt kein Fenster.

Hier wird ausgegeben:

[2016-05-14 22:42:04.665] [CubeSystem/INFO] Starting graphics engine... 
[LWJGL] GLFW_API_UNAVAILABLE error 
    Description : WGL: The driver does not appear to support OpenGL 
    Stacktrace : 
     org.lwjgl.glfw.GLFW.nglfwCreateWindow(GLFW.java:1168) 
     org.lwjgl.glfw.GLFW.glfwCreateWindow(GLFW.java:1251) 
     Tmk.MyAdventure.System.CubeSystem.Init(CubeSystem.java:37) 
     Tmk.MyAdventure.Main.main(Main.java:13) 
[2016-05-14 22:42:04.740] [CubeSystem/ERROR] Cannot create window. 

Ich weiß nicht, warum heißt es, dass der Fahrer nicht OpenGL zu unterstützen scheint.

Mein Computer läuft OpenGL-Spiele in Ordnung. Außerdem habe ich den Treiber auf die neueste Version aktualisiert und diese Meldung immer noch angezeigt.

Ich habe dieselbe Nachricht, wenn ich außerhalb der IDE laufe.

Hier Code:

.... 

public class CubeSystem { 
    private static Logger l = new Logger("CubeSystem"); 

    private static final int DEFAULT_WIDTH = 640; 
    private static final int DEFAULT_HEIGHT = 480; 

    private long window; 

    public CubeSystem() { 
    } 

    public boolean Init() { 
     l.Info("Starting graphics engine..."); 
     //Configure error stream 
     GLFWErrorCallback.createPrint(System.err).set(); 
     if(glfwInit() != GL_TRUE) { 
      l.Err("Cannot initialize GLFW."); 
      return false; 
     } 
     //Configure window 
     glfwDefaultWindowHints(); 
     glfwWindowHint(GLFW_VISIBLE, GLFW_TRUE); 
     glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE); 
     window = glfwCreateWindow(DEFAULT_WIDTH, DEFAULT_HEIGHT, "My Adventure", NULL, NULL); 
     if(window == NULL) { 
      l.Err("Cannot create window."); 
      return false; 
     } 

     glfwDestroyWindow(window); 
     glfwTerminate(); 
     glfwSetErrorCallback(null).release(); 

     return true; 
    } 
} 

HINWEIS: Beginnt bei Init() -Methode.

+0

Haben Sie die LWJGL Eingeborenen richtig verbunden? – RecursiveExceptionException

+0

'WGL: Der Treiber scheint OpenGL nicht zu unterstützen'. Entweder ein Fehler in LWJGL, in diesem Fall könnten Sie eine andere Version versuchen, oder Ihr Computer mag nicht GLFW – RecursiveExceptionException

Antwort

0

Ich glaube, Sie fehlen zusätzliche hints.Here ist, wie ich GLFW verwenden. (C++)

if (!glfwInit()) { 

     throw; 

    } 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);//using OpenGL 4.3 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE); 
    glfwWindowHint(GLFW_SAMPLES, 8); 



#ifdef _DEBUG 

    glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); 

#else 
    glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_FALSE); 

#endif 

    glfwWindowHint(GLFW_RED_BITS, 8); 
    glfwWindowHint(GLFW_GREEN_BITS, 8); 
    glfwWindowHint(GLFW_BLUE_BITS, 8); 
    glfwWindowHint(GLFW_ALPHA_BITS, 8); 
    glfwWindowHint(GLFW_DEPTH_BITS, 0); 
    glfwWindowHint(GLFW_STENCIL_BITS, 8); 
    _glfwWin = glfwCreateWindow(winW, winH, "Display", NULL, NULL); 
+0

Ich habe versucht, zusätzliche Hinweise hinzuzufügen. Aber hat nicht funktioniert. Außerdem habe ich verschiedene OpenGL-Versionen wie 1.1, 1.5 und 2.1 ausprobiert, die alle nicht funktionierten. – Gippeumi