First draw to screen.

Also re-arranges some internals to avoid looking up the canvas every
frame.