2010-03-22 4 views
1

Je n'utilise que le modèle SDL opengl avec Xcode, et tout fonctionne bien. J'ai enlevé le code d'Atlantis et ai changé l'extension principale en .mm, puis j'ai ajouté du code de test à drawGL. Dessiner un triangle simple (en utilisant le mode immédiat) à ce point à l'intérieur de drawGL me donne un triangle blanc, mais quand j'ajoute le code pour dessiner en utilisant un objet buffer de vertex, je viens d'obtenir une fenêtre noire.Objet Vertex Buffer ne dessine pas dans la fenêtre SDL

Voici mon VBO code de dessin:

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); 

Répondre

1

Votre appel glVertexPointer() semble suspect pour une utilisation VBO. Je pense que vous avez besoin d'un BUFFER_OFFSETconstruct au lieu du pointeur vertices.

Questions connexes