diff options
author | rodri <rgl@antares-labs.eu> | 2024-10-05 10:07:34 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-10-05 10:07:34 +0000 |
commit | a09cfff78a96a10169a30324b75554827945fed4 (patch) | |
tree | c5df96a71fc78492aecc6a51ef928e437ac828f0 | |
parent | 91dfb6853d7b6d7ae49f54488b89e0eb73b5ff01 (diff) | |
download | libgraphics-a09cfff78a96a10169a30324b75554827945fed4.tar.gz libgraphics-a09cfff78a96a10169a30324b75554827945fed4.tar.bz2 libgraphics-a09cfff78a96a10169a30324b75554827945fed4.zip |
patch a leak in rectclipline. fix a pixel-discarding logic statement.
-rw-r--r-- | clip.c | 6 | ||||
-rw-r--r-- | fb.c | 2 | ||||
-rw-r--r-- | render.c | 4 |
3 files changed, 7 insertions, 5 deletions
@@ -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]; } /* @@ -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); @@ -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 */ |