ref: f2c184f60f627001c84a43386d557a4354c52ec0
parent: 88722dac9df41f0b1f6288cbdb6e5eed9c3ab55c
author: rodri <rgl@antares-labs.eu>
date: Mon Sep 15 13:00:25 EDT 2025
image/affinewarp: initialize the mstk and fix getbbox()
--- a/sys/src/cmd/image/affinewarp.c
+++ b/sys/src/cmd/image/affinewarp.c
@@ -102,6 +102,7 @@
getbbox(Rectangle *sr, Matrix m, Point2 *dp0)
{Point2 p0, p1, p2, p3;
+ Rectangle bbox;
p0 = Pt2(sr->min.x + 0.5, sr->min.y + 0.5, 1);
p0 = *dp0 = xform(p0, m);
@@ -112,17 +113,17 @@
p3 = Pt2(sr->max.x + 0.5, sr->max.y + 0.5, 1);
p3 = xform(p3, m);
- p0.x = min(min(min(p0.x, p1.x), p2.x), p3.x);
- p0.y = min(min(min(p0.y, p1.y), p2.y), p3.y);
- p1.x = max(max(max(p1.x, p1.x), p2.x), p3.x);
- p1.y = max(max(max(p1.y, p1.y), p2.y), p3.y);
- return Rect(p0.x, p0.y, p1.x, p1.y);
+ bbox.min.x = min(min(min(p0.x, p1.x), p2.x), p3.x);
+ bbox.min.y = min(min(min(p0.y, p1.y), p2.y), p3.y);
+ bbox.max.x = max(max(max(p0.x, p1.x), p2.x), p3.x);
+ bbox.max.y = max(max(max(p0.y, p1.y), p2.y), p3.y);
+ return bbox;
}
void
usage(void)
{- fprint(2, "usage: %s [-Rqp] [[-s x y] [-r θ] [-t x y] [-S x y]]...\n", argv0);
+ fprint(2, "usage: %s [-Rqp] [[-s x y] [-r θ] [-t x y] [-S x y] ...]\n", argv0);
exits("usage");}
@@ -139,6 +140,7 @@
int smooth, dorepl, parallel, nproc, i;
char *nprocs;
+ memset(&stk, 0, sizeof stk);
dorepl = 0;
smooth = 0;
parallel = 0;
--
⑨