Directx pb de timer

Signaler
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010
-
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010
-
Salut a tous.
Ceci est il normal:

j'ai cree un timer (500msec)et une fonction "MainTimer();" qui affiche le rendu.
Quand je la met dans la winmain ca va.
    if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
                {
                    TranslateMessage( &msg );


                    DispatchMessage( &msg );
                }
MainTimer();
   }

Mais quand je la met dans mon timer l'utilisation de l'uc est a 100% et mon ventillo tourne tres vite.

4 réponses

Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

Tout depend de ton timer ?
Tu peux pas donner plus d'infos ?
Mais ca peut etre normal directX quand tu ne te limite pas par exemple a 50 image/secondes il peut prendre 100/100 de l'uc (n'importe quelle application d'ailleurs)
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

0.5sec par affichage pour les tests donc 2images seconde!.

alors que dans PeekMessage,(qui actualise 10fois plus vite) j'ai pas ce probleme,mon ventillo ne fait pas de bruit et l'uc est a 30%.
des que je colle la fonction MainTimer() dans ma "case WM_TIMER:" mon ventillo tourne vite et l'uc a 100%

pour le timer c'est une declaration classique.
const int ID_TIMER = 1;
SetTimer(hwnd,ID_TIMER,500,(TIMERPROC)NULL);
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010

PeekMessage n'est pas bloquant, donc si il n'y a aucune fonctions d'attente dans ta boucle ( ex : sleep() ) le CPU tournera a 100%.

utilise la fonction GetMessage qui a pour avantage d'attendre les messages windows et ainsi libérer ton CPU.


Voili,Voilou [;)]
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

Oui mais si j'utilise un pc plus ou moins rapide, la vitesse d'affichage changera non?
tandis qu'avec un timer elle reste la meme.