:racehorse: Save canvas to offscreen buffer, and only redraw what's necessary