Whoa, thread necromancy. What I do in the C# version is use a custom BackBuffer class that manages the screen as a grid of images and repaints/invalidates the dirty areas. The pixel access itself is using pointers to the bitmap memory, so I just use array-style notation to directly manipulate the pixel data. Come to think of it, I may have reverted to flipping the whole "backbuffer" in the last version. So far, it seems plenty fast.
SpaceAce
SpaceAce