Thanks, I'm going to try this approach too. In the meantime, I found out that a DirectDraw.Surface can be created directly out of a Bitmap: SurfaceDescription desc = new SurfaceDescription(); desc.SurfaceCaps.OffScreenPlain = true; desc.Width = width; desc.Height = height; Surface surf = new Surface(bitmap, desc, localDevice); It's then easy to use Surface.Draw to blit the surface into another. Your method would let me reuse the same surface always though, so it seems better. Regards -- Ralf