[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux] [devel] boucle temporelle ?



Cela pourrait te servir :

/* Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.
If SECONDS is zero, any currently scheduled alarm will be cancelled.
The function returns the number of seconds remaining until the last
alarm scheduled would have signaled, or zero if there wasn't one.
There is no return value to indicate an error, but you can set `errno'
to 0 and check its value after calling `alarm', and this might tell you.
The signal may come late due to processor scheduling. */

extern unsigned int alarm __P ((unsigned int __seconds));

Tu pourrais créer une invocation spécifique suivant le signal a été reçu ou pas... C'est assez propre. Je ne sais pas le type d'application que tu veux faire mais c'est assez utilisable dans beaucoup de cas (peut-être les cas multithreads)

Jette aussi un coup d'oeil sur 'setitimer' et 'getitimer'

hope this helps

alx


CHARLIER Philippe wrote:


Le Mercredi 30 Mai 2001 16:52, vous avez écrit :

En fait, on pourrait prendre comme exemple un jeu qui tourne
sur des PC de
puissance differentes.  L'affichage sur le moins puissant (en
simplifiant)
aura moins d'images par secondes et sera donc saccade mais la
perception de
la duree des evenements est identique sur les deux PC.
Ou, pour eclaircir, dans un simulateur de vol, l'avion se
deplace de A vers B
dans le meme temps sur les deux PC mais sur le PC plus lent
il y aura juste
un affichage moins fluide du deplacement.

Je me demande comment on fait cela.

proposition
Tu active une interruption à intervale régulier. (50 ms) (refréchissement à
20 images/secondes)
Ton code à droit à 10 ms pour caculer l'environnement (position, vitesse)
et 40 ms pour afficher (ou 30 ms pour être sûr (c'est un premier jet), ou
bien jusqu'à la prochaine interruption)
si en 40 ms tu te rend compte que tu n'a pas le temps pour afficher tu
diminue la résolution pour le coups suivant.


C'est exactement ca, bon, je vais prendre mon baluchon et partir a la recherche de la maniere d'impementer cela.

Philippe

[ Soyez précis dans vos sujets svp afin de déterminer directement ]
[ le type de demande... ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ]
[ http://LinuxBe.org Contact: listmaster@linuxbe.org ]



[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php     ]
[ http://LinuxBe.org              Contact: listmaster@linuxbe.org  ]