/* * The rountine display() gets called each time the window is redrawn. */ void display() { glClear(GL_COLOR_BUFFER_BIT); switch(shapeType) { case S_TRIANGLE: drawTriangle(-100,0,0,250,100,0); break; case S_RECTANGLE: drawRectangle(0,0,500,500); break; case S_CIRCLE: drawCircle(0,0,250,40,2,0); break; case S_SMILEY: drawSmileyFace(0,0,250); break; case S_PACMAN: drawPacMan(0,0,250); break; default: break; } glutSwapBuffers(); }
// Définit le modèle pour affichage à l'écran void View::display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Initialisation du buffer de couleur à la couleur de fond // Viewport contenant les informations sur la partie en cours viewportInfos(); if(model->getLifes() < 0) { model->stopGame(); gameOver(); } else { drawScore(); drawLifes(); } // Viewport contenant les contrôles souris (boutons) viewportControls(); drawMouseControls(); drawButton("Reset",100); drawButton("Close",150); drawButton("View", 200); // Viewport contenant le plateau de jeu glEnable(GL_DEPTH_TEST); initLights(); viewportWorld(); // Définit une viewport et ses caractéristiques de projection drawWorld(); drawPills(); drawPacMan(); drawGhosts(); glDisable(GL_LIGHT0); glDisable(GL_LIGHT1); glDisable(GL_LIGHT2); glDisable(GL_LIGHT3); glDisable(GL_LIGHTING); // nuit ! glDisable(GL_DEPTH_TEST); glutSwapBuffers(); // Car on travaille en mode "double buffer", cf. main.cpp }