bernhard's font scale patch..

SVN revision: 13556
This commit is contained in:
Carsten Haitzler 2005-03-02 04:09:15 +00:00
parent 05f90c5d9e
commit 3791395e22
4 changed files with 22 additions and 17 deletions

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}