Je ne dessine que 4 sommets. J'essaie de rendre un simple quad en utilisant glDrawElements
mais rien ne semble fonctionner. J'ai écrit un code identique en Java et il fonctionne. Ceci, cependant, ne fonctionne pas.
Voici le code du dessin :
glUseProgram(mProgram);
glBindBuffer(GL_ARRAY_BUFFER, mBuffers[0]);
glEnableVertexAttribArray(mPosAttr);
glVertexAttribPointer(mPosAttr, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mBuffers[1]);
if (er == 0){ er = glGetError(); std::cout<<gluErrorString(er)<<std::endl; }
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_SHORT, (void*)0);
glDisableVertexAttribArray(mPosAttr);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glUseProgram(0);
J'ai laissé de côté des choses inutiles comme glUniform__
J'obtiens le même résultat dans les deux cas. Quoi qu'il en soit, cela donne "pas d'erreur" la première fois, puis "out of memory" la seconde. Cela signifie que le problème est certainement causé par glDrawElements.
Pourquoi cela se produit-il ? Qu'est-ce qui pourrait y remédier ? Dois-je fournir plus de code ?