Note that all
drawing routines use direct pixel access, so the surfaces
must be locked for use. The draw functions will temporarily
lock the surface if needed, but if performing many drawing
routines together, it would be best to surround the drawing
code with a lock/unlock pair.