]> git.lizzy.rs Git - plan9front.git/commitdiff
libdraw: add missing borderop() (thanks aiju)
authorcinap_lenrek <cinap_lenrek@felloff.net>
Mon, 21 Jul 2014 16:10:58 +0000 (18:10 +0200)
committercinap_lenrek <cinap_lenrek@felloff.net>
Mon, 21 Jul 2014 16:10:58 +0000 (18:10 +0200)
sys/man/2/draw
sys/src/libdraw/border.c

index e6f23a968694d272bc7bffb76bc82a30771dd747..f517bc5c184e36cf5c2e8dffcba801a8c331ceb2 100644 (file)
@@ -152,6 +152,9 @@ int icossin(int deg, int *cosp, int *sinp)
 int    icossin2(int x, int y, int *cosp, int *sinp)
 .PB
 void   border(Image *dst, Rectangle r, int i, Image *color, Point sp)
+.PB
+void   borderop(Image *dst, Rectangle r, int i, Image *color, Point sp,
+               Drawop op)
 .br
 .PB
 Point  string(Image *dst, Point p, Image *src, Point sp,
index 22637dfadafbae63ddda09b55bbc80fa5fbf60e0..52eaa152435587be91ff2ce06b88b124cc8cb204 100644 (file)
@@ -3,19 +3,25 @@
 #include <draw.h>
 
 void
-border(Image *im, Rectangle r, int i, Image *color, Point sp)
+borderop(Image *im, Rectangle r, int i, Image *color, Point sp, Drawop op)
 {
        if(i < 0){
                r = insetrect(r, i);
                sp = addpt(sp, Pt(i,i));
                i = -i;
        }
-       draw(im, Rect(r.min.x, r.min.y, r.max.x, r.min.y+i),
-               color, nil, sp);
-       draw(im, Rect(r.min.x, r.max.y-i, r.max.x, r.max.y),
-               color, nil, Pt(sp.x, sp.y+Dy(r)-i));
-       draw(im, Rect(r.min.x, r.min.y+i, r.min.x+i, r.max.y-i),
-               color, nil, Pt(sp.x, sp.y+i));
-       draw(im, Rect(r.max.x-i, r.min.y+i, r.max.x, r.max.y-i),
-               color, nil, Pt(sp.x+Dx(r)-i, sp.y+i));
+       drawop(im, Rect(r.min.x, r.min.y, r.max.x, r.min.y+i),
+               color, nil, sp, op);
+       drawop(im, Rect(r.min.x, r.max.y-i, r.max.x, r.max.y),
+               color, nil, Pt(sp.x, sp.y+Dy(r)-i), op);
+       drawop(im, Rect(r.min.x, r.min.y+i, r.min.x+i, r.max.y-i),
+               color, nil, Pt(sp.x, sp.y+i), op);
+       drawop(im, Rect(r.max.x-i, r.min.y+i, r.max.x, r.max.y-i),
+               color, nil, Pt(sp.x+Dx(r)-i, sp.y+i), op);
+}
+
+void
+border(Image *im, Rectangle r, int i, Image *color, Point sp)
+{
+       borderop(im, r, i, color, sp, SoverD);
 }