Я пытаюсь использовать VBO в своем проекте OpenGL. Я использую библиотеку glew для расширений и glfw для обработки окон. Когда я пытаюсь создать приложение VBO, происходит сбой, и я получаю
Необработанное исключение по адресу 0x00000000 в symulator3C.exe: 0xC0000005: нарушение прав доступа
в функции glGenBuffersARB. Вот мой код:
GLuint vboId1=0; //this is global variable
void createVBO(){
normalsVBO = (float *) malloc(sizeof(float)*3*(SIZE_X-1)*SIZE_Y*2);
verticesVBO = (float *) malloc(sizeof(float)*3*(SIZE_X-1)*SIZE_Y*2);
if(normalsVBO==NULL) exit(-1);
if(verticesVBO==NULL) exit(-1);
glGenBuffersARB(1, &vboId1); //HERE IT CRASHES!
// bind VBO in order to use
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboId1);
...
glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(float)*3*(SIZE_X-1)*SIZE_Y*2, verticesVBO, GL_DYNAMIC_DRAW);
glEnableClientState(GL_VERTEX_ARRAY); // activate vertex coords array
glVertexPointer(3, GL_FLOAT, 0, 0);
}
Я не знаю, что случилось. Конечно, перед вызовом этой функции я вызываю glewInit(), и результатом является успех. РЕДАКТИРОВАТЬ: я использую Visual Studio 2010
ARB_vertex_buffer_object
? Похоже, вы не проверяете это расширение черезGLEW
. - person genpfault   schedule 23.10.2011