]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libdraw/border.c
ircrc: freenode -> oftc
[plan9front.git] / sys / src / libdraw / border.c
1 #include <u.h>
2 #include <libc.h>
3 #include <draw.h>
4
5 void
6 borderop(Image *im, Rectangle r, int i, Image *color, Point sp, Drawop op)
7 {
8         if(i < 0){
9                 r = insetrect(r, i);
10                 sp = addpt(sp, Pt(i,i));
11                 i = -i;
12         }
13         drawop(im, Rect(r.min.x, r.min.y, r.max.x, r.min.y+i),
14                 color, nil, sp, op);
15         drawop(im, Rect(r.min.x, r.max.y-i, r.max.x, r.max.y),
16                 color, nil, Pt(sp.x, sp.y+Dy(r)-i), op);
17         drawop(im, Rect(r.min.x, r.min.y+i, r.min.x+i, r.max.y-i),
18                 color, nil, Pt(sp.x, sp.y+i), op);
19         drawop(im, Rect(r.max.x-i, r.min.y+i, r.max.x, r.max.y-i),
20                 color, nil, Pt(sp.x+Dx(r)-i, sp.y+i), op);
21 }
22
23 void
24 border(Image *im, Rectangle r, int i, Image *color, Point sp)
25 {
26         borderop(im, r, i, color, sp, SoverD);
27 }