commit 86883e9

uint  ·  2026-05-13 22:11:53 +0000 UTC
parent 794f8d0
round font width and height with ceil
1 files changed,  +9, -6
+9, -6
 1@@ -1,9 +1,10 @@
 2-#include "font.h"
 3-#include "schrift.h"
 4-
 5+#include <math.h>
 6 #include <stdlib.h>
 7 #include <string.h>
 8 
 9+#include "font.h"
10+#include "schrift.h"
11+
12 int font_load(Fontface* f, const char* path, double size)
13 {
14 	SFT_LMetrics lm;
15@@ -34,15 +35,17 @@ int font_load(Fontface* f, const char* path, double size)
16 	f->asc = lm.ascender;
17 	f->dsc = lm.descender;
18 
19-	/* cell width/height */
20-	f->cellh = (int)(lm.ascender - lm.descender + lm.lineGap + 0.5);
21+	/* cell height */
22+	f->cellh = (int)ceil(lm.ascender - lm.descender + lm.lineGap);
23 
24+	/* cell width */
25 	if (sft_lookup(&f->sft, 'A', &glyph) < 0)
26 		goto fail;
27 	if (sft_gmetrics(&f->sft, glyph, &gm) < 0)
28 		goto fail;
29 
30-	f->cellw = (int)(gm.advanceWidth + 0.5);
31+	f->cellw = (int)ceil(gm.advanceWidth);
32+
33 	if (f->cellw <= 0 || f->cellh <= 0)
34 		goto fail;
35