bonjour,
en fait , j'aimerais avoir à quoi sert la fonction glutMainloop dans une fonction main, j'ai glutdisplayfunc avant et glutreshapefunc avant, je ne sais pas comment ça marche vous pourriez m'expliquer?
bonjour,
en fait , j'aimerais avoir à quoi sert la fonction glutMainloop dans une fonction main, j'ai glutdisplayfunc avant et glutreshapefunc avant, je ne sais pas comment ça marche vous pourriez m'expliquer?
En cherchant tu trouve :
En gros lorsque tu mets cette fonction, ton programme rentre dans une boucle qui traite les évènements GLUT => comme par exemple les touches de clavier ou alors la souris et ton programme ne sortira pas de cette boucle tant que tu ne quittera pas le programme.glutMainLoop enters the GLUT event processing loop. This routine should be called at most once in a GLUT program. Once called, this routine will never return. It will call as necessary any callbacks that have been registered.
Exactement ce qui a été dit.
La fonction glutMainLoop démarre la boucle d'évènement de GLUT. Étrangement dans GLUT ( je conseille toujours freeGLUT ) il n'y a pas de vrai moyen manuel de sortir del a boucle ... donc il est facile de faire une fuite de mémoire. freeGLUT améliore les choses.
Maintenant ... comment ça marche. Donc nous avons toute une série de fonction qui finisse par le mot 'func' et qui prenne des pointeurs sur fonction tel que glutdisplayfunc. C'est fonction permettent d'enregistrer une fonction dans un événement précis de la boucle d'évènements ( glutMailLoop ).
Ainsi , si la fenêtre est redimensionné, un évènement va avertir GLUT que la fenêtre est redimensionné et GLUT, dans la glutMainLoop va executer la fonction que vous avez enregistrer avec: glutReshapeFunc().
Il faut savoir que s'il n'y a eu aucun évènement, c'est la fonction enregistrer avec glutIdleFunc() qui est executé.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Si on lit la documentation de freeglut, on trouve :
Donc il existe maintenant deux fonctions une qui permet d'exécuter une sous-boucle et une autre pour nettoyer et quitter proprement (glutLeaveMainLoop).One of the commonest complaints about the GLUT library was that once an application called glutMainLoop, it never got control back. There was no way for an application to loop in GLUT for a while, possibly as a subloop while a specific window was open, and then return to the calling function. A new function, glutMainLoopEvent, has been added to allow this functionality. Another function, glutLeaveMainLoop, has also been added to allow the application to tell freeglut to clean up and close down.
Encore une fois AuraHxC a tout dit
C'est une des grandes raisons du pourquoi je conseille freeGLUT.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Partager