BRL-CAD
#include "common.h"
#include "bu/defines.h"
Include dependency graph for vfont.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  vfont_dispatch
 
struct  vfont
 

Macros

#define SXT(c)   ((c)|((c&0x80)?(~0xFF):0))
 
#define VFONT_NULL   ((struct vfont *)NULL)
 

Functions

struct vfontvfont_get (char *font)
 
void vfont_free (struct vfont *font)
 

Detailed Description

This header file describes the in-memory format used by the BRL-CAD Package routines for manipulating fonts stored in the Berkeley VFONT format.

Note that the VFONT files are in the format found on a VAX – no conversion has been applied.

Merely TARing or RCPing the VAX /usr/lib/vfont directory onto any machine suffices to install the fonts.

The VAX format of the fonts is invisible to software actually using the fonts, except to be aware that bit zero in a byte of font data is on the right hand side (lsb).

The VAX declaration of the file is:

 struct header {
    short magic;
    unsigned short size;
    short maxx;
    short maxy;
    short xtend;
 };
 struct dispatch {
    unsigned short addr;
    short nbytes;
    char up, down, left, right;
    short width;
 };
 char bits[header.size];

The char fields up, down, left, and right in the VAX-version of struct dispatch are signed. Use the SXT macro to extend the sign.

The actual bits array has the upper left corner of the bitmap in the first byte. Bits are scanned out of the bytes in a left-to-right, top-to-bottom order (most decidedly non-VAX style). Never seems to be any consistency in data formats.

Definition in file vfont.h.