Les bases d'OpenGL
Par Xavier Michelon


 
 
Initialisation de glut et création de la fenêtre :

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.