Un jour j'ai essayé et ça ma donné ça (je te le fais de mémoire parce que depuis j'ai éliminé le code):
// boucle principale du programme
while (TRUE)
{
nTick = GpTickCountGet();
.
.
// code à exécuter à chaque boucle
.
.
if (GpTickCountGet() - nTick > 0)
nFPS = (1000 * vitesseProcesseur / 40) / (GpTickCountGet() - nTick);
}
C'est de l'aproximatif à cause des arrondissements, mais c'est pas important ici.
Le if (), c'est parce que des fois, sous l'ému, ça arrive que le résultat donne 0.
Bon, c'est ma solution, mais de là à savoir si c'est la bonne, faut voir avec les grands spécialistes des émus.
voila un code beaucoups plus simple qui fonctionne parfaitement.
int totalfps=0,fps=0;
void test_fps( void )
{
totalfps=fps;
fps=0;
}
// Initialise le timer 0 au debut
GpTimerOptSet(0,1,0,test_fps);
GpTimerSet(0);
//
// tous les fin de frame
fps++;
le principe c'est qu'il appelle tous les une seconde la routine test_fps et le résultat du nombre max se trouve dans la variable totalfps et le frame en cours dans fps