shithub: map

Download patch

ref: ce8ab2d2e6b034cf42a7320c3a8545d941079862
parent: a0578c7de4163344d936ea78191a836556495bba
author: sirjofri <sirjofri@sirjofri.de>
date: Fri Apr 4 15:26:48 EDT 2025

fixes graphical glitch

--- a/img.c
+++ b/img.c
@@ -9,6 +9,8 @@
 extern int tilesize;
 extern Point drawoffset;
 
+Image *green = nil;
+
 ImageUpdated callbackfunc;
 
 void
@@ -33,12 +35,16 @@
 	loaded = readimage(display, fd, 0);
 	close(fd);
 	
+	r = rectaddpt(r, pos);
 	lockmapimage();
-	draw(mapimage, rectaddpt(r, pos), loaded, nil, ZP);
+	draw(mapimage, r, loaded, nil, ZP);
 	if (debug) {
 		snprint(file, sizeof file, "%d / %d", b.x, b.y);
 		border(mapimage, rectaddpt(r, pos), 1, display->black, ZP);
 		string(mapimage, pos, display->black, ZP, font, file);
+		if (!green)
+			green = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, DGreen);
+		border(mapimage, mapimage->r, 1, green, ZP);
 	}
 	unlockmapimage();
 	
--- a/map.c
+++ b/map.c
@@ -244,8 +244,8 @@
 	r.min = ZP;
 	viewsize.x = Dx(nimage->slot.r);
 	viewsize.y = Dy(nimage->slot.r);
-	r.max.x = (viewsize.x/tilesize + 2) * tilesize;
-	r.max.y = (viewsize.y/tilesize + 2) * tilesize;
+	r.max.x = (viewsize.x/tilesize + 3) * tilesize;
+	r.max.y = (viewsize.y/tilesize + 3) * tilesize;
 	mapimagesize = r.max;
 	
 	mapimage = allocimage(display, r, screen->chan, 0, DWhite);
@@ -308,7 +308,6 @@
 {
 	double v;
 	double deg = gettiledeg();
-	fprint(2, "deg: %f\n", deg);
 	if (x) *x = deg * m;
 	if (y) {
 		v = 1. - fabs(gpsloc.lat) / 90.;