Here is the basic method I have used to show each letter on screen:
I use a quad with vertices from 0,0 to 1,1 with matching texture co-ordinates. This way I only have one quad for every font and every letter. Simply by altering some uniforms in the shader I can adjust exactly which letter is drawn where and what size.
This is a big performance boost as I've seen examples that either:
1) require you to have a different texture for each letter.
2) require you to change the texture co-ordinates in the vertex buffer data.
Anyway here is what the text currently looks like:
There is also a lot of refactoring that needs to be done to make this as flexible as possible. I should just be able to supply a string and that be rendered to the screen wherever I want and which ever size I want.
When I have got this finished off I will post the full process that I have used to calculate the texture co-ordinates and the screen placement.
It's getting there :)