--- src/cairo-ft-font.c 2 Sep 2005 03:38:07 -0000 1.113 +++ src/cairo-ft-font.c 14 Oct 2005 12:47:03 -0000 @@ -1233,6 +1233,9 @@ static cairo_ft_options_t _get_pattern_ft_options (FcPattern *pattern) { FcBool antialias, vertical_layout, hinting, autohint; + FcBool transform; + FcMatrix *font_matrix; + cairo_ft_options_t ft_options; int rgba; #ifdef FC_HINT_STYLE @@ -1243,14 +1246,21 @@ _get_pattern_ft_options (FcPattern *patt ft_options.load_flags = 0; ft_options.extra_flags = 0; + if (FcPatternGetMatrix (pattern, + FC_MATRIX, 0, &font_matrix) != FcResultMatch) + font_matrix = NULL; + + transform = (font_matrix && (font_matrix->xx != 1 || font_matrix->xy != 0 || + font_matrix->yx != 0 || font_matrix->yy != 1)); + /* disable antialiasing if requested */ if (FcPatternGetBool (pattern, FC_ANTIALIAS, 0, &antialias) != FcResultMatch) antialias = FcTrue; - if (antialias) + if (antialias || transform) ft_options.load_flags |= FT_LOAD_NO_BITMAP; - else + else if (!antialias) ft_options.load_flags |= FT_LOAD_MONOCHROME; /* disable hinting if requested */