Annotation of researchv10dc/man/man9/font.9, revision 1.1

1.1     ! root        1: .TH FONT 9.5
        !             2: .CT 2 comm_term
        !             3: .SH NAME
        !             4: font \- jerq font layouts
        !             5: .SH SYNOPSIS
        !             6: .B #include <jerq.h>
        !             7: .br
        !             8: .B #include <font.h>
        !             9: .PP
        !            10: .B typedef struct Fontchar Fontchar;
        !            11: .br
        !            12: .B typedef struct Font Font;
        !            13: .PP
        !            14: .B extern Font defont;
        !            15: .SH DESCRIPTION
        !            16: A
        !            17: .I Font
        !            18: is  a character set, stored as a single
        !            19: Bitmap
        !            20: with the characters
        !            21: placed side-by-side.
        !            22: It is described by the following data structures.
        !            23: .IP
        !            24: .EX
        !            25: .ta +.5i +\w'unsigned char bottom;  'u
        !            26: typedef struct Fontchar {
        !            27:        short x;                /* left edge of bits */
        !            28:        unsigned char top;      /* first non-zero scan-line */
        !            29:        unsigned char bottom;   /* last non-zero scan-line */
        !            30:        char left;              /* offset of baseline */
        !            31:        unsigned char width;    /* width of baseline */
        !            32: } Fontchar;
        !            33: typedef struct Font {
        !            34:        short n;                /* number of chars in font */
        !            35:        char height;    /* height of bitmap */
        !            36:        char ascent;    /* top of bitmap to baseline */
        !            37:        long unused;
        !            38:        Bitmap *bits;   /* where the characters are */
        !            39:        Fontchar info[n+1];     /* n+1 character descriptors */
        !            40: } Font;
        !            41: .EE
        !            42: .PP
        !            43: Characters in
        !            44: .L bits
        !            45: abut exactly, so the displayed width of the character
        !            46: .I c
        !            47: is
        !            48: .BI Font.info[ c +1].x\ -\ Font.info[ c ].x .
        !            49: The first
        !            50: .L left
        !            51: columns of pixels in a character overlap the previous character.
        !            52: The upper left corner of the nonempty columns appears at
        !            53: .RB ( x, 0)
        !            54: in the bitmap.
        !            55: .L Width
        !            56: is the distance to move horizontally after drawing a character.
        !            57: The font bitmap has a fixed
        !            58: .LR height ;
        !            59: parameters
        !            60: .L top
        !            61: and
        !            62: .L bottom
        !            63: may speed up the copying of a character.
        !            64: .PP
        !            65: Characters are positioned by their upper left corners.
        !            66: .PP
        !            67: Fonts are stored on disk in binary with byte
        !            68: order that of the terminal.
        !            69: First in the file is the Font structure
        !            70: with
        !            71: .B bits
        !            72: elided.
        !            73: The data for the bitmap follows.
        !            74: The header for the bitmap must be inferred from
        !            75: .B Font.height
        !            76: and
        !            77: .BR Font.info[Font.n].x .
        !            78: .SH EXAMPLES
        !            79: .EX
        !            80: Fontchar *i = f->info + c;
        !            81: bitblt(f->bits, Rect(i->x, i->top, (i+1)->x, i->bottom),
        !            82:        &display, Pt(p.x+i->left, p.y+i->top), fc);
        !            83: p.x += i->width;
        !            84: .EE
        !            85: .ns
        !            86: .IP
        !            87: Copy character
        !            88: .I c
        !            89: from font
        !            90: .I f
        !            91: to point
        !            92: .I p
        !            93: with Code
        !            94: .B F_XOR
        !            95: or
        !            96: .BR F_OR .
        !            97: .PP
        !            98: For Code
        !            99: .LR F_STORE ,
        !           100: use
        !           101: .LR "Rect(i->x, 0, (i+1)->x, f->height)" .
        !           102: .SH SEE ALSO
        !           103: .IR jf (9.1),
        !           104: .IR string (9.3),
        !           105: .IR getfont (9.1)
        !           106: .SH BUGS
        !           107: The
        !           108: .L unused
        !           109: field is used, by
        !           110: .IR getfont (9.1).

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.