We can draw characters once to an offline canvas, and then re-use those shapes for each subsequent render, and it should be faster than `.fillText`