Allegro 提供了文字输出例程, 可以使用比例字体 (单个字符可以是任何大小) 和固定大小为 8x8 或 8x16 字体. 字体包含了 ASCII 字符 32 到 255: 所有其它的字符将被空格代替. grabber 程序能从一个 PCX 文件上画着的字符集来建立字体 (见 grabber.txt 获得更多信息), 也可以从 GRX 或 BIOS 字体格式文件获取.
extern FONT *font;
一个简单的 8x8 固定大小字体 (mode 13h BIOS 缺省). 如果你想
改变供 GUI 例程使用的字体, 将这个指针改向
你自己的字体.
void text_mode(int mode);
设置文字画向位图的模式. 如果 mode 为 0 或正,
文字输出将不通明且字符的背景将被设置成颜色 #mode.
如果 mode 是负数, 文字将以透明方式画在位图上
(即: 字符的背景将不会改变). 缺省值为零.
void textout(BITMAP *bmp, FONT *f, unsigned char *s, int x, y, int color);
写一个字符串 s 到位图的 x,y 位置, 使用当前的文字模式指定的字体和
前景颜色. 如果 color 是 -1 且
正在使用比例字体, 它将使用字体位图的原始颜色
(你从 grabber 程序读出的)
这允许了多色彩的文字输出.
void textout_centre(BITMAP *bmp, FONT *f, unsigned char *s, int x, y, color);
和 textout() 相似, 但是将 x 坐标解释为字符串的中间
而不是它的左边界.
void textout_justify(BITMAP *bmp, FONT *f, unsigned char *s,
int x1, int x2, int y, int diff, int color);
在区域 x1-x2 之间画上对齐的文字. 如果空余空间的数量
比 diff 值要大, 则将被放弃并用常规的
左对齐代替.
void textprintf(BITMAP *bmp, FONT *f, int x, y, color, char *fmt, ...);
格式化文字输出, 使用 printf() 形式的字符串.
void textprintf_centre(BITMAP *bmp, FONT *f, int x, y, color, char *fmt, ...);
和 textprintf() 相似, 但是将 x 坐标解释为字符串中央而不是左
边界.
int text_length(FONT *f, unsigned char *str);
返回以指定字体构成的字符串的长度(点为单位).
int text_height(FONT *f)
返回指定字体的高度 (点为单位).
void destroy_font(FONT *f);
释放正在被字体结构使用的内存.