summaryrefslogtreecommitdiff
path: root/dviware/beebe/src/outrow.h
blob: 8c12c3914a240b8a915a59a324b3bb41deba5579 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* -*-C-*- outrow.h */
/*-->outrow*/
/**********************************************************************/
/******************************* outrow *******************************/
/**********************************************************************/

void
outrow(c,yoff)	/* copy img_row[] into rasters[] if allocated, else no-op */
BYTE c;		/* current character value */
UNSIGN16 yoff;	/* offset from top row (0,1,...,hp-1) */
{
    register UNSIGN16 k;	/* loop index */
    register UNSIGN32 *p;	/* pointer into img_row[] */
    register UNSIGN32 *q;	/* pointer into rasters[] */
    register struct char_entry *tcharptr; /* temporary char_entry pointer */
    UNSIGN16 words_per_row;	/* number of raster words to copy */

    tcharptr = &(fontptr->ch[c]);
    if (tcharptr->rasters != (UNSIGN32*)NULL)
    {
	words_per_row = (UNSIGN16)(tcharptr->wp + 31) >> 5;
	p = tcharptr->rasters + yoff*words_per_row;
	q = img_row;
	for (k = words_per_row; k; --k)	/* copy img_row[] into rasters[] */
	    *p++ = *q++;
    }
}