|
|
1.1 ! root 1: /************************************************************************/ ! 2: /************************************************************************/ ! 3: /* */ ! 4: /* DDX FILL INTERFACE */ ! 5: /* */ ! 6: /* written by : MATT CORKUM 09-25-85 */ ! 7: /* */ ! 8: /* */ ! 9: /* The ddx fill interface code */ ! 10: /* */ ! 11: /* */ ! 12: /* Modification History: */ ! 13: /* */ ! 14: /* 8511.04 (Carver) When filling with constant make sure to mask */ ! 15: /* srcpix to one bit. */ ! 16: /* */ ! 17: /* 8509.30 (Corkum) Make the code work in a test environment. */ ! 18: /* */ ! 19: /* */ ! 20: /************************************************************************/ ! 21: /************************************************************************/ ! 22: ! 23: #include "ddxqvss.h" ! 24: #include "qvss.h" ! 25: #include "extern.h" ! 26: #include "vstagbl.h" ! 27: ! 28: extern BITMAP pbm; ! 29: ! 30: ! 31: ! 32: /*ARGSUSED*/ ! 33: DrawFilled (verts, vertcount, xbase, ybase, srcpix, tile, xoff, yoff, ! 34: clips, clipcount, func, zmask) ! 35: Vertex *verts; ! 36: register PIXMAP *tile; ! 37: int vertcount, xbase, ybase, srcpix, xoff, yoff, clipcount, zmask; ! 38: register int func; ! 39: CLIP *clips; ! 40: { ! 41: ! 42: long error; /* error value to be returned*/ ! 43: short *newvert; /* new vertex list */ ! 44: int newvertcnt; /* new vertex count */ ! 45: int src, src_type; /* source information */ ! 46: ! 47: if (!(zmask & 0x0001)) return; ! 48: ! 49: ! 50: /* pre-process the specified path list ..... create another one ! 51: containing only absolute straight line drawing */ ! 52: ! 53: /* for a fill operation the destination offsets are zero, however we ! 54: call the pathlist converter routine to make an absolute, ! 55: (pertaining to not relative), and straight line pathlist */ ! 56: ! 57: error = path_list_converter( &verts, &vertcount, xbase, ybase, ! 58: &newvert, &newvertcnt ); ! 59: ! 60: if ( error ) ! 61: ! 62: return (error); ! 63: ! 64: if ( tile == 0 ) /* if no halftone pattern exists then use the ! 65: constant source to perform the fill */ ! 66: ! 67: { ! 68: ! 69: src_type = VSTA$K_SRC_CONST; ! 70: ! 71: error = fillhalf ( ! 72: src_type, (srcpix & 1), 0, 0, 0, 0, ! 73: (short *)pbm.data, pbm.width, pbm.height, ! 74: 0, 0, func, newvertcnt, newvert, clipcount, ! 75: clips); ! 76: ! 77: } ! 78: ! 79: else /* fill with a halftone */ ! 80: ! 81: { ! 82: ! 83: register BITMAP *bm = (BITMAP *) tile->data; ! 84: ! 85: src_type = VSTA$K_SRC_HT_BITMAP; ! 86: ! 87: error = fillhalf ( src_type, (short *)bm->data, ! 88: bm->width, bm->height, xoff, yoff, ! 89: (short *)pbm.data, pbm.width, pbm.height, ! 90: 0, 0, func, newvertcnt, ! 91: newvert, clipcount, clips); ! 92: ! 93: }; ! 94: ! 95: ! 96: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.