From 07e797e2867ef514de8484f160648d73fea71e0f Mon Sep 17 00:00:00 2001 From: dperry Date: Wed, 9 Feb 2011 19:48:11 +0000 Subject: [PATCH] Made changes to set font resolution to 96. Inverted text scaling factor from POINTS_PER_INCH/FONT_DPI, except for yoffset_layout. --- plugin/pango/gvrender_pango.c | 2 +- plugin/pango/gvtextlayout_pango.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugin/pango/gvrender_pango.c b/plugin/pango/gvrender_pango.c index a6ac6592c..bf250f65f 100644 --- a/plugin/pango/gvrender_pango.c +++ b/plugin/pango/gvrender_pango.c @@ -231,7 +231,7 @@ static void cairogen_textpara(GVJ_t * job, pointf p, textpara_t * para) cairo_move_to (cr, p.x, -p.y); cairo_save(cr); - cairo_scale(cr, POINTS_PER_INCH / FONT_DPI, POINTS_PER_INCH / FONT_DPI); + cairo_scale(cr, FONT_DPI / POINTS_PER_INCH, FONT_DPI / POINTS_PER_INCH); pango_cairo_show_layout(cr, (PangoLayout*)(para->layout)); cairo_restore(cr); } diff --git a/plugin/pango/gvtextlayout_pango.c b/plugin/pango/gvtextlayout_pango.c index 14d35de5e..32e22f292 100644 --- a/plugin/pango/gvtextlayout_pango.c +++ b/plugin/pango/gvtextlayout_pango.c @@ -83,7 +83,9 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath) if (!context) { fontmap = pango_cairo_font_map_get_default(); + pango_cairo_font_map_set_resolution(PANGO_CAIRO_FONT_MAP(fontmap),96.); context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP(fontmap)); + pango_cairo_context_set_resolution(context,96.); options=cairo_font_options_create(); cairo_font_options_set_antialias(options,CAIRO_ANTIALIAS_GRAY); cairo_font_options_set_hint_style(options,CAIRO_HINT_STYLE_FULL); @@ -216,13 +218,13 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath) if (logical_rect.width == 0) logical_rect.height = 0; - textlayout_scale = POINTS_PER_INCH / (FONT_DPI * PANGO_SCALE); + textlayout_scale = FONT_DPI / (POINTS_PER_INCH * PANGO_SCALE); para->width = (int)(logical_rect.width * textlayout_scale + 1); /* round up so that width/height are never too small */ para->height = (int)(logical_rect.height * textlayout_scale + 1); /* The y offset from baseline to 0,0 of the bitmap representation */ iter = pango_layout_get_iter (layout); - para->yoffset_layout = pango_layout_iter_get_baseline (iter) * textlayout_scale; + para->yoffset_layout = pango_layout_iter_get_baseline (iter) * POINTS_PER_INCH/(FONT_DPI * PANGO_SCALE); /* The distance below midline for y centering of text strings */ para->yoffset_centerline = 0.10 * para->fontsize; -- 2.40.0