--- src/xftfreetype.c +++ src/xftfreetype.c @@ -387,6 +387,7 @@ FcChar32 hash, *hashp; FT_Face face; int nhash; + FcBool bitmap; if (!info) return FcFalse; @@ -509,8 +510,22 @@ */ fi->load_flags = FT_LOAD_DEFAULT; +#ifndef XFT_EMBEDDED_BITMAP +#define XFT_EMBEDDED_BITMAP "embeddedbitmap" +#endif + + switch (FcPatternGetBool (pattern, XFT_EMBEDDED_BITMAP, 0, &bitmap)) { + case FcResultNoMatch: + bitmap = FcFalse; + break; + case FcResultMatch: + break; + default: + goto bail1; + } + /* disable bitmaps when anti-aliasing or transforming glyphs */ - if (fi->antialias || fi->transform) + if ((!bitmap && fi->antialias) || fi->transform) fi->load_flags |= FT_LOAD_NO_BITMAP;