0
我故障排除在新計算機上的OpenGL應用程序時,我發現GLFW無法創建與OpenGL的指定版本的窗口。我創建了一個最小版本的應用程序來測試創建的OpenGL版本,不管我提示什麼版本,我得到的版本是0.0。我只是沒有OpenGL?這似乎是不可能的,因爲glxgears運行,glxinfo表明我有版本2.1。爲什麼OpenGL版本爲0.0?
#include <iostream>
#include <GLFW/glfw3.h>
int main(int argc, const char *argv[]) {
if(!glfwInit()) {
return 1;
}
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
auto win = glfwCreateWindow(640, 480, "", NULL, NULL);
if(!win) {
return 1;
}
int major = 0, minor = 0;
glfwMakeContextCurrent(win);
glGetIntegerv(GL_MAJOR_VERSION, &major);
glGetIntegerv(GL_MINOR_VERSION, &minor);
std::cout << "Initialized with OpenGL "
<< major << "." << minor << std::endl;
glfwDestroyWindow(win);
glfwTerminate();
}
該應用程序的輸出是「用OpenGL 0.0初始化」。一個窗口短暫地打開和關閉,應用程序終止而沒有錯誤。
AFAIK報告的數值是最終取決於你的驅動程序。你使用什麼操作系統和驅動程序版本? –
我正在使用Linux 4.4.0-36,Ubuntu,我不確定驅動程序。然而,我的供應商是英特爾開源技術中心,我的渲染器是Mesa DRI,Ironlake Mobile。 –