never used blitz max but the general way i know of doing it in opengl is to use display list.
basically you generate a display list for every character in your font image.
i suppose source would help better so this is straight out of the freebasic examples.
'------------------------------------------------------------------------
sub BuildFont() '' Build Our Font Display List
dim cx as single '' Holds Our X Character Coord
dim cy as single '' Holds Our Y Character Coord
gbase = glGenLists(256) '' Creating 256 Display Lists
glBindTexture GL_TEXTURE_2D, texture(0) '' Select Our Font Texture
for gloop = 0 to 255 '' Loop Through All 256 Lists
cx = (gloop mod 16)/16.0 '' X Position Of Current Character
cy = (gloop\16)/16.0 '' Y Position Of Current Character
glNewList gbase+gloop, GL_COMPILE '' Start Building A List
glBegin GL_QUADS '' Use A Quad For Each Character
glTexCoord2f cx, 1-cy-0.0625 '' Texture Coord (Bottom Left)
glVertex2i 0, 0 '' Vertex Coord (Bottom Left)
glTexCoord2f cx+0.0625, 1-cy-0.0625 '' Texture Coord (Bottom Right)
glVertex2i 16,0 '' Vertex Coord (Bottom Right)
glTexCoord2f cx+0.0625, 1-cy '' Texture Coord (Top Right)
glVertex2i 16, 16 '' Vertex Coord (Top Right)
glTexCoord2f cx,1-cy '' Texture Coord (Top Left)
glVertex2i 0, 16 '' Vertex Coord (Top Left)
glEnd '' Done Building Our Quad (Character)
glTranslated 10, 0, 0 '' Move To The Right Of The Character
glEndList '' Done Building The Display List
next '' Loop Until All 256 Are Built
end sub
'------------------------------------------------------------------------
'' Where The Printing Happens
sub glPrint(byval x as integer, byval y as integer, glstring as string, byval gset as integer)
if gset>1 then gset=1
glBindTexture GL_TEXTURE_2D, texture(0) '' Select Our Font Texture
glDisable GL_DEPTH_TEST '' Disables Depth Testing
glMatrixMode GL_PROJECTION '' Select The Projection Matrix
glPushMatrix '' Store The Projection Matrix
glLoadIdentity '' Reset The Projection Matrix
glOrtho 0, 640, 0, 480,-1, 1 '' Set Up An Ortho Screen
glMatrixMode GL_MODELVIEW '' Select The Modelview Matrix
glPushMatrix '' Store The Modelview Matrix
glLoadIdentity '' Reset The Modelview Matrix
glTranslated x, y, 0 '' Position The Text (0,0 - Bottom Left)
glListBase gbase-32+(128*gset) '' Choose The Font Set (0 or 1)
glCallLists len(glstring),GL_BYTE, strptr(glstring) '' Write The Text To The Screen
glMatrixMode GL_PROJECTION '' Select The Projection Matrix
glPopMatrix '' Restore The Old Projection Matrix
glMatrixMode GL_MODELVIEW '' Select The Modelview Matrix
glPopMatrix '' Restore The Old Projection Matrix
glEnable GL_DEPTH_TEST '' Enables Depth Testing
end sub
obviously youll have to convert that to work with your font image and also bmax but it should give you an idea as to how to go about it.