2016-09-20 203 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有關,但現在問題已解決。

相關問題