Use canvas save/restore and defaults instead of reasignment.