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。 –