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:

Image non trouvée !

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 !