shithub: libgraphics

Download patch

ref: c04b67128ac36b9c7a8908d1df800a4b96e27463
parent: 0f3b1baebbaa1dbcfed0ba25850f70dd6ce30e4e
author: rodri <rgl@antares-labs.eu>
date: Fri Jan 2 17:56:03 EST 2026

adapt to new changes in libgeometry

--- a/graphics.h
+++ b/graphics.h
@@ -535,5 +535,3 @@
 uvlong nanosec(void);
 
 extern Rectangle UR;	/* unit rectangle */
-extern Point2 ZP2;
-extern Point3 ZP3;
--- a/render.c
+++ b/render.c
@@ -312,11 +312,11 @@
 }
 
 static Point3
-_barycoords(Triangle2 t, Point2 p)
+_barycoords(Point2 p0, Point2 p1, Point2 p2, Point2 p)
 {
-	Point2 p0p1 = subpt2(t.p1, t.p0);
-	Point2 p0p2 = subpt2(t.p2, t.p0);
-	Point2 pp0  = subpt2(t.p0, p);
+	Point2 p0p1 = subpt2(p1, p0);
+	Point2 p0p2 = subpt2(p2, p0);
+	Point2 pp0  = subpt2(p0, p);
 
 	Point3 v = crossvec3(Vec3(p0p2.x, p0p1.x, pp0.x), Vec3(p0p2.y, p0p1.y, pp0.y));
 
@@ -336,8 +336,8 @@
 //	vGradient ∇v;
 //	fGradient ∇z, ∇pcz;
 //	BVertex v, *vp;
-	Triangle2 t;
 	Point p;
+	Point2 t[3];
 	Point3 bc;
 	Color c;
 	float z, pcz;
@@ -353,26 +353,26 @@
 //	memset(&v, 0, sizeof v);
 //	vp = &v;
 
-	t.p0 = (Point2){prim->v[0].p.x, prim->v[0].p.y, 1};
-	t.p1 = (Point2){prim->v[1].p.x, prim->v[1].p.y, 1};
-	t.p2 = (Point2){prim->v[2].p.x, prim->v[2].p.y, 1};
+	t[0] = (Point2){prim->v[0].p.x, prim->v[0].p.y, 1};
+	t[1] = (Point2){prim->v[1].p.x, prim->v[1].p.y, 1};
+	t[2] = (Point2){prim->v[2].p.x, prim->v[2].p.y, 1};
 
-	∇bc.p0 = _barycoords(t, (Point2){task->wr.min.x+0.5, task->wr.min.y+0.5, 1});
-	∇bc.dx = mulpt3((Point3){t.p2.y - t.p1.y, t.p0.y - t.p2.y, t.p1.y - t.p0.y, 0}, ∇bc.p0.w);
-	∇bc.dy = mulpt3((Point3){t.p1.x - t.p2.x, t.p2.x - t.p0.x, t.p0.x - t.p1.x, 0}, ∇bc.p0.w);
+	∇bc.p0 = _barycoords(t[0], t[1], t[2], (Point2){task->wr.min.x+0.5, task->wr.min.y+0.5, 1});
+	∇bc.dx = mulpt3((Point3){t[2].y - t[1].y, t[0].y - t[2].y, t[1].y - t[0].y, 0}, ∇bc.p0.w);
+	∇bc.dy = mulpt3((Point3){t[1].x - t[2].x, t[2].x - t[0].x, t[0].x - t[1].x, 0}, ∇bc.p0.w);
 
 //	/* TODO find a good method to apply the fill rule */
-//	if(istoporleft(&t.p1, &t.p2)){
+//	if(istoporleft(&t[1], &t[2])){
 //		∇bc.p0.x -= ∇bc.p0.w;
 //		∇bc.dx.x -= ∇bc.p0.w;
 //		∇bc.dy.x -= ∇bc.p0.w;
 //	}
-//	if(istoporleft(&t.p2, &t.p0)){
+//	if(istoporleft(&t[2], &t[0])){
 //		∇bc.p0.y -= ∇bc.p0.w;
 //		∇bc.dx.y -= ∇bc.p0.w;
 //		∇bc.dy.y -= ∇bc.p0.w;
 //	}
-//	if(istoporleft(&t.p0, &t.p1)){
+//	if(istoporleft(&t[0], &t[1])){
 //		∇bc.p0.z -= ∇bc.p0.w;
 //		∇bc.dx.z -= ∇bc.p0.w;
 //		∇bc.dy.z -= ∇bc.p0.w;
--- a/util.c
+++ b/util.c
@@ -8,8 +8,6 @@
 #include "internal.h"
 
 Rectangle UR = {0,0,1,1};
-Point2 ZP2;
-Point3 ZP3;
 
 Point
 minpt(Point a, Point b)
--