2013-12-24 3 views
1

В моем случае .. Эта проблема была устранена путем обновления драйвера видеокарты.GLEW OpenGL Нарушение прав доступа при использовании glGenVertexArrays


Я искал и нашел людей с той же проблемой, на StackOverflow и в Интернете. Однако ответы не решают мою проблему.

Я использую SDL2 и GLEW. При запуске приложения, я получаю '' нарушение доступа '' ошибка при выполнении этой функции:

glGenVertexArrays(1, &VertexArrayID); 

Мой код:

bool Game::initSDL(char* title, int xpos, int ypos, int width, int height, int flags) { 
if(SDL_Init(SDL_INIT_EVERYTHING)>=0) { 
    Uint32 flags = SDL_WINDOW_SHOWN|SDL_WINDOW_OPENGL; 
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION,4); 
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); 
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); 
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); 

    mainWindow = SDL_CreateWindow(title, xpos, ypos, width, height, flags); 
    mainGLContext = SDL_GL_CreateContext(mainWindow); 

    SDL_GL_SetSwapInterval(1); 

    // Initialize GLEW 
    glewExperimental = true; // Needed for core profile 
    GLenum err = glewInit(); 
    if (GLEW_OK != err) 
    { 
     /* Problem: glewInit failed, something is seriously wrong. */ 
     fprintf(stderr, "Error: %s\n", glewGetErrorString(err)); 

    } 
    // Dark blue background 
    glClearColor(0.0f, 0.0f, 0.4f, 0.0f); 

    GLuint VertexArrayID; 
    glGenVertexArrays(1, &VertexArrayID); 
    glBindVertexArray(VertexArrayID); 

} else { 
    return false; 
} 
return true; 
} 
+0

попробуйте установить VertexArrayID в 0 first GLuint VertexArrayID = 0; –

+0

@jamolnng: это бессмысленная операция – derhass

+0

Спасибо за ваш комментарий. К сожалению, он по-прежнему не работает (такая же ошибка). – user3125591

ответ

7

попробуйте добавить это, glewExperimental = GL_TRUE ;, перед glewInit().

glewExperimental = GL_TRUE; 
glewInit(); 
+0

К сожалению, к сожалению. – user3125591

+0

попробуйте прокомментировать два метода SDL_GL_SetAttribute (SDL_GL_CONTEXT_ *, *) и посмотрим, что произойдет –

+0

У меня была такая же проблема, как и у пользователя3125591, и я решил ее использовать с помощью glewExperimental = GL_TRUE fix. Благодаря ! Я следовал учебнику по адресу http://openglbook.com/chapter-2-vertices-and-shapes.html, где у меня была проблема. –

Смежные вопросы