Memoire saturée avec un programme opengl [Résolu]

Signaler
Messages postés
14
Date d'inscription
samedi 1 janvier 2005
Statut
Membre
Dernière intervention
14 février 2005
-
Messages postés
326
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
2 novembre 2007
-
Bonjour! J'ai un problème avec un programme que j'ai fait. Enfait, lorsqu'il est lancé, je fais un gestionnaire des taches et la mémoire augmente jusq'a ce que j'en ai plus et ca plante. Le probleme c'est que dans cette fenetre je ne fais qu'afficher une sphère en 3D, quelques lignes et quelques carrés. Si quelqu'un aurait une piste ou une astuce pour savoir d'ou ca peut provenir, je suis preneur! merci d'avance!

6 réponses

Messages postés
14
Date d'inscription
samedi 1 janvier 2005
Statut
Membre
Dernière intervention
14 février 2005

Le problème venait du fait que je chargeais l'image dans la fonction d'affichage, ce qui provoquait la saturation. J'ai remis la ligne de code dans le main de mon programme et le problème est résolu!
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

T'aurais pas dans ton programme une boucle genre while ou for infinie avec dedans une instruction qui alloue de la mémoire par hasard?
Messages postés
14
Date d'inscription
samedi 1 janvier 2005
Statut
Membre
Dernière intervention
14 février 2005

non je n'ai rien de ce genre. J'ai juste le glutMainLoop dans ma fonction main. est ce que cela pourrait provenir d'un glFlush oublié ou d'un glClear par hasard?
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
Et par hazard dans ton glutmainloop() tu creerais pas le sphere a chaque iterations ?provoquant un overdose de poly et donc d'utilsation de memoire
Messages postés
14
Date d'inscription
samedi 1 janvier 2005
Statut
Membre
Dernière intervention
14 février 2005

en fait je fais ceci :

int main( int argc, char *argv[ ])
{
glutInit(&argc,argv);
glutInitWindowSize(WIDTH,HEIGHT);
glutInitWindowPosition(50,50);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH );


glutCreateWindow("Fenetre OpenGL");
init();
ilInit();
iluInit();
ilutRenderer(ILUT_OPENGL);
ilEnable(IL_CONV_PAL);

glutDisplayFunc(Display);
glutIdleFunc(Display);
glutKeyboardFunc(keyboard);
glutSpecialFunc(special_keys);
glutMainLoop();
return 0;
}
et dans la fonction display j'affiche en effet la sphere et les autres objets. Mais si le probleme c'est ce que tu dis, je ne vois pas trop comment le résoudre, ni ou je pourrai mettre la sphere...
Messages postés
326
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
2 novembre 2007
2
glutIdleFunc(Display); pas top... enleves le.