Blame


1 ed7c8e8d 2003-09-30 devnull #include <u.h>
2 ed7c8e8d 2003-09-30 devnull #include <libc.h>
3 ed7c8e8d 2003-09-30 devnull #include <draw.h>
4 ed7c8e8d 2003-09-30 devnull
5 ed7c8e8d 2003-09-30 devnull void
6 ed7c8e8d 2003-09-30 devnull _setdrawop(Display *d, Drawop op)
7 ed7c8e8d 2003-09-30 devnull {
8 ed7c8e8d 2003-09-30 devnull uchar *a;
9 ed7c8e8d 2003-09-30 devnull
10 ed7c8e8d 2003-09-30 devnull if(op != SoverD){
11 ed7c8e8d 2003-09-30 devnull a = bufimage(d, 1+1);
12 ed7c8e8d 2003-09-30 devnull if(a == 0)
13 ed7c8e8d 2003-09-30 devnull return;
14 ed7c8e8d 2003-09-30 devnull a[0] = 'O';
15 ed7c8e8d 2003-09-30 devnull a[1] = op;
16 ed7c8e8d 2003-09-30 devnull }
17 ed7c8e8d 2003-09-30 devnull }
18 fa325e9b 2020-01-10 cross
19 ed7c8e8d 2003-09-30 devnull static void
20 ed7c8e8d 2003-09-30 devnull draw1(Image *dst, Rectangle *r, Image *src, Point *p0, Image *mask, Point *p1, Drawop op)
21 ed7c8e8d 2003-09-30 devnull {
22 ed7c8e8d 2003-09-30 devnull uchar *a;
23 ed7c8e8d 2003-09-30 devnull
24 ed7c8e8d 2003-09-30 devnull _setdrawop(dst->display, op);
25 ed7c8e8d 2003-09-30 devnull
26 ed7c8e8d 2003-09-30 devnull a = bufimage(dst->display, 1+4+4+4+4*4+2*4+2*4);
27 ed7c8e8d 2003-09-30 devnull if(a == 0)
28 ed7c8e8d 2003-09-30 devnull return;
29 ed7c8e8d 2003-09-30 devnull if(src == nil)
30 ed7c8e8d 2003-09-30 devnull src = dst->display->black;
31 ed7c8e8d 2003-09-30 devnull if(mask == nil)
32 ed7c8e8d 2003-09-30 devnull mask = dst->display->opaque;
33 ed7c8e8d 2003-09-30 devnull a[0] = 'd';
34 ed7c8e8d 2003-09-30 devnull BPLONG(a+1, dst->id);
35 ed7c8e8d 2003-09-30 devnull BPLONG(a+5, src->id);
36 ed7c8e8d 2003-09-30 devnull BPLONG(a+9, mask->id);
37 ed7c8e8d 2003-09-30 devnull BPLONG(a+13, r->min.x);
38 ed7c8e8d 2003-09-30 devnull BPLONG(a+17, r->min.y);
39 ed7c8e8d 2003-09-30 devnull BPLONG(a+21, r->max.x);
40 ed7c8e8d 2003-09-30 devnull BPLONG(a+25, r->max.y);
41 ed7c8e8d 2003-09-30 devnull BPLONG(a+29, p0->x);
42 ed7c8e8d 2003-09-30 devnull BPLONG(a+33, p0->y);
43 ed7c8e8d 2003-09-30 devnull BPLONG(a+37, p1->x);
44 ed7c8e8d 2003-09-30 devnull BPLONG(a+41, p1->y);
45 ed7c8e8d 2003-09-30 devnull }
46 ed7c8e8d 2003-09-30 devnull
47 ed7c8e8d 2003-09-30 devnull void
48 ed7c8e8d 2003-09-30 devnull draw(Image *dst, Rectangle r, Image *src, Image *mask, Point p1)
49 ed7c8e8d 2003-09-30 devnull {
50 ed7c8e8d 2003-09-30 devnull draw1(dst, &r, src, &p1, mask, &p1, SoverD);
51 ed7c8e8d 2003-09-30 devnull }
52 ed7c8e8d 2003-09-30 devnull
53 ed7c8e8d 2003-09-30 devnull void
54 ed7c8e8d 2003-09-30 devnull drawop(Image *dst, Rectangle r, Image *src, Image *mask, Point p1, Drawop op)
55 ed7c8e8d 2003-09-30 devnull {
56 ed7c8e8d 2003-09-30 devnull draw1(dst, &r, src, &p1, mask, &p1, op);
57 ed7c8e8d 2003-09-30 devnull }
58 ed7c8e8d 2003-09-30 devnull
59 ed7c8e8d 2003-09-30 devnull void
60 ed7c8e8d 2003-09-30 devnull gendraw(Image *dst, Rectangle r, Image *src, Point p0, Image *mask, Point p1)
61 ed7c8e8d 2003-09-30 devnull {
62 ed7c8e8d 2003-09-30 devnull draw1(dst, &r, src, &p0, mask, &p1, SoverD);
63 ed7c8e8d 2003-09-30 devnull }
64 ed7c8e8d 2003-09-30 devnull
65 ed7c8e8d 2003-09-30 devnull void
66 ed7c8e8d 2003-09-30 devnull gendrawop(Image *dst, Rectangle r, Image *src, Point p0, Image *mask, Point p1, Drawop op)
67 ed7c8e8d 2003-09-30 devnull {
68 ed7c8e8d 2003-09-30 devnull draw1(dst, &r, src, &p0, mask, &p1, op);
69 ed7c8e8d 2003-09-30 devnull }