char* name;
int style;
int desc;
+ int asce;
int size;
int max_width;
int max_height;
int min_y;
+ int max_y;
int flags;
int num_range;
grub_uint32_t *ranges;
{"range", required_argument, 0, 'r'},
{"size", required_argument, 0, 's'},
{"desc", required_argument, 0, 'd'},
+ {"asce", required_argument, 0, 'c'},
{"bold", no_argument, 0, 'b'},
{"no-bitmap", no_argument, 0, 0x100},
{"no-hinting", no_argument, 0, 0x101},
-n, --name=S set font family name\n\
-s, --size=N set font size\n\
-d, --desc=N set font descent\n\
+ -c, --asce=N set font ascent\n\
-b, --bold convert to bold font\n\
-a, --force-autohint force autohint\n\
--no-hinting disable hinting\n\
if (height > font_info->max_height)
font_info->max_height = height;
- if (glyph_info->y_ofs < font_info->min_y)
+ if (glyph_info->y_ofs < font_info->min_y && glyph_info->y_ofs > -font_info->size)
font_info->min_y = glyph_info->y_ofs;
+ if (glyph_info->y_ofs + height > font_info->max_y)
+ font_info->max_y = glyph_info->y_ofs + height;
+
mask = 0;
data = &glyph_info->bitmap[0] - 1;
for (j = 0; j < height; j++)
xmin = 0;
ymax = glyph->y_ofs + glyph->height;
- if (ymax < font_info->size - font_info->desc)
- ymax = font_info->size - font_info->desc;
+ if (ymax < font_info->asce)
+ ymax = font_info->asce;
ymin = glyph->y_ofs;
if (ymin > - font_info->desc)
else if ((x >= 0) &&
(x < glyph->device_width) &&
(y >= - font_info->desc) &&
- (y < font_info->size - font_info->desc))
+ (y < font_info->asce))
{
line[line_pos++] = ((x == 0) || (y == 0)) ? '+' : '.';
}
font_info->desc = - font_info->min_y;
}
- write_be16_section ("ASCE", font_info->size - font_info->desc, &offset, file);
+ if (! font_info->asce)
+ {
+ if (font_info->max_y <= 0)
+ font_info->asce = 1;
+ else
+ font_info->asce = font_info->max_y;
+ }
+
+ write_be16_section ("ASCE", font_info->asce, &offset, file);
write_be16_section ("DESC", font_info->desc, &offset, file);
if (font_verbosity > 0)
printf ("Font name: %s\n", font_name);
printf ("Max width: %d\n", font_info->max_width);
printf ("Max height: %d\n", font_info->max_height);
- printf ("Font ascent: %d\n", font_info->size - font_info->desc);
+ printf ("Font ascent: %d\n", font_info->asce);
printf ("Font descent: %d\n", font_info->desc);
}
font_info.desc = strtoul (optarg, NULL, 0);
break;
+ case 'e':
+ font_info.asce = strtoul (optarg, NULL, 0);
+ break;
+
case 'h':
usage (0);
break;