Préparer une fenêtre X-Window à recevoir OpenGL
Utilisation de GLUT
En fait, je vais faire le gros fainéant, car pour nous simplifier la vie, j'utiliserai les fonctions GLUT. Pour tout ce qui concerne X Window, voir le chapitre suivant.
Que faut-il pour créer une fenêtre ?
Tout d'abord, il faudra initialiser glut:
void glutInit(int *argc,char **argv);
Avec argc et argv les options de la ligne de commande qui seront passées à la fonction main() au lancement de notre programme. Il faudra donc simplement les renvoyer à glutInit() !
Ensuite, il faudra indiquer la position de notre fenêtre à l'écran ainsi que sa largeur et sa hauteur. Il y a deux fonctions pour cela:
Pour positionner la fenêtre: void glutInitWindowPosition(int x,GLint y);
Pour définir la largeur et la hauteur: void glutInitWindowSize(int larg,int haut);
Enfin, nous allons indiquer le mode d'affichage d'un pixel: void glutInitDisplayMode(unsigned int mode); avec mode positionné à GLUT_RGBA (Pour Rouge, Vert, Bleu et Alpha).
Il ne nous resta alors plus qu'à créer la fenêtre: int glutCreateWindow(char *name); avec name pour donner le nom de notre fenêtre.
Pour terminer, il faut rentrer dans une boucle de gestion de la fenêtre qui affichera entre autre la fenêtre à l'écran.
Voici un exemple très simple:
Bien évidemment, il aura une mise à jour de ce code, car pour cette fenêtre, il y aura bien d'autres choses à gérer (écrans logique/physique, ...) !
Vous ne verrez pas grand chose au lancement, vaguement une fenêtre s'ouvrir, mais aussi se refermer immédiatement.
Utilisation de GLX
Il est possible de développer sous OpenGL en utilisant la X Lib, la librairie standard pour développer sous X Window. Dans ce cas, l'API de rendu de l'affichage se nomme GLX.
Utilisation de EGL
Un autre rendu d'affichage a été développé, il s'agit D'EGL (Embedded-system Graphics Library) développé par Khronos Group (qui maintient OpenGL). L'avantage par rapport à GLX: Il est multi-plateformes !