I worked up a small example to illustrate the dirtyrect
processing method I mentioned earlier.
If you can make this faster, post your results here!
Note that all sprites have an alpha channel that must be maintained.
A screenshot of the output of this sample program can be seen at:
http://www.kamilche.com/images/pygame/DirtyRectsExample.jpg
The original source can be found at:
http://www.kamilche.com/images/pygame/dirtyrects.py
It's a simple program that fills the screen with moving colored boxes,
and illustrates how to toggle between fullscreen and windowed mode in a
cross-platform-compatible way. It displays the current FPS in the top
left corner.
--Kamilche