From: handa Date: Mon, 29 Oct 2007 02:21:38 +0000 (+0000) Subject: Adusted for the change of MGlyph. X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=60a38dffb8e78f885c7c6e938b6e0b91c143fc29;p=m17n%2Fm17n-lib.git Adusted for the change of MGlyph. --- diff --git a/src/m17n-gd.c b/src/m17n-gd.c index 0604178..fedf1c6 100644 --- a/src/m17n-gd.c +++ b/src/m17n-gd.c @@ -328,14 +328,14 @@ gd_render (MDrawWindow win, int x, int y, #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; @@ -348,7 +348,7 @@ gd_render (MDrawWindow win, int x, int y, 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) { @@ -382,7 +382,7 @@ gd_render (MDrawWindow win, int x, int y, 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); @@ -514,15 +514,15 @@ gd_draw_empty_boxes (MDrawWindow win, int x, int y, 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) { @@ -530,8 +530,8 @@ gd_draw_empty_boxes (MDrawWindow win, int x, int y, 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); @@ -605,7 +605,7 @@ gd_draw_box (MFrame *frame, MDrawWindow win, MGlyphString *gstring, 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) { @@ -628,9 +628,9 @@ gd_draw_box (MFrame *frame, MDrawWindow win, MGlyphString *gstring, 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]); @@ -815,6 +815,8 @@ device_init () 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; }