#endif
}
- for (; from < to; x += from++->width)
+ for (; from < to; x += from++->g.xadv)
{
unsigned char *bmp;
int xoff, yoff;
int width, pitch;
- FT_Load_Glyph (ft_face, (FT_UInt) from->code, load_flags);
- yoff = y - ft_face->glyph->bitmap_top + from->yoff;
+ FT_Load_Glyph (ft_face, (FT_UInt) from->g.code, load_flags);
+ yoff = y - ft_face->glyph->bitmap_top + from->g.yoff;
bmp = ft_face->glyph->bitmap.buffer;
width = ft_face->glyph->bitmap.width;
pitch = ft_face->glyph->bitmap.pitch;
for (i = 0; i < ft_face->glyph->bitmap.rows;
i++, bmp += ft_face->glyph->bitmap.pitch, yoff++)
{
- xoff = x + ft_face->glyph->bitmap_left + from->xoff;
+ xoff = x + ft_face->glyph->bitmap_left + from->g.xoff;
for (j = 0; j < width; j++, xoff++)
if (bmp[j] > 0)
{
for (i = 0; i < ft_face->glyph->bitmap.rows;
i++, bmp += ft_face->glyph->bitmap.pitch, yoff++)
{
- xoff = x + ft_face->glyph->bitmap_left + from->xoff;
+ xoff = x + ft_face->glyph->bitmap_left + from->g.xoff;
for (j = 0; j < width; j++, xoff++)
if (bmp[j / 8] & (1 << (7 - (j % 8))))
gdImageSetPixel (img, xoff, yoff, pixel);
y -= gstring->ascent - 1;
height = gstring->ascent + gstring->descent - 2;
if (! region)
- for (; from < to; x += from++->width)
- gdImageRectangle (img, x, y, x + from->width - 2, y + height - 1, color);
+ for (; from < to; x += from++->g.xadv)
+ gdImageRectangle (img, x, y, x + from->g.xadv - 2, y + height - 1, color);
else
{
gdImagePtr cpy;
MGlyph *g;
int width, x1;
- for (g = from, width = 0; g < to; width += g++->width);
+ for (g = from, width = 0; g < to; width += g++->g.xadv);
cpy = get_scrach_image (img, width, height);
MPLIST_DO (plist, region_list)
{
gdImageCopy (cpy, img, rect->x - x, rect->y - y, rect->x, rect->y,
rect->x + rect->width, rect->y + rect->height);
}
- for (x1 = 0; from < to; x1 += from++->width)
- gdImageRectangle (cpy, x1, 0, x1 + from->width - 2, height - 1, color);
+ for (x1 = 0; from < to; x1 += from++->g.xadv)
+ gdImageRectangle (cpy, x1, 0, x1 + from->g.xadv - 2, height - 1, color);
MPLIST_DO (plist, region_list)
{
MDrawMetric *rect = MPLIST_VAL (plist);
gdImagePtr cpy;
if (g->type == GLYPH_BOX)
- width = g->width;
+ width = g->g.xadv;
cpy = get_scrach_image (img, width, height);
MPLIST_DO (plist, region_list)
{
int x0, x1;
if (g->left_padding)
- x0 = x + box->outer_hmargin, x1 = x + g->width - 1;
+ x0 = x + box->outer_hmargin, x1 = x + g->g.xadv - 1;
else
- x0 = x, x1 = x + g->width - box->outer_hmargin - 1;
+ x0 = x, x1 = x + g->g.xadv - box->outer_hmargin - 1;
/* Draw the top side. */
color = RESOLVE_COLOR (img, colors[COLOR_BOX_TOP]);
gd_font_driver.has_char = mfont__ft_driver.has_char;
gd_font_driver.encode_char = mfont__ft_driver.encode_char;
gd_font_driver.list = mfont__ft_driver.list;
+ gd_font_driver.check_otf = mfont__ft_driver.check_otf;
+ gd_font_driver.drive_otf = mfont__ft_driver.drive_otf;
return 0;
}