2017-06-02 30 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

glewまたは任意のglコマンドを使用する前に、glコンテキストを作成して最新の状態に設定してみてください。 – Ripi2

答えて

3

あなたはglewInit()戻っGLEW_OKは(そして、それはあなたが現在のGLコンテキストを持っていないないので)のでglGenVertexArrays()glBindVertexArray()はまだ両方のNULL関数ポインタであることを確認することはありません。

Calling NULL is bad.

また、現在のGLコンテキストはどちらかのGLバージョンチェック(if(GLEW_VERSION_3_0)...)または拡張(if(GLEW_ARB_vertex_array_object)...)を介して、それらを使用する前にVAOsをサポートしていることを確認する必要があります。

GLコンテキストを作成して最新のものにするには、SDL2またはGLFW3をお勧めします。

+0

ああ、はい.GLの文脈...私はちょっと愚かな気がする。 – vktrbhm

関連する問題