BRL-CAD

Provide a machine-independent interface to files containing Berkeley VFONT format vector fonts, stored with VAX byte ordering and word alignment. More...

Collaboration diagram for Vector Fonts:

Files

file  vfont.h
 

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

Provide a machine-independent interface to files containing Berkeley VFONT format vector fonts, stored with VAX byte ordering and word alignment.

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.

Macro Definition Documentation

◆ SXT

#define SXT (   c)    ((c)|((c&0x80)?(~0xFF):0))

Definition at line 78 of file vfont.h.

◆ VFONT_NULL

#define VFONT_NULL   ((struct vfont *)NULL)

Definition at line 96 of file vfont.h.

Function Documentation

◆ vfont_get()

struct vfont * vfont_get ( char *  font)

Fetch the named font, and return a struct vfont pointer.

First the filename provided is used, then the BRL-CAD font directory is searched (for places where "system" directories are considered sacred), and then finally the ordinary font directory is searched.

The font files are treated as pure byte streams, and are expected to be in VAX order.

VFONT_NULL is returned on error. On ordinary errors, the function is silent. On extraordinary errors, a remark is placed on stderr.

◆ vfont_free()

void vfont_free ( struct vfont font)

Return the storage associated with a struct vfont