2016-09-20 2103 views
2

我正在将我的简单lwjgl3游戏移植到C++,并得到了Error: WGL: The driver does not appear to support OpenGL。该代码是在java中几乎是相同的,所以我不知道什么是错的,以及如何解决它:GLFW:创建窗口时'WGL:驱动程序似乎不支持OpenGL'错误

int main(int argc, char** argv) { 
    glfwSetErrorCallback(error_callback); 
    if (!glfwInit()) { 
     std::cerr << "Failed to initialize GLFW" << std::endl; 
     return -1; 
    } 

    glfwDefaultWindowHints(); 
    //glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
    //glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1); 
    glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE); 
    glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); 
    glfwWindowHint(GLFW_SAMPLES, 4); 

    GLFWwindow* window = glfwCreateWindow(640, 480, "Example", nullptr, nullptr); 
    if (!window) { 
     std::cerr << "Failed to create window" << std::endl; 
     glfwTerminate(); 
     return -1; 
    } 
    ... 

我使用msys2的MinGW-W64,并在MinGW的-W64外壳程序编译。首先,我认为问题出在我创建的glfw3上,所以我使用了glfw的lwjgl3副本,并得到了相同的错误。我尝试过推荐的提示,上下文版本等,但无济于事。我很确定驱动程序支持OpenGL,并且确保我也检查了更新。

虽然测试的东西,看看有什么工作,没有,我已经证实,所有glfw和SFML的例子不工作(我已经与mingw-w64建成)。在编译过程中没有错误,在cmd中没有例外和/或错误,也没有创建窗口。

我对Windows开发不是很熟悉,所以我不确定这是否是mingw-w64,glfw或wgl的问题。

+0

您是在虚拟机还是通过远程桌面运行? – genpfault

+0

@genpfault既不是,所有东西都是本地运行/编译的 –

+0

您应该安装支持OpenGL的视频驱动程序。通常这可以从OEM网站下载。 – elmindreda

回答

0

只使用独立的mingw-w64解决了它。现在相同的程序运行良好,没有任何错误,更不用说glfw和SFML示例现在也运行了。

我还没有发现什么可能导致错误,我想它与msys2有关,但现在问题已解决。

相关问题