2010-06-27 5 views
0

J'ai ce problème quand il y a une application OpenGL sur laquelle je travaille. Quand j'essayer de dessiner ce morceau de code particulier:Problème 'SIGTERM'

for (float i = 0; i < 100; i++) 
{ 
    glBegin(GL_LINE_LOOP); 
    glVertex3f(cos(i), i, -10.0f); 
} 
glEnd(); 

Je reçois ce problème où le programme se bloque et retourne:

« SIGTERM »

Toutes les suggestions pour me aider autour de cette problème ou tout aperçu de la raison pour laquelle cela se produit serait grandement apprécié.

+0

Bien que cela ne soit pas lié à votre question, l'utilisation de nombres à virgule flottante comme variables de boucle est presque toujours une mauvaise idée en raison de l'accumulation d'erreurs à virgule flottante. Vous devriez toujours garder la variable loop comme un entier et la convertir en float interne. –

Répondre

2

Par the docs, vous avez besoin d'un glBegin par glEnd - pas les 10 000 ou plus que vous faites!

+0

Les mots ne peuvent décrire comment je me sens stupide en ce moment. Merci! –

+0

@thyrgle, vous êtes les bienvenus - et, remonter le moral, les oublis peuvent et arrivent à chacun d'entre nous! -) –

+0

Cela résout le problème, mais nous devons nous demander pourquoi il SIGTERMs ... il devrait juste déclencher une erreur GL. (GL_INVALID_OPERATION est généré si glBegin est exécuté entre un glBegin et l'exécution correspondante de glEnd.) – Bahbar