shithub: fnt

Download patch

ref: 65d1d12a2188d0e3424ed7d696d896967165eb98
parent: aabdbc1576eb78ff59cce5a293a91ae019d2e281
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu Jul 18 12:45:18 EDT 2024

dumpmap: fix a single glyph map

--- a/test.h
+++ b/test.h
@@ -28,23 +28,33 @@
 
 	total = 0;
 	maxh = 0;
-	gap = 1;
 	lines = map > 1;
 	fill = map > 2;
-	for(i = 0; i < n; i++){
-		if(im[i].b == nil)
-			continue;
-		if(maxh < im[i].h)
-			maxh = im[i].h;
-		total += im[i].w;
+	if(n == 1){
+		gap = 8;
+		maxh = im->h;
+		if(im->baseline)
+			maxh += im->baseline;
+		bw = 2*gap + im->w;
+		bh = 2*gap + maxh;
+		npix = bw * bh;
+	}else{
+		gap = 1;
+		for(i = 0; i < n; i++){
+			if(im[i].b == nil)
+				continue;
+			if(maxh < im[i].h)
+				maxh = im[i].h;
+			total += im[i].w;
+		}
+		mid = total / n;
+		npix = (mid+gap)*(maxh+gap)*n;
+		bh = sqrt(npix);
+		bw = npix/bh;
+		npix *= 2;
+		bh *= 2;
+		npix += bw*gap;
 	}
-	mid = total / n;
-	npix = (mid+gap)*(maxh+gap)*n;
-	bh = sqrt(npix);
-	bw = npix/bh;
-	npix *= 2;
-	bh *= 2;
-	npix += bw*gap;
 	if((b = malloc(npix*3)) == nil)
 		return -1;
 	memset(b, 0xff, npix*3);