|
|
1.1 ! root 1: #ifndef MUX ! 2: #define Jcursinhibit() cursinhibit() ! 3: #define Jcursallow() cursallow() ! 4: #define lrectf(l, r, f) rectf(l, r, f) ! 5: #define lsegment(l, p, q, f) segment(l, p, q, f) ! 6: #endif ! 7: ! 8: #include <jerq.h> ! 9: #define DB ((Word *)0x700000) ! 10: #define ONSCREEN(b) (b->base>=DB && b->base<DB+XMAX/WORDSIZE*YMAX) ! 11: #define ONSCREEN(b) (b->base>=DB && b->base<DB+XMAX/WORDSIZE*YMAX) ! 12: ! 13: static int yaxis; ! 14: static int xaxis; ! 15: static Point lp; ! 16: ! 17: static void ! 18: scan(bp, p, f) ! 19: Bitmap *bp; ! 20: Point p; ! 21: Code f; ! 22: { ! 23: register x, y; ! 24: ! 25: if((p.y != lp.y) && (lp.y != -1)) ! 26: { ! 27: x = xaxis - lp.x; ! 28: y = yaxis - lp.y; ! 29: lrectf(bp, Rect(lp.x, lp.y, x+1, lp.y+1), f); ! 30: lrectf(bp, Rect(lp.x, y, x+1, y+1), f); ! 31: } ! 32: lp = p; ! 33: } ! 34: eldisc(bp, p, a, b, f) ! 35: Bitmap *bp; ! 36: Point p; ! 37: int a, b; ! 38: Code f; ! 39: { ! 40: short inhibited; ! 41: register x0 = p.x; ! 42: register y0 = p.y; ! 43: ! 44: yaxis = 2*p.y; ! 45: xaxis = 2*p.x; ! 46: lp.y = -1; ! 47: inhibited=0; ! 48: if(f!=F_XOR && ONSCREEN(bp)){ ! 49: Jcursinhibit(); ! 50: inhibited=1; ! 51: } ! 52: if(a==0 || b==0) ! 53: lsegment(bp, Pt(x0-a,y0-b), Pt(x0+a,y0+b), f); ! 54: else ! 55: { ! 56: lrectf(bp, Rect(p.x-a, p.y, p.x+a+1, p.y+1), f); ! 57: ellip1(bp, p, a, b, scan, Pt(0, -b), Pt(-a, 0), f); ! 58: scan(bp, Pt(0, -1), f); ! 59: } ! 60: if(inhibited) ! 61: Jcursallow(); ! 62: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.