don't convert surface too often; profiling fixes
don't update display in rects if have a lot of them
more doc