Avec la fonction glutGet(GLUT_ELAPSED_TIME); tu obtiens le temps ecoulé depuis la derniere frame.
voila comment je l´ai implementé dans mon moteur (DefWriteFonts() est ma methode de fonts, mais tu peux le voir sur la fenetre dos de glut avec printf();). J´ai separé la methode de calcul et d´affichage parce que j´ai besoin de la methode de calcul pour faire une moyenne, mais tu peux tout a fait les assembler.
int frame = 0; int timebase; float FPS;
/* ---------- ProcessFPS() ---------- */
// calcule les fps et les stock dans un flottant
float ProcessFPS() {
frame++;
int eTime = 0;
eTime = glutGet(GLUT_ELAPSED_TIME);
if(eTime - timebase > 1000) {
FPS = frame*1000.0/(eTime - timebase);
timebase = eTime;
frame = 0;
}
return FPS;
}
/* ---------- ShowFPS() ---------- */
// affiche les fps a l´ecran
void ShowFPS() {
float FPS;
char strFPS[30];
FPS = ProcessFPS();
sprintf(strFPS,"Frames Per Second = %3.3f", FPS);
DefWriteFonts(20,30,strFPS);
}
voila : )