First of all, the new Palm simulator for Windows simply can't report as many
errors as POSE can. It's an inherent limitation of the approach used. Just
because this simulator doesn't complain about something doesn't mean a
thing. If POSE complains, you probably want to change your code to avoid the
problem.

Secondly, WinScreenLock, as currently implemented, does not support hardware
page flipping for double buffered animation. The problem is that in order to
do proper double buffering, you need the display address to jump back and
forth between two fixed buffers. Then, when the screen is looking at one,
you can update the other. This is hard for the developer because it means
the update logic has to jump two frames at a time instead of just one. The
advantage is that you do less copying. Today, there is no guarantee that
you'll get the same address every other time you call WinScreenLock.

I too would like to see true double buffering support in Palm OS. Until the
day that happens (and even then, you'll want to support older devices that
don't have it), here is what I suggest: Do single buffering. Maintain your
own off-screen window. Draw the next frame on that window. When it's ready,
copy it onto the screen. To make it faster, keep track of one or more damage
regions, and copy only the damaged (dirty) portions. The address of video
memory is not changed in this scheme. This approach isn't as fast as true
double buffering, but many game developers have been quite successful using
this approach. Astraware gave an excellent talk at PalmSource on this topic.
-- 
Peter Epstein

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to