From 3791395e22730dbb9f2f6234c1e13c8b4ca7759a Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 2 Mar 2005 04:09:15 +0000 Subject: [PATCH] bernhard's font scale patch.. SVN revision: 13556 --- legacy/evas/src/lib/engines/buffer/evas_engine.c | 12 +++++++----- legacy/evas/src/lib/engines/fb/evas_engine.c | 9 +++++---- .../src/lib/engines/software_qtopia/evas_engine.c | 9 +++++---- .../evas/src/lib/engines/software_x11/evas_engine.c | 9 +++++---- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/legacy/evas/src/lib/engines/buffer/evas_engine.c b/legacy/evas/src/lib/engines/buffer/evas_engine.c index e3864d6d3f..12a3c769dc 100644 --- a/legacy/evas/src/lib/engines/buffer/evas_engine.c +++ b/legacy/evas/src/lib/engines/buffer/evas_engine.c @@ -1076,18 +1076,20 @@ evas_engine_buffer_font_draw(void *data, void *context, void *surface, void *fon render_w = (ow * mult) / divv; render_h = (oh * mult) / divv; + newfont = evas_common_font_load( ((RGBA_Font *)font)->src->name, (((RGBA_Font *)font)->size*mult)/divv); + dc->col.col = dc_in->col.col; - im = evas_common_image_create(render_w, render_h); + int inset = evas_common_font_query_inset( font, text); + im = evas_common_image_create(render_w+inset, render_h); if (im) { int max_ascent; int i, j; im->flags |= RGBA_IMAGE_HAS_ALPHA; - j = render_w * render_h; + j = (render_w+inset) * render_h; for (i = 0; i < j; i++) im->image->data[i] = (dc->col.col & 0xffffff); - newfont = evas_common_font_load( ((RGBA_Font *)font)->src->name, (((RGBA_Font *)font)->size*mult)/divv); if (newfont) { max_ascent = evas_common_font_max_ascent_get(newfont); @@ -1095,8 +1097,8 @@ evas_engine_buffer_font_draw(void *data, void *context, void *surface, void *fon evas_common_font_draw(im, dc, newfont, 0, max_ascent, text); evas_common_cpu_end_opt(); evas_common_scale_rgba_in_to_out_clip_smooth(im, surface, context, - 0, 0, render_w, render_h, - x, y - ((max_ascent * h) / render_h), + inset, 0, render_w, render_h, + x + ((inset * w) / render_w), y - ((max_ascent * h) / render_h), w, h); evas_common_font_free(newfont); } diff --git a/legacy/evas/src/lib/engines/fb/evas_engine.c b/legacy/evas/src/lib/engines/fb/evas_engine.c index 14cec5c20b..7eff5bac12 100644 --- a/legacy/evas/src/lib/engines/fb/evas_engine.c +++ b/legacy/evas/src/lib/engines/fb/evas_engine.c @@ -978,14 +978,15 @@ evas_engine_fb_font_draw(void *data, void *context, void *surface, void *font, i RGBA_Image *im; dc->col.col = dc_in->col.col; - im = evas_common_image_create(ow, oh); + int inset = evas_common_font_query_inset( font, text); + im = evas_common_image_create(ow+inset, oh); if (im) { int max_ascent; int i, j; im->flags |= RGBA_IMAGE_HAS_ALPHA; - j = ow * oh; + j = (ow+inset) * oh; for (i = 0; i < j; i++) im->image->data[i] = (dc->col.col & 0xffffff); max_ascent = evas_common_font_max_ascent_get(font); @@ -993,8 +994,8 @@ evas_engine_fb_font_draw(void *data, void *context, void *surface, void *font, i evas_common_font_draw(im, dc, font, 0, max_ascent, text); evas_common_cpu_end_opt(); evas_common_scale_rgba_in_to_out_clip_smooth(im, surface, context, - 0, 0, ow, oh, - x, y - ((max_ascent * h) / oh), + inset, 0, ow, oh, + x + ((inset * w) / ow), y - ((max_ascent * h) / oh), w, h); evas_common_image_free(im); } diff --git a/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c index 7befb98c17..0dddfc07f0 100644 --- a/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c +++ b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c @@ -1001,14 +1001,15 @@ evas_engine_software_qtopia_font_draw(void *data, void *context, void *surface, RGBA_Image *im; dc->col.col = dc_in->col.col; - im = evas_common_image_create(ow, oh); + int inset = evas_common_font_query_inset( font, text); + im = evas_common_image_create(ow+inset, oh); if (im) { int max_ascent; int i, j; im->flags |= RGBA_IMAGE_HAS_ALPHA; - j = ow * oh; + j = (ow+inset) * oh; memset(im->image->data, 0, j * sizeof(DATA32)); max_ascent = evas_common_font_max_ascent_get(font); @@ -1016,8 +1017,8 @@ evas_engine_software_qtopia_font_draw(void *data, void *context, void *surface, evas_common_font_draw(im, dc, font, 0, max_ascent, text); evas_common_cpu_end_opt(); evas_common_scale_rgba_in_to_out_clip_smooth(im, surface, context, - 0, 0, ow, oh, - x, y - ((max_ascent * h) / oh), + inset, 0, ow, oh, + x + ((inset * w) / ow), y - ((max_ascent * h) / oh), w, h); evas_common_image_free(im); } diff --git a/legacy/evas/src/lib/engines/software_x11/evas_engine.c b/legacy/evas/src/lib/engines/software_x11/evas_engine.c index 141990b70c..c9bcf33d63 100644 --- a/legacy/evas/src/lib/engines/software_x11/evas_engine.c +++ b/legacy/evas/src/lib/engines/software_x11/evas_engine.c @@ -1060,14 +1060,15 @@ evas_engine_software_x11_font_draw(void *data, void *context, void *surface, voi RGBA_Image *im; dc->col.col = dc_in->col.col; - im = evas_common_image_create(ow, oh); + int inset = evas_common_font_query_inset( font, text); + im = evas_common_image_create(ow+inset, oh); if (im) { int max_ascent; int i, j; im->flags |= RGBA_IMAGE_HAS_ALPHA; - j = ow * oh; + j = (ow+inset) * oh; memset(im->image->data, 0, j * sizeof(DATA32)); max_ascent = evas_common_font_max_ascent_get(font); @@ -1075,8 +1076,8 @@ evas_engine_software_x11_font_draw(void *data, void *context, void *surface, voi evas_common_font_draw(im, dc, font, 0, max_ascent, text); evas_common_cpu_end_opt(); evas_common_scale_rgba_in_to_out_clip_smooth(im, surface, context, - 0, 0, ow, oh, - x, y - ((max_ascent * h) / oh), + inset, 0, ow, oh, + x + ((inset * w) / ow), y - ((max_ascent * h) / oh), w, h); evas_common_image_free(im); }