pre-render text canvas items so that ::render() is just a blit from an image surface