2017-06-02 159 views
0

我撥打glGenVertexArrays()時出現分段錯誤。我嘗試設置glewExperimental = GL_TRUE,但我仍然收到錯誤消息。這是我的小代碼。創建VertexArray時出現分段錯誤

#include <GL/glew.h> 
#include <GL/gl.h> 

#include <iostream> 

int main(int argv, char **argc) 
{  

    glewExperimental = GL_TRUE; 
    glewInit(); 

    GLuint vao = 0; 
    glGenVertexArrays(1, &vao); 
    glBindVertexArray(vao); 

    std::cout << "WHY?" << std::endl; 

    return 0; 
} 
+1

嘗試創建一個gl-context,並在使用glew或gl-command之前將其設置爲當前值。 – Ripi2

回答

3

你從來沒有驗證glewInit()回報GLEW_OK(它不會因爲你沒有一個當前GL上下文),所以glGenVertexArrays()glBindVertexArray()都還是空的函數指針。

Calling NULL is bad.

您還應該檢查當前GL上下文使用它們之前支持VAOs,無論是通過GL版本檢查(if(GLEW_VERSION_3_0)...)或延長(if(GLEW_ARB_vertex_array_object)...)。

就創建GL環境並使其最新而言,我建議使用SDL2GLFW3

+0

哦,是的...... GL語境......現在我覺得有點愚蠢。 – vktrbhm