fontgen: show more error info for invalid character metrics

This commit is contained in:
Josh Holtrop 2023-09-26 12:00:22 -04:00
parent a87d24d417
commit 71bc3543a1

View File

@ -192,24 +192,24 @@ int main(int argc, char * argv[])
{ {
if ((char_infos[i].width < 0) || (char_infos[i].width > max_advance)) if ((char_infos[i].width < 0) || (char_infos[i].width > max_advance))
{ {
fprintf(stderr, "Error: invalid character %d width: %d\n", i, char_infos[i].width); fprintf(stderr, "Error: invalid character %d width: %d (max advance %d)\n", i, char_infos[i].width, max_advance);
return false; return false;
} }
if ((char_infos[i].height < 0) || (char_infos[i].height > line_height)) if ((char_infos[i].height < 0) || (char_infos[i].height > line_height))
{ {
fprintf(stderr, "Error: invalid character %d height: %d\n", i, char_infos[i].height); fprintf(stderr, "Error: invalid character %d height: %d (line height %d)\n", i, char_infos[i].height, line_height);
return false; return false;
} }
if ((char_infos[i].left < 0) || (char_infos[i].left >= max_advance)) if ((char_infos[i].left < 0) || (char_infos[i].left >= max_advance))
{ {
fprintf(stderr, "Error: invalid character %d left: %d\n", i, char_infos[i].left); fprintf(stderr, "Error: invalid character %d left: %d (max advance %d)\n", i, char_infos[i].left, max_advance);
return false; return false;
} }
/* Adjust character top to be index downward from top of font box. */ /* Adjust character top to be index downward from top of font box. */
char_infos[i].top = line_height - baseline_offset - char_infos[i].top; char_infos[i].top = line_height - baseline_offset - char_infos[i].top;
if ((char_infos[i].top < 0) || (char_infos[i].top >= line_height)) if ((char_infos[i].top < 0) || (char_infos[i].top >= line_height))
{ {
fprintf(stderr, "Error: invalid character %d top: %d\n", i, char_infos[i].top); fprintf(stderr, "Error: invalid character %d top: %d (line height %d)\n", i, char_infos[i].top, line_height);
return false; return false;
} }
if ((char_infos[i].left + char_infos[i].width) > max_advance) if ((char_infos[i].left + char_infos[i].width) > max_advance)