[ Previous | Next | Contents | Glossary | Home | Search ]
GL3.2 for AIX: Graphics Library (GL) Technical Reference

font3.c Example C Language Program

/* Examples: font3.c*/
/* Define a font with three characters -- a lower-case j,
 * an arrow, and a Greek sigma. Use ASCII values 1 and 2
 * (\001 and \002) for the arrow and sigma. Use the
 * ASCII value of j (= \152) for the j character.
 */
#include <gl/gl.h>
#define EXAMPLEFONT        1
#define efont_ht        16
#define efont_nc        127
unsigned short efont_bits[] = {
   /* lower-case j */
   0x7000, 0xd800, 0x8c00, 0x0c00, 0x0c00, 0x0c00, 0x0c00,
   0x0c00, 0x0c00, 0x1c00, 0x0000, 0x0000, 0x0c00, 0x0c00,
  /* arrow */
   0x0200, 0x0300, 0x0380, 0xafc0, 0xafe0, 0xaff0, 0xafe0,
   0xafc0, 0x0380, 0x0300, 0x0200,
  /* sigma */
   0xffc0, 0xc0c0, 0x6000, 0x3000, 0x1800, 0x0c00, 0x0600,
   0x0c00, 0x1800, 0x3000, 0x6000, 0xc180, 0xff80,
  };
#define efont_nr (sizeof efont_bits)
#define ASSIGN(fontch, of, wi, he, xof, yof, wid) \
                fontch.offset = of; \
                fontch.w = wi; \
                fontch.h = he; \
                fontch.xoff = xof; \
                fontch.yoff = yof; \
                fontch.width = wid
Fontchar efont_chars[127];
main ()
{        
   ASSIGN(efont_chars['j'],        0, 6, 14, 0, -2,  8);
   ASSIGN(efont_chars['\001'],14, 12, 11, 0,  0, 14);
   ASSIGN(efont_chars['\002'],25, 10, 13, 0,  0, 12);
   prefsize (200,200);
   winopen("font");
   color(BLACK);
   clear();
   defrasterfont (EXAMPLEFONT, efont_ht, efont_nc, efont_chars,
       efont_nr, efont_bits);
   font (EXAMPLEFONT);
   color(RED);
   cmov2i(100, 100);
   charstr ("j\001\002\001jj\002");
   cmov2i(100, 84);
   charstr("ajb\001c\002d");
   sleep(10);
}

Related Information

The charstr subroutine, defrasterfont subroutine, font subroutine.

Fonts in GL3.2 Version 4 for AIX: Programming Concepts describes font assignment in GL, and discusses relevant subroutines.


[ Previous | Next | Contents | Glossary | Home | Search ]