TextRender: cache the rendered text and implement does_render test