From a09cfff78a96a10169a30324b75554827945fed4 Mon Sep 17 00:00:00 2001 From: rodri Date: Sat, 5 Oct 2024 10:07:34 +0000 Subject: patch a leak in rectclipline. fix a pixel-discarding logic statement. --- clip.c | 6 ++++-- fb.c | 2 +- render.c | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/clip.c b/clip.c index 14fdc7f..95f99a2 100644 --- a/clip.c +++ b/clip.c @@ -199,8 +199,10 @@ adjustverts(Point *p0, Point *p1, Vertex *v0, Vertex *v1) perc = len == 0? 0: hypot(Δp.x, Δp.y)/len; lerpvertex(&v[1], v0, v1, perc); - *v0 = dupvertex(&v[0]); - *v1 = dupvertex(&v[1]); + delvattrs(v0); + delvattrs(v1); + *v0 = v[0]; + *v1 = v[1]; } /* diff --git a/fb.c b/fb.c index 4a6a7d2..88fe017 100644 --- a/fb.c +++ b/fb.c @@ -92,7 +92,7 @@ rasterconvF2C(Raster *dst, Raster *src) /* first run: get the domain */ f = (float*)src->data; len = Dx(dst->r)*Dy(dst->r); - for(min = 0, max = 0; len--; f++){ + for(min = max = 0; len--; f++){ if(isInf(*f, -1)) /* -∞ is the DNotacolor of the z-buffer */ continue; min = min(*f, min); diff --git a/render.c b/render.c index 400593d..5d0954b 100644 --- a/render.c +++ b/render.c @@ -260,8 +260,8 @@ rasterize(Rastertask *task) z = flerp(prim->v[0].p.z, prim->v[1].p.z, perc); /* TODO get rid of the bounds check and make sure the clipping doesn't overflow */ - if((ropts & RODepth) && - !ptinrect(p, params->fb->r) || z <= getdepth(zr, p)) + if(!ptinrect(p, params->fb->r) || + ((ropts & RODepth) && z <= getdepth(zr, p))) goto discard; /* interpolate z⁻¹ and get actual z */ -- cgit v1.2.3