Nous allons voir comment réaliser une fenêtre avec GLUT. Cette fenêtre ne sera constituée que d'un fond unicolore. Pour cela, nous allons utiliser les fonctions de Windows, d'OpenGL et de GLUT. Il faut donc inclure les fichiers d'en-tête correspondants :
#include <windows.h>
#include <gl/gl.h>
#include <gl/glut.h>
glutDisplayFunc
:
void vDisplay();
main
. Les étapes
de ce main
, que nous détaillerons ensuite, sont :
int main( int argc, char *argv[ ])
{
glutInit(&argc,argv); // initialisation de GLUT : argc et argv sont respectivement
// le nombre et la liste des paramètres passées en ligne de commande
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE); // GLUT_RGBA mode "vraies couleurs" 32 bits
// GLUT_SINGLE "simple buffering" - un seul tampon
// Modes par défaut
glutInitWindowSize(640,480); // Initialisation de la largeur et de la hauteur de la fenêtre
glutInitWindowPosition(50,50); // Position de la fenêtre sur l'écran par rapport au coin haut gauche
glutCreateWindow("Fenêtre créée avec Glut"); // Titre de la fenêtre
glutDisplayFunc(vDisplay); // précise la fonction à utiliser pour l'affichage
glutMainLoop(); // lance le gestionnaire glut
return 0;
}
La fonction glutInit
initialise la bibliothèque GLUT et
traite les paramètres passés en ligne de commande (ces parmaètres ont été
récupérés par la fonction main) :
void glutInit ( int *argcp, char **argv);
Les paramètres de la ligne de commande compris par GLUT sont
détaillés ici.
GLUT_RGBA
|
mode "vraies couleurs" 32 bits | ||
GLUT_RGB
|
alias de GLUT_RGBA
|
||
GLUT_INDEX
|
mode couleurs indéxées, l'emporte sur GLUT_RGBA s'il est spécifié
|
||
GLUT_SINGLE
|
tampon simple pour la fenêtre | ||
GLUT_DOUBLE
|
fenêtre avec un double tampon, l'emporte sur GLUT_SINGLE
|
||
GLUT_ACCUM
|
fenêtre avec un tampon d'accumulation | ||
GLUT_ALPHA
|
fenêtre avec une composante alpha sur les tampons de couleur | ||
GLUT_DEPTH
|
fenêtre avec un tampon de profondeur | ||
GLUT_STENCIL
|
fenêtre avec un tampon de pochoir | ||
GLUT_MULTISAMPLE
|
fenêtre avec échantillonage multiple | ||
GLUT_STEREO
|
fenêtre stéréo | ||
GLUT_LUMINANCE
|
fenêtre avec un modèle de couleur "luminance" |
La fonction glutDisplayFunc
établit la fonction de rappel pour
l'affichage :
void glutDisplayFunc ( void (*func)(void));
func
identifie la fonction de rappel d'affichage qui est une fonction sans paramètres. Dans
notre exemple, cette fonction est vDisplay
.