Les bases d'OpenGL
Par Xavier Michelon |
Comme vous nous l'avons vu le mois dernier, c'est glut qui gère les interactions entre OpenGL et le serveur X. La phase d'initialisation va nous permettre de créer notre fenêtre. Un des atouts de glut est sa grande simplicité. L'initialisation de glut se fait de la manière suivante :
glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGB); glutInitWindowPosition(200,200); glutInitWindowSize(250,250); glutCreateWindow("ogl1");
Si vous suivez la rubrique "Programmation GTK" de David Odin dans Linux Magazine, vous avez peut-être une idée de ce que fait la fonction glutInit(). Elle analyse les données passées en paramètres au programme et initialise la bibliothèque glut, notamment en établissant la communication avec le serveur X. La fonction glutInitDisplayMode est celle qui vous paraîtra sans doute la plus obscure. Elle permet de régler les paramètres liés à l'affichage : type d'image (palette indexée ou RVB), utilisation d'un tampon de profondeur (plus connu sous le nom de Z-buffer ou depth buffer), utilisation du double buffering... Aujourd'hui un simple tampon d'image en mode RVB défini par la constante GLUT_RGB nous suffira.
Afin de satisfaire les plus anglophobes, je vais quand même préciser que les fonctions glutInitWindowPosition() et glutInitWindowSize() permettent respectivement de définir la position du coin supérieur gauche de la fenêtre OpenGL par rapport au coin supérieur gauche de l'écran, et de spécifier la largeur et la hauteur de la fenêtre.
La fenêtre est créée
grâce à l'appel à glutCreateWindow() et son nom doit être
transmis sous forme de chaîne de caractères. Il s'agit du nom qui
apparaîtra notamment dans la décoration de la fenêtre, gérée
par le window manager. Si la fenêtre est bel et bien créée,
elle ne sera affichée à l'écran que lors de l'entrée
dans la boucle de gestion des événements.
|