Salut à tous,
Je cherche à calculer le FPS du film que je suis en train d'afficher, pour tester différents algos et leur performance.
Tout d'abord je sais que des bibliothèques le font nativement (WxWidget, et très certainement Qt), mais je cherche ici à comprendre le principe.
L'implémentation que j'ai proposée est vraiment nulle, il faut bien le dire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include <iostream> #include <boost/thread.hpp> #include "boost/date_time/posix_time/posix_time.hpp" class Timer { public: Timer() : m_Update(false) {} //Lancer un comptage jusqu'a 1, puis s'arrêter void Go() { m_Update = false; boost::thread myThread(boost::bind(&Timer::Count, this) ); } // Fonction membre à appeler pour vérifier la fin du comptage bool IsSecond() const {return m_Update;} private: void Count() { boost::posix_time::ptime time = boost::posix_time::microsec_clock::local_time(); while(1) { boost::posix_time::ptime time2 = boost::posix_time::microsec_clock::local_time(); if ((time2 - time).total_milliseconds() > 1000) // 1 seconde { m_Update = true; break; } } } bool m_Update; };Mon while(1) prend un coeur tout entier...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int main() { Timer timer; timer.Go(); while(1) { if ( timer.IsSecond() == true ) { std::cout << "1 seconde " << std::endl; timer.Go(); } } return 0; }
Seulement, pour essayer d'être "exact" je vois pas vraiment comment faire. Je suppose que vous devez avoir plein d'idées.
Je vous écoute !
Poukill.
Partager