Объект буфера вершин не отображается в окне SDL

Я просто использую шаблон opengl SDL с Xcode, и все работает нормально. Я удалил код Atlantis и изменил основное расширение на .mm, а затем добавил тестовый код в drawGL. Рисование простого треугольника (с использованием немедленного режима) в этой точке внутри drawGL дает мне белый треугольник, но когда я добавляю код для рисования с использованием объекта буфера вершин, я просто получаю черное окно.

Вот мой код рисования VBO:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     // Clear The Screen And The Depth Buffer
glLoadIdentity();

GLuint buffer;

float vertices[] = {
    0.0f, 1.0f, 0.0f,
    -1.0f,-1.0f, 0.0f,
    1.0f,-1.0f, 0.0f
};

// VBO doesn't work :(
glGenBuffers(1, &buffer);
glBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, vertices, GL_STATIC_DRAW);

glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);

person Ryan_IRL    schedule 22.03.2010    source источник


Ответы (1)


Ваш glVertexPointer() вызов выглядит подозрительным на использование VBO. Я думаю, вам нужна BUFFER_OFFSET конструкция вместо vertices указателя.

person genpfault    schedule 22.03.2010