Rendu et buffer ou tampon physique/logique
Fonction de rendu ou d'affichage
Cette fonction est obligatoire, elle va vous permettre d'effectuer les opérations de rendu.
Si la fonction n'existe pas, GLUT s'arrête de fonctionner avec une erreur fatale.
Pour définir la fonction de rendu, il faut utiliser la fonction glutDisplayFunc()
void glutDisplayFunc ( void (*func) (void));
Avec func, qui est le nom de votre fonction de rendu/affichage. Cette fonction ne recevant aucun paramètre.
Forcer le déclenchement de la fonction d'affichage
Il est possible de forcer l'appel au réaffichage de l'image via la fonction glutPostRedisplay().
void glutPostRedisplay ( void );
Fonction très facile à lancer !
A priori, cette fonction sera utilisé dans une fonction de type idle ou timer.
Buffer/tampon physique/logique
Si lors de la création de votre fenêtre GLUT, vous avez indiqué que celle-ci utilisait un simple buffer (GLUT_SIMPLE), alors vous aurez l'obligation d'utiliser glFlush à la fin de votre fonction de rendu afin de forcer l'affichage de vos opérations graphiques.
Par contre, si vous avez indiqué vouloir utilier un double buffer (GLUT_DOUBLE), alors il faudra utiliser la fonction suivante pour "swapper" le tampon logique vers vers le tampon physique: void glutSwapBuffers ( void )
Cette fonction déclenche par défaut glFlush, vous n'avez donc pas besoin de l'indiquer avant la fonc de swapping.
Exemple de code
Voici un exemple qui marche maintenant !
Dans cette exemple, j'utilise une fonction qui va colorer le fond de la fenêtre, puis un affichage est fait via swapbuffer...Bon, évidemment, il n'y a pas beaucoup d'animation !