Hi GClements,
I wanted to pick up the conversation on rendering font glyph textures, I have an idea of a solution but the process I may need some help with.

I am using (what I think they call) sprite rendering, a glyph texture at a time. So the actual generation of the glyph textures are sorted I believe.
I'm going to create all my text in one set of vbo's, it is going to create road name labels on my map. These will be positioned in the center of the road line, with the angle of the road line at that position. So it will hold a mixture of positions, angles and texture coordinates.

What I was thinking was, we formulated a point texture that always rendered the same size no matter what the scale. You just needed to supply a center position, a uniform size and texture coordinates. Using textures instead of points in a map OpenGl-ES-2-0

Code :
	public static String getPointVertexShader()
	{
		return
		"precision highp float;      						\n"
		+ "uniform mat4 u_MVPMatrix;						\n"
		+ "uniform vec2 u_pointSize;						\n"
		+ "attribute vec4 a_Position;						\n"
		+ "attribute vec2 a_TexCoordinate;					\n"
 
		+ "varying vec2 v_TexCoordinate;					\n"
 
		+ "void main()                  					\n"
		+ "{                            					\n"
		+ "   v_TexCoordinate = a_TexCoordinate.st * vec2(1.0, -1.0);\n"
		+ "   gl_Position = u_MVPMatrix * a_Position;		\n"
		+ "   gl_Position += vec4(gl_Position.w * u_pointSize * (a_TexCoordinate - vec2(0.5,0.5)), 0, 0);\n"
		+ "}                              					\n";
	}
 
	public static String getPointFragmentShader()
	{
		return
		      "precision highp float;		\n"
			+ "uniform sampler2D u_Texture;	\n"
 
			+ "varying vec2 v_TexCoordinate;\n"
 
			+ "void main()					\n"
			+ "{							\n"
			+ "   gl_FragColor = (texture2D(u_Texture, v_TexCoordinate));\n"		  
			+ "}							\n";
	}

These characters will always be a fixed height on screen, so their size won't be changing when the map is zoom in or out of, but they will pan with the map. So I could use the same principal with my glyphs.

What I need help with:
1. How do I initially figure out the center texture positions? Should I just work them out using screen coordinates centering everything around 0x,0y?
2. How do I manipulate these center positions in the shader with a scale? If the you zoom in the center positions need to get closer together.
3. How do I manipulate these center positions to the actual world position. Each string will initially have a center position of 0,0 and this will change to where ever it needs to be in the world. (e.g. -0.03151243, -0.0472154)
4. I will be calculating the angle of the road line and in-turn calculate the center positions on the same angle. How do I manipulate the vertices in the shader to the an angle?
5. And I guess the last is, if I do it this way what would you suggest as far as, the kind of structure should I put the data into as far as the vbo's are concerned.

Would really appreciate you help on this!