Re: [AD] Add timeBeginPeriod(1) to wtimer.c

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


it changes the resolution of the rest() and timeGetTime() but it doesn't slow down the app itself.
how could it ?



Tobias Scheuer wrote:
I have tried that. The documentation says that each call to timeBeginPeriod
has to be matched by a call to timeEndPeriod, so that#s why I have also
called that function. If I leave that out, the timeBeginPeriod(1) remains
active, which causes some overall slowdown of the whole program (as
mentioned in the forum).

timeBeginPeriod only needs to be called once for the whole process.
not each time rest is called.




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



-------------------------------------------------------
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
--
https://lists.sourceforge.net/lists/listinfo/alleg-developers




-------------------------------------------------------
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





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/