I haven't review the patch yet, but I agree that it would be better to lock the surface on the first draw_slice(), update it on the subsequent ones (without issuing StretchRect ot each draw_slice()) and in the end, when the whole frame is drawn, unlock the offscreen surface and do ONE final stretchrect. Do you agree?