Bonjour à vous.
Je travaille sur un programme OpenGL générant une animation à durée limitée dans le temps (mais variables en fonction des arguments d'entrée).
Je m'inspire de codes sources récupérées sur ce site pour la partie 3D, et le main contient notamment le grand classique :
Je ne trouve pas de fontion glut officiel me permettant de mettre fin à la boucle glutMainLoop()... Actuellement, le programme se termine si je ferme manuellement la fenêtre, mais j'aimerais automatiser la chose pour que le programme se lance, effectue les traitements en fonction de l'animation, puis se termine après avoir enregistrer les résultats dans un fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 //on initialise glut glutInit(&argc, argv); //on spécifie l'emploi du modèle chromatique et du double tampon glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); //on spécifie la taille de la fenêtre glutInitWindowSize(256, 256); //on spécifie la position de la fenêtre glutInitWindowPosition(250, 250); //on crée une fenêtre glutCreateWindow(argv[0]); //on initialise init(); //on fait une fonction d'affichage glutDisplayFunc(display); //on fait une fonction de redimensionnement glutReshapeFunc(reshape); //on fait une fonction pour la souris glutMouseFunc(mouse); //on se met en boucle infinie glutMainLoop();
J'ai vu qu'on pouvait finir le programme en appelant un exit() mais je crains du coup de ne pas pouvoir faire mes traitements post-glutmainloop()...
Pensez-vous que je doive donc me passer de glutMainLoop() et gérer une boucle moi-même ? Par exemple :
Si oui, que dois-je mettre dans cette boucle ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 while(AnimationNonFinie) { // affichage fenetre, poursuite de l'animation ... ... // à un moment, AnimationNonFinie = false; } // L'animation est enfin terminée, je fais mes traitements ...
Merci !![]()
Partager