git: 9front

Download patch

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;
 }
--