ref: 1c0b2d238dc7e76735f240c1877afe7b6c991cf9
parent: 72a345c3b5aa94eae93a2d6dc210e3afb396228e
author: rodri <rgl@antares-labs.eu>
date: Wed Jan 28 12:34:26 EST 2026
libmemdraw: remove unused code frome line.c
--- a/sys/src/libmemdraw/line.c
+++ b/sys/src/libmemdraw/line.c
@@ -20,230 +20,6 @@
return b;
}
-#ifdef NOTUSED
-
-static
-int
-lmin(int a, int b)
-{- if(a < b)
- return a;
- return b;
-}
-
-/*
- * Rather than line clip, we run the Bresenham loop over the full line,
- * and clip on each pixel. This is more expensive but means that
- * lines look the same regardless of how the windowing has tiled them.
- * For speed, we check for clipping outside the loop and make the
- * test easy when possible.
- */
-
-static
-void
-horline1(Memimage *dst, Point p0, Point p1, int srcval, Rectangle clipr)
-{- int x, y, dy, deltay, deltax, maxx;
- int dd, easy, e, bpp, m, m0;
- uchar *d;
-
- deltax = p1.x - p0.x;
- deltay = p1.y - p0.y;
- dd = dst->width*sizeof(ulong);
- dy = 1;
- if(deltay < 0){- dd = -dd;
- deltay = -deltay;
- dy = -1;
- }
- maxx = lmin(p1.x, clipr.max.x-1);
- bpp = dst->depth;
- m0 = 0xFF^(0xFF>>bpp);
- m = m0 >> (p0.x&(7/dst->depth))*bpp;
- easy = ptinrect(p0, clipr) && ptinrect(p1, clipr);
- e = 2*deltay - deltax;
- y = p0.y;
- d = byteaddr(dst, p0);
- deltay *= 2;
- deltax = deltay - 2*deltax;
- for(x=p0.x; x<=maxx; x++){- if(easy || (clipr.min.x<=x && clipr.min.y<=y && y<clipr.max.y))
- *d ^= (*d^srcval) & m;
- if(e > 0){- y += dy;
- d += dd;
- e += deltax;
- }else
- e += deltay;
- d++;
- m >>= bpp;
- if(m == 0)
- m = m0;
- }
-}
-
-static
-void
-verline1(Memimage *dst, Point p0, Point p1, int srcval, Rectangle clipr)
-{- int x, y, deltay, deltax, maxy;
- int easy, e, bpp, m, m0, dd;
- uchar *d;
-
- deltax = p1.x - p0.x;
- deltay = p1.y - p0.y;
- dd = 1;
- if(deltax < 0){- dd = -1;
- deltax = -deltax;
- }
- maxy = lmin(p1.y, clipr.max.y-1);
- bpp = dst->depth;
- m0 = 0xFF^(0xFF>>bpp);
- m = m0 >> (p0.x&(7/dst->depth))*bpp;
- easy = ptinrect(p0, clipr) && ptinrect(p1, clipr);
- e = 2*deltax - deltay;
- x = p0.x;
- d = byteaddr(dst, p0);
- deltax *= 2;
- deltay = deltax - 2*deltay;
- for(y=p0.y; y<=maxy; y++){- if(easy || (clipr.min.y<=y && clipr.min.x<=x && x<clipr.max.x))
- *d ^= (*d^srcval) & m;
- if(e > 0){- x += dd;
- d += dd;
- e += deltay;
- }else
- e += deltax;
- d += dst->width*sizeof(ulong);
- m >>= bpp;
- if(m == 0)
- m = m0;
- }
-}
-
-static
-void
-horliner(Memimage *dst, Point p0, Point p1, Memimage *src, Point dsrc, Rectangle clipr)
-{- int x, y, sx, sy, deltay, deltax, minx, maxx;
- int bpp, m, m0;
- uchar *d, *s;
-
- deltax = p1.x - p0.x;
- deltay = p1.y - p0.y;
- sx = drawreplxy(src->r.min.x, src->r.max.x, p0.x+dsrc.x);
- minx = lmax(p0.x, clipr.min.x);
- maxx = lmin(p1.x, clipr.max.x-1);
- bpp = dst->depth;
- m0 = 0xFF^(0xFF>>bpp);
- m = m0 >> (minx&(7/dst->depth))*bpp;
- for(x=minx; x<=maxx; x++){- y = p0.y + (deltay*(x-p0.x)+deltax/2)/deltax;
- if(clipr.min.y<=y && y<clipr.max.y){- d = byteaddr(dst, Pt(x, y));
- sy = drawreplxy(src->r.min.y, src->r.max.y, y+dsrc.y);
- s = byteaddr(src, Pt(sx, sy));
- *d ^= (*d^*s) & m;
- }
- if(++sx >= src->r.max.x)
- sx = src->r.min.x;
- m >>= bpp;
- if(m == 0)
- m = m0;
- }
-}
-
-static
-void
-verliner(Memimage *dst, Point p0, Point p1, Memimage *src, Point dsrc, Rectangle clipr)
-{- int x, y, sx, sy, deltay, deltax, miny, maxy;
- int bpp, m, m0;
- uchar *d, *s;
-
- deltax = p1.x - p0.x;
- deltay = p1.y - p0.y;
- sy = drawreplxy(src->r.min.y, src->r.max.y, p0.y+dsrc.y);
- miny = lmax(p0.y, clipr.min.y);
- maxy = lmin(p1.y, clipr.max.y-1);
- bpp = dst->depth;
- m0 = 0xFF^(0xFF>>bpp);
- for(y=miny; y<=maxy; y++){- if(deltay == 0) /* degenerate line */
- x = p0.x;
- else
- x = p0.x + (deltax*(y-p0.y)+deltay/2)/deltay;
- if(clipr.min.x<=x && x<clipr.max.x){- m = m0 >> (x&(7/dst->depth))*bpp;
- d = byteaddr(dst, Pt(x, y));
- sx = drawreplxy(src->r.min.x, src->r.max.x, x+dsrc.x);
- s = byteaddr(src, Pt(sx, sy));
- *d ^= (*d^*s) & m;
- }
- if(++sy >= src->r.max.y)
- sy = src->r.min.y;
- }
-}
-
-static
-void
-horline(Memimage *dst, Point p0, Point p1, Memimage *src, Point dsrc, Rectangle clipr)
-{- int x, y, deltay, deltax, minx, maxx;
- int bpp, m, m0;
- uchar *d, *s;
-
- deltax = p1.x - p0.x;
- deltay = p1.y - p0.y;
- minx = lmax(p0.x, clipr.min.x);
- maxx = lmin(p1.x, clipr.max.x-1);
- bpp = dst->depth;
- m0 = 0xFF^(0xFF>>bpp);
- m = m0 >> (minx&(7/dst->depth))*bpp;
- for(x=minx; x<=maxx; x++){- y = p0.y + (deltay*(x-p0.x)+deltay/2)/deltax;
- if(clipr.min.y<=y && y<clipr.max.y){- d = byteaddr(dst, Pt(x, y));
- s = byteaddr(src, addpt(dsrc, Pt(x, y)));
- *d ^= (*d^*s) & m;
- }
- m >>= bpp;
- if(m == 0)
- m = m0;
- }
-}
-
-static
-void
-verline(Memimage *dst, Point p0, Point p1, Memimage *src, Point dsrc, Rectangle clipr)
-{- int x, y, deltay, deltax, miny, maxy;
- int bpp, m, m0;
- uchar *d, *s;
-
- deltax = p1.x - p0.x;
- deltay = p1.y - p0.y;
- miny = lmax(p0.y, clipr.min.y);
- maxy = lmin(p1.y, clipr.max.y-1);
- bpp = dst->depth;
- m0 = 0xFF^(0xFF>>bpp);
- for(y=miny; y<=maxy; y++){- if(deltay == 0) /* degenerate line */
- x = p0.x;
- else
- x = p0.x + deltax*(y-p0.y)/deltay;
- if(clipr.min.x<=x && x<clipr.max.x){- m = m0 >> (x&(7/dst->depth))*bpp;
- d = byteaddr(dst, Pt(x, y));
- s = byteaddr(src, addpt(dsrc, Pt(x, y)));
- *d ^= (*d^*s) & m;
- }
- }
-}
-#endif /* NOTUSED */
-
static Memimage*
membrush(int radius)
{--
⑨