Les bases d'OpenGL Par Xavier Michelon |
Le système de gestion des événements offert par glut est relativement similaire à celui de GTK. Des fonctions sont associées aux différents types d'événements envoyés par le serveur X, puis une boucle d'attente est lancée. A chaque fois qu'un événement est émis par le serveur X, la fonction de rappel associée à l'événement est appelée. Vous devez associer au moins une fonction de rappel, la fonction d'affichage, qui est celle dans laquelle vous devez décrire votre scène 3D. Vous pouvez associer des fonctions de rappel aux événements liés :
Il existe par ailleurs deux fonctions de rappel spéciales qui permettent d'enregistrer des fonctions qui seront appelées à intervalles de temps réguliers ou pendant les temps d'oisiveté (idle), c'est-à-dire lorsque le gestionnaire n'a aucun événement à traiter. Ces deux fonctions sont extrêmement pratiques pour la création de scènes animées.
Dans notre programme, en plus de la fonction d'affichage obligatoire, nous allons mettre en place une fonction de rappel pour le clavier. Les deux appels suivants permettent de spécifier quelles seront les fonctions respectivement associées à l'affichage et au clavier :
glutDisplayFunc(affichage); glutKeyboardFunc(clavier);
Après cela, il ne nous reste plus qu'à lancer la boucle d'attente des événements :
glutMainLoop();
|