/* xfonts.c
This program demonstrates how to use Enhanced X-Windows fonts in a GL application */
#include <gl/gl.h> #include <X11/Xlib.h> #include <stdio.h>
main() { Int32 wid; /* the GL window ID */ Display *dpy; /* structure describing X session*/ int num_fonts; /* number of fonts X server found */ char **fontlist; /* array of strings (available font names) */
prefsize (150,150); wid = winopen ("xfonts"); color (BLACK); clear();
/* get the connection to X */ /* Normally, the default display is unix:0 */ dpy = XOpenDisplay ("unix:0");
/* Get the names of all fonts that might be Helvetica fonts */ /* (have "helv" appearing in their font name) */ fontlist = XListFonts (dpy, "*helv*", 1000, &num_fonts);
/* other useful X font subroutines are: * XListFonts * XListFontsWithInfo * XFreeFontNames * XFreeFontInfo * XSetFontPath * XGetFontPath * XFreeFontPath */
/* We have decided, by some criteria, to use the fifth * available Helvetica font (assuming that at least five * Helvetica fonts are found). We will give it an id of 433. */
if ( num_fonts < 4 ) { fprintf (stderr,"Not enough fonts found!!!\n"); exit (-1); }
loadXfont (433, fontlist[4]);
/* get rid of the font name list */ XFreeFontNames (fontlist);
/* we want to use this font to draw a string */ font (433); /* do it */ cmov2 (43.0, 56.0); color (RED); charstr ("Hello, World"); sleep (5); }
/* Changes: - from wid = winopen "xfonts"); to wid = winopen ("xfonts"); */
The loadXfont subroutine loads an Enhanced X-Windows font into the font table.
Fonts in GL3.2 Version 4 for AIX: Programming Concepts describes font assignment in GL, and discusses relevant subroutines.