В моем случае .. Эта проблема была устранена путем обновления драйвера видеокарты.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;
}
попробуйте установить VertexArrayID в 0 first GLuint VertexArrayID = 0; –
@jamolnng: это бессмысленная операция – derhass
Спасибо за ваш комментарий. К сожалению, он по-прежнему не работает (такая же ошибка). – user3125591