why 60FPS? That's Vista's compositor that's constantly refreshing that way, not XP.see if you can write noise into, then memcpy 1920x1600x32 at 60fps using the cpu.
I'm pretty sure that there's A LOT more CPU wasted into the handling of windows rather than in the blitting. Even invalidating a lot of handled controls results in a very complex region full of little rectangles.why should different windows be used? random memory accesses. more windows = less efficiency. worst case, 1x1 pixel windows with their memory at random non-linear locations.
That's a waste of good RAM these days, because Vista & above do this for you. Made sense in XP, possibly makes sense for children windows (but still a waste IMHO), possibly makes sense if the compositor is disabled, but does not make sense otherwise. Move a window over this browser window. No, the browser window isn't getting any paint message, because Vista's DWM has simply moved some window coordinates and used its internal window content cache (as textures for a couple of polys). That's why the DWM eats quite some memory.if you draw anything complex, precache it. period.
Again, if you're in Vista or above, and didn't disabled the (nice) DWM, then NO, a top-level window isn't invalidated whenever you move another top-level window over it. That was in XP, time to move on.
Also: when you have something complex to refresh, check your invalidation rectangle(s), and optimize by only redrawing what has to be.
Really I don't know where you read that paint messages should be handled fast, it's quite the opposite. There's a reason for Windows to delay those special messages to when there's time for it. It's quite handy in a sequencer, since it gives less importance to the GUI. Lower priority for the GUI thread along with delayed invalidation, that's good for performances (sure the GUI will leave trails around as it's not refreshed, but that's still better than a slow GUI forced to repaint too frequently).
we don't have unlimited RAM in a 32bit processwe have gigs of memory sitting unused in a majority of machines.