ref: 924510aeb296c3db542d789aecc971f65eb45ef0
parent: c30e30bd41b7328120127aec5b19fc036798d2e3
author: rodri <rgl@antares-labs.eu>
date: Sun Jan 25 13:39:04 EST 2026
libmemdraw: remove clipped arg from _memfillpolysc() and do a little cleanup
--- a/sys/include/memdraw.h
+++ b/sys/include/memdraw.h
@@ -140,7 +140,7 @@
extern void memline(Memimage*, Point, Point, int, int, int, Memimage*, Point, int);
extern void mempoly(Memimage*, Point*, int, int, int, int, Memimage*, Point, int);
extern void memfillpoly(Memimage*, Point*, int, int, Memimage*, Point, int);
-extern void _memfillpolysc(Memimage*, Point*, int, int, Memimage*, Point, int, int, int, int);
+extern void _memfillpolysc(Memimage*, Point*, int, int, Memimage*, Point, int, int, int);
extern void memimagedraw(Memimage*, Rectangle, Memimage*, Point, Memimage*, Point, int);
extern int hwdraw(Memdrawparam*);
extern void memimageline(Memimage*, Point, Point, int, int, int, Memimage*, Point, int);
--- a/sys/src/libmemdraw/fillpoly.c
+++ b/sys/src/libmemdraw/fillpoly.c
@@ -19,12 +19,12 @@
long d;
};
-static void zsort(Seg **seg, Seg **ep);
+static void zsort(Seg**, Seg**);
static int ycompare(void*, void*);
static int xcompare(void*, void*);
static int zcompare(void*, void*);
-static void xscan(Memimage *dst, Seg **seg, Seg *segtab, int nseg, int wind, Memimage *src, Point sp, int, int, int, int);
-static void yscan(Memimage *dst, Seg **seg, Seg *segtab, int nseg, int wind, Memimage *src, Point sp, int, int);
+static void xscan(Memimage*, Seg**, Seg*, int, int, Memimage*, Point, int, int, int);
+static void yscan(Memimage*, Seg**, Seg*, int, int, Memimage*, Point, int, int);
static void
fillline(Memimage *dst, int left, int right, int y, Memimage *src, Point p, int op)
@@ -57,11 +57,11 @@
void
memfillpoly(Memimage *dst, Point *vert, int nvert, int w, Memimage *src, Point sp, int op)
{- _memfillpolysc(dst, vert, nvert, w, src, sp, 0, 0, 0, op);
+ _memfillpolysc(dst, vert, nvert, w, src, sp, 0, 0, op);
}
void
-_memfillpolysc(Memimage *dst, Point *vert, int nvert, int w, Memimage *src, Point sp, int detail, int fixshift, int clipped, int op)
+_memfillpolysc(Memimage *dst, Point *vert, int nvert, int w, Memimage *src, Point sp, int detail, int fixshift, int op)
{Seg **seg, *segtab;
Point p0;
@@ -99,7 +99,7 @@
if(!fixshift)
fixshift = 1;
- xscan(dst, seg, segtab, nvert, w, src, sp, detail, fixshift, clipped, op);
+ xscan(dst, seg, segtab, nvert, w, src, sp, detail, fixshift, op);
if(detail)
yscan(dst, seg, segtab, nvert, w, src, sp, fixshift, op);
@@ -147,7 +147,7 @@
}
static void
-xscan(Memimage *dst, Seg **seg, Seg *segtab, int nseg, int wind, Memimage *src, Point sp, int detail, int fixshift, int clipped, int op)
+xscan(Memimage *dst, Seg **seg, Seg *segtab, int nseg, int wind, Memimage *src, Point sp, int detail, int fixshift, int op)
{long y, maxy, x, x2, xerr, xden, onehalf;
Seg **ep, **next, **p, **q, *s;
@@ -154,8 +154,6 @@
long n, i, iy, cnt, ix, ix2, minx, maxx;
Point pt;
- USED(clipped);
-
for(i=0, s=segtab, p=seg; i<nseg; i++, s++) {*p = s;
if(s->p0.y == s->p1.y)
@@ -178,7 +176,7 @@
if(n == 0)
return;
*p = 0;
- qsort(seg, p-seg , sizeof(Seg*), ycompare);
+ qsort(seg, n, sizeof(Seg*), ycompare);
onehalf = 0;
if(fixshift)
@@ -308,7 +306,7 @@
if(n == 0)
return;
*p = 0;
- qsort(seg, n , sizeof(Seg*), xcompare);
+ qsort(seg, n, sizeof(Seg*), xcompare);
onehalf = 0;
if(fixshift)
--- a/sys/src/libmemdraw/line.c
+++ b/sys/src/libmemdraw/line.c
@@ -401,7 +401,7 @@
break;
case Endarrow:
arrowend(q, pp, end0, -sin, -cos, radius);
- _memfillpolysc(dst, pts, 5, ~0, src, addpt(pts[0], mulpt(d, ICOSSCALE)), 1, 10, 1, op);
+ _memfillpolysc(dst, pts, 5, ~0, src, addpt(pts[0], mulpt(d, ICOSSCALE)), 1, 10, op);
pp[1] = pp[4];
pp += 2;
}
@@ -422,11 +422,11 @@
break;
case Endarrow:
arrowend(q, pp, end1, sin, cos, radius);
- _memfillpolysc(dst, pp, 5, ~0, src, addpt(pp[0], mulpt(d, ICOSSCALE)), 1, 10, 1, op);
+ _memfillpolysc(dst, pp, 5, ~0, src, addpt(pp[0], mulpt(d, ICOSSCALE)), 1, 10, op);
pp[1] = pp[4];
pp += 2;
}
- _memfillpolysc(dst, pts, pp-pts, ~0, src, addpt(pts[0], mulpt(d, ICOSSCALE)), 0, 10, 1, op);
+ _memfillpolysc(dst, pts, pp-pts, ~0, src, addpt(pts[0], mulpt(d, ICOSSCALE)), 0, 10, op);
dst->clipr = oclipr;
return;
}
--
⑨