I am working (in fits and starts) on such an animal, actually. In my case, I'm using OpenTK and C#, but the concept would be similar. I based the API loosely on Libtcod (found here http://doryen.eptalys.net/libtcod/), but I also wanted (limited) support for tiles.
Basically, for the ASCII glyphs, I use a source texture atlas for the characters and map the positions to ASCII codes. The shader is very basic, and just colors the fragments based on the alpha channel of the texture. Once you have that, you can add layers of logic for printing strings, dialog boxes etc.
The only real conceptual difference between glyphs & tiles (in my API) is that glyps are given in character coordinates, while tiles are placed in pixel coordinates.
In case it helps, you can browse the source here: http://code.google.com/p/sharprl/wiki/Introduction
Edit: better link