/* 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.