GLUT

 

GLUT (OpenGL Utility Toolkit) est un outils qui va permettre de gérer de manière très simple (et donc programmer rapidement) des fenêtres sur différents systèmes d'exploitation (Pour nous, ce sera Windows et Linux).

GLUT doit pouvoir fonctionner de la même manière sur tous les environnements. Le même code peut être compilé sur les différents systèmes est doit fonctionner exactement de la même manière. Ici, vous n'avez donc pas à connaître le fonctionnement de Windows ou de XWindow (du moins pour la gestion des fenêtres).

Il est donc très simple d'emploi et convient très bien pour faire des petites applications utilisant OpenGL (Tests, ou petites démos). Comme il est très simple d'utilisation, évidemment, vous trouverez très vite des limites à l'outils si vous voulez pousser vos programmes un peu plus loin !

 

Il peut sembler y avoir beaucoup de chapitres, mais en fait, cela va très vite à lire !

 

Bon maintenant, passons au développement avec GLUT:

 

- Compiler avec GLUT

  • Compilation Visual C++
  • Compilation Dev-CPP
  • Compilation GCC

- Initialisation de GLUT

  • Initialisation avec glutInit()
  • Exemple avec main()
  • Exemple avec WinMain()

- Création d'une fenêtre

  • Position et taille de la fenêtre avec:
    glutInitWindowPosition()
    glutInitWindowSize()
  • Mode affichage avec glutInitDisplayMode()
  • Enfin, création de la fenêtre avec glutCreateWindow()

- Fenêtre courante

  • Récupérer le handle de la fenêtre courante avec glutGetWindow()
  • Définir la fenêtre courante avec glutSetWindow()

- Boucle de gestion des messages

  • Lecture de la file de message avec glutMainLoop()

- Rendu et buffer ou tampon physique/logique

  • Fonction de rendu ou d'affichage avec glutDisplayFunc()
  • Forcer le déclenchement de la fonction d'affichage avec glutPostRedisplay ()
  • Buffer/tampon physique/logique avec glutSwapBuffers()
  • Exemple de code

- Gestion de la souris

  • Positionner le pointeur de la souris avec glutWarpPointer()
  • Etat des boutons de la souris avec glutMouseFunc()
  • Position de la souris avec glutMotionFunc() et/ou glutPassiveMotionFunc()

- Gestion du clavier

  • Etat des touches ALT, CTRL et SHIFT avec glutGetModifiers ()
  • Lecture des touches spéciales en définissant notre fonction avec glutSpecialFunc()
  • Lecture des touches normales en définissant notre fonction avec glutKeyboardFunc()

- Idle et Timer

  • Fonction Idle (glutIdleFunc)
  • Fonction Timer (glutTimerFunc)
  • Exemple

- Redimensionnement de la fenêtre

  • Redimensionner via glutReshapeWindow()
  • Etre informé d'un redimensionnement via glutReshapeFunc()

- Fullscreen

  • La fonction de fullscreen glutFullScreen()

- Visibilité de la fenêtre

  • Connaître l'état de visibilité de la fenêtre via glutVisibilityFunc ()

- Modifer le titre d'une fenêtre

  • Titre dans la barre de titre de la fenêtre
  • Titre de l'icone

- Informations

  • Lecture des informations environnement/fenêtre courante : glutGet()

- Afficher du texte

  • Afficher un texte
  • Récupération d'informations

 

Voilà pour l'essentiel.

Il y a encore des choses à mettre pour GLUT, comme la gestion des menus, les couleurs indexées, ...

 

 

Un site très bien fait et en français !

http://raphaello.univ-fcomte.fr/IG/OpenGL/Glut.htm#Initialisation

Site officiel (en anglais) : http://www.opengl.org/resources/libraries/glut/