the text is stored as sequence of codepoints a renderer picks up each codepoint (or a sequence of codepoints), then looks up the corresponding glyph for that point(s), and renders it on the screen