From ebbe8f12679eb120d6852f534b1f086534537049 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 16 Nov 2005 13:17:27 +0000 Subject: [PATCH] ok - freetype does WEIRD shit setting grays to bizarre values so now i have toformat AND grays levels. SVN revision: 18500 --- legacy/evas/src/lib/engines/common/evas_font_draw.c | 7 ++++--- legacy/evas/src/lib/engines/xrender_x11/evas_engine_font.c | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/legacy/evas/src/lib/engines/common/evas_font_draw.c b/legacy/evas/src/lib/engines/common/evas_font_draw.c index 10a7bcfff1..fc053ef114 100644 --- a/legacy/evas/src/lib/engines/common/evas_font_draw.c +++ b/legacy/evas/src/lib/engines/common/evas_font_draw.c @@ -16,7 +16,7 @@ evas_common_font_int_cache_glyph_get(RGBA_Font_Int *fi, FT_UInt index) fg = evas_hash_find(fi->glyphs, key); if (fg) return fg; - + // error = FT_Load_Glyph(fi->src->ft.face, index, FT_LOAD_NO_BITMAP); error = FT_Load_Glyph(fi->src->ft.face, index, FT_LOAD_RENDER); @@ -187,7 +187,8 @@ evas_common_font_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int } else { - if (fg->glyph_out->bitmap.num_grays == 256) + if ((fg->glyph_out->bitmap.num_grays == 256) && + (fg->glyph_out->bitmap.pixel_mode == ft_pixel_mode_grays)) { for (i = 0; i < h; i++) { @@ -220,7 +221,7 @@ evas_common_font_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int } } } - else if (fg->glyph_out->bitmap.num_grays == 0) + else { DATA8 *tmpbuf = NULL, *dp, *tp, bits; int bi, bj; diff --git a/legacy/evas/src/lib/engines/xrender_x11/evas_engine_font.c b/legacy/evas/src/lib/engines/xrender_x11/evas_engine_font.c index a0fca18895..6491e0c8ba 100644 --- a/legacy/evas/src/lib/engines/xrender_x11/evas_engine_font.c +++ b/legacy/evas/src/lib/engines/xrender_x11/evas_engine_font.c @@ -61,7 +61,8 @@ _xre_font_surface_new(Ximage_Info *xinf, RGBA_Font_Glyph *fg) fs->pic = XRenderCreatePicture(xinf->disp, fs->draw, xinf->fmt8, CPRepeat | CPDither | CPComponentAlpha, &att); xim = _xr_image_new(fs->xinf, w, h, xinf->fmt8->depth); - if (fg->glyph_out->bitmap.num_grays == 256) + if ((fg->glyph_out->bitmap.num_grays == 256) && + (fg->glyph_out->bitmap.pixel_mode == ft_pixel_mode_grays)) { int x, y; DATA8 *p1, *p2; @@ -79,7 +80,7 @@ _xre_font_surface_new(Ximage_Info *xinf, RGBA_Font_Glyph *fg) } } - else if (fg->glyph_out->bitmap.num_grays == 0) + else { DATA8 *tmpbuf = NULL, *dp, *tp, bits; int bi, bj, end;