OpenGL ES 1.1 aime bloquer mon programme iPhone si quelque chose ne va pas.Comment faire pour déboguer OpenGL ES se bloque?
Habituellement, cela se passe quelque part dans glDrawArrays, avec plusieurs appels glDestroyContext sur la pile.
En général, je suis bissectrice le problème en insérant
{
GLint iErr = glGetError();
if (iErr != GL_NO_ERROR)
{
NSLog(@"GL error: %d (0x%x)", iErr, iErr);
}
}
partout.
Cependant, parfois, ce n'est pas suffisant. Existe-t-il d'autres moyens d'obtenir des diagnostics utiles sur les raisons de l'accident?
Aucun message de console supplémentaire (c'est-à-dire, en dehors du type de crash - c'est généralement un mauvais accès en effet). Habituellement, il s'agit de mauvaises données d'entrée, ou j'ai oublié d'activer certains états. Mais il faut du temps pour trouver ce qui a mal tourné spécifiquement. Habituellement, je dois recourir à la recherche binaire. :( –
Je vérifierais pour vous assurer que vous n'essayez pas de dessiner plus de triangles que vos tampons contiennent.Il semble que OpenGL entre dans la mémoire qu'il ne devrait pas, ce qui signifie probablement que vous avez dit que vous avez plus de vertices que vous avez vraiment dans le tampon. –