Hi all,
as already discussed in the forum, I would propose to change the current
implementation of tim_win32_rest in wtimer.c to the following:
[code]
/* tim_win32_rest:
* Rests the specified amount of milliseconds.
*/
static void tim_win32_rest(unsigned int time, AL_METHOD(void, callback,
(void)))
{
unsigned int start;
unsigned int ms = time;
const MMRESULT rc = timeBeginPeriod(1);
if (callback) {
start = timeGetTime();
while (timeGetTime() - start < ms)
(*callback)();
}
else {
Sleep(ms);
}
if( rc == TIMERR_NOERROR )
timeEndPeriod(1);
}
[/code]
The new lines are the call to timeBeginPeriod(1); and the
correcponding call
to timeEndPeriod(1); in case the first call was successful.
This affects only windows, and increases the accuracy of calls to
rest(n).
For the discussions, refer to the following threads:
http://www.allegro.cc/forums/view_thread.php?_id=456146
http://www.allegro.cc/forums/view_thread.php?_id=453116
As this is my very first contribution, please forgive if anything is
not in
the right format or otherwise unexpected.
Thanks for consideration!
Best regards Tobias
--
http://www.staedtebauen.de <http://www.staedtebauen.de/>
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
<http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click>
--
https://lists.sourceforge.net/lists/listinfo/alleg-developers