|
|
1.1 ! root 1: #include <jerq.h> ! 2: #include "layer.h" ! 3: ! 4: extern int blitdir; ! 5: ! 6: static Point delta; ! 7: ! 8: extern bitblt(), lblt(); ! 9: ! 10: static void ! 11: srcop(sl, r, sb, fp, op) ! 12: Layer *sl; ! 13: Rectangle r; ! 14: Bitmap *sb; ! 15: register struct { ! 16: Bitmap *db; ! 17: Code code; ! 18: } *fp; ! 19: Obscured *op; ! 20: { ! 21: bitblt(sb, r, fp->db, add(r.origin, delta), fp->code); ! 22: } ! 23: ! 24: static void ! 25: destop(dl, r, db, fp, op) ! 26: Layer *dl; ! 27: Rectangle r; ! 28: Bitmap *db; ! 29: register struct { ! 30: Layer *sl; ! 31: Code code; ! 32: Point delta; ! 33: } *fp; ! 34: Obscured *op; ! 35: { ! 36: layerop(fp->sl, srcop, rsubp(r, delta), db, fp->code); ! 37: } ! 38: ! 39: void ! 40: lbitblt(sl, rect, dl, pt, f) ! 41: Layer *sl, *dl; ! 42: Rectangle rect; ! 43: Point pt; ! 44: Code f; ! 45: { ! 46: delta = sub(pt, rect.origin); ! 47: blitdir = ( (delta.x <= 0)? 0 : 1 ) + ( (delta.y <= 0)? 0 : 2 ); ! 48: /* ! 49: check for degenerate cases ! 50: */ ! 51: if(sl->someobs == sl->nonevis){ ! 52: (*((dl->someobs != dl->nonevis)? lblt:bitblt)) ! 53: (sl->nonevis?sl->obs:(Bitmap *)sl, rect, ! 54: dl->nonevis?dl->obs:(Bitmap *)dl, pt, f); ! 55: return; ! 56: } ! 57: ! 58: layerop(dl, destop, raddp(rect, delta), sl, f); ! 59: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.