|
|
1.1 root 1: /* tile.c Perform a raster operation involving a pattern
2: *
3: * TileFill Patterns a portion of the screen
4: *
5: * Modification History
6: *
7: * Carver 8601.27 Added line to PixmapPut to adjust the func to compensate
8: * for the reverse flag being set in the pixmap descriptor.
9: *
10: * Carver 8510.25 Removed error checking in calls to copyrmsk
11: * and copybmsk. No errors are ever return.
12: */
13:
14: #include "ddxqvss.h"
15: #include "qvss.h"
16: #include "vstagbl.h"
17:
18: extern BITMAP pbm;
19:
20: /*ARGSUSED*/
21: TileFill (tile, xoff, yoff, xymask, dstx, dsty, width, height,
22: clips, clipcount, func, zmask)
23: register PIXMAP *tile;
24: register BITMAP *xymask;
25: int xoff, yoff, dstx, dsty, width, height, zmask;
26: register int func;
27: CLIP *clips;
28: {
29: register BITMAP *bm = (BITMAP *) tile->data;
30: extern char SSMap[];
31:
32: /* ADJUST MAP FOR REVERSE PIXMAP */
33:
34: func = SSMap[ func | (tile->kind & InvertFlag)];
35:
36: if (!(zmask & 1)) return;
37: if (PTYPE(tile) == BitmapPixmap)
38: {
39: if (xymask == 0)
40: {
41: copyrmsk (VSTA$K_SRC_HT_BITMAP, (short *)bm->data, bm->width,
42: bm->height, xoff, yoff,
43: width, height,
44: (short *)pbm.data, pbm.width, pbm.height,
45: dstx, dsty, func, clipcount, clips);
46: }
47: else
48: {
49: copybmsk (VSTA$K_SRC_HT_BITMAP, (short *)bm->data, bm->width,
50: bm->height, xoff, yoff,
51: (short *) xymask->data, xymask->width, xymask->height,
52: 0, 0, width, height,
53: (short *)pbm.data, pbm.width, pbm.height,
54: dstx, dsty, func, clipcount, clips);
55: };
56: }
57: else
58: {
59: if (xymask == 0)
60: {
61: copyrmsk(VSTA$K_SRC_CONST, tile->data, 0, 0, 0, 0,
62: width, height,
63: (short *)pbm.data, pbm.width, pbm.height,
64: dstx, dsty, func, clipcount, clips);
65: }
66: else
67: {
68: copybmsk (VSTA$K_SRC_CONST, tile->data, 0, 0, 0, 0,
69: (short *) xymask->data, xymask->width, xymask->height,
70: 0, 0, width, height,
71: (short *)pbm.data, pbm.width, pbm.height,
72: dstx, dsty, func, clipcount, clips);
73: }
74: }
75:
76: return;
77: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.