2017-11-01 5 views
0

OpenGL 3.3でアプリケーションをコンパイルしようとしています。グラフィックスカードをオンラインで検索したところ、4.4までサポートされています。不適切なバージョンのOpenGLコンパイル

ここにglxinfoの返信があります。 grepのOpenGLの私はメジャーバージョン3のマイナーバージョン3

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 

を使用し、コアプロファイルを使用しないGLFWを語っています

OpenGL vendor string: Intel Open Source Technology Center 
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.3 
OpenGL core profile shading language version string: 4.50 
OpenGL core profile context flags: (none) 
OpenGL core profile profile mask: core profile 
OpenGL core profile extensions: 
OpenGL version string: 3.0 Mesa 17.2.3 
OpenGL shading language version string: 1.30 
OpenGL context flags: (none) 
OpenGL extensions: 
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 17.2.3 
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 
OpenGL ES profile extensions: 

:私は、バージョン3.3およびコアに喜んでポインティングを建て

プロフィール:

python -m glad --api "gl=3.3" --generator c --out-path ./output --profile core --spec gl 

しかし、私は

glGetString(GL_VERSION) 

を呼び出すとき、私は私が私の人生のために私が欠けているかを把握することはできませんバック

3.0 Mesa 17.2.3 

得ます。あなたはglfwInit()前に、任意のGLFW関数を呼び出すことはできません。このコード

{ 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 
    glfwWindowHint(GLFW_FLOATING, GL_TRUE); 
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); 

    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

    if (!glfwInit()) { 
     std::cout << "glfw not inited" << std::endl; 
    } 

    glfwSetErrorCallback(error_callback); 
    m_game_window = glfwCreateWindow(800, 600, "window", NULL, NULL); 

    if (!m_game_window) { 
     std::cout << "window creation failed" << std::endl; 
     glfwTerminate(); 
     //crash 
    } 

    glfwMakeContextCurrent(m_game_window); 
    gladLoadGLLoader((GLADloadproc) glfwGetProcAddress); 

    glViewport(0, 0, 800, 600); 

    char *version = (char*)glGetString(GL_VERSION); 
    std::cout << version; 
} 
+1

この出力を生成する完全なソースコードを示してください。 – BDL

+0

私が与えたのは実際にはすべてのコード関連でした。しかし、私はアプリケーションの起動時にこのセクションを実行するコードのブロックを含めるために投稿を編集しました。 –

+0

derhassの答えを見ると、完全な例を提供することがなぜ重要か分かります。 – BDL

答えて

2

を実行している

節。あなたのケースでは、ウィンドウヒントはglfwInit()によって完全にリセットされます。