/////////////////////////////////////////////////////////////////////////////// // Call-back : affichage dans la fen�tre. //----------------------------------------------------------------------------- // Param�tres : // _ // Retour : // _ /////////////////////////////////////////////////////////////////////////////// GLvoid callback_display() { // On efface les pixels de l'image (color buffer) et le Z-Buffer (depth buffer). glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // On initialise la matrice de vue avec la matrice identit�. glLoadIdentity(); float dt = mesure_temps_ecoule(); fumee->anime(dt); // On applique une translation et une rotation � la sc�ne pour simuler // un d�placement de cam�ra. glTranslatef(-xpos,-ypos,-zpos); glRotatef(angle_x, 1,0,0); glRotatef(angle_y, 0,1,0); // On re-sp�cifie la position des sources de lumi�re avec pour qu'elles // soient aussi affect�es par la translation et la rotation qu'on vient // d'appliquer � la sc�ne. glLightfv(GL_LIGHT0, GL_POSITION,Light0Position); // On affiche la sc�ne. affiche_scene(); // On force OpenGL � afficher avant de passer � la suite. glFlush(); }
/////////////////////////////////////////////////////////////////////////////// // Call-back : affichage dans la fenêtre. //----------------------------------------------------------------------------- // Paramètres : // _ // Retour : // _ /////////////////////////////////////////////////////////////////////////////// GLvoid callback_display() { // On efface les pixels de l'image (color buffer) et le Z-Buffer (depth buffer). glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // On initialise la matrice de vue avec la matrice identité. glLoadIdentity(); // On applique une translation et une rotation à la scène pour simuler // un déplacement de caméra. glTranslatef(xpos,0,zpos); glRotatef(angle_x, 1,0,0); glRotatef(angle_y, 0,1,0); // On re-spécifie la position des sources de lumière avec pour qu'elles // soient aussi affectées par la translation et la rotation qu'on vient // d'appliquer à la scène. glLightfv(GL_LIGHT0, GL_POSITION,Light0Position); glLightfv(GL_LIGHT1, GL_POSITION,Light1Position); // Affiche la scène. affiche_scene(); // On force OpenGL à afficher avant de passer à la suite. glFlush(); }