GLFWが指定されたバージョンのOpenGLでウィンドウを作成できなかったことを発見したときに、新しいコンピュータで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の報告値は、最終的にはあなたの運転手に依存します。どのOSとドライバのバージョンを使用していますか? –
私はLinux 4.4.0-36、Ubuntuを使用していますが、ドライバについてはわかりません。しかし、私のベンダーはIntel Open Source Technology Centerで、レンダラーはIronlake MobileのMesa DRIです。 –