summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2005-08-23 13:34:14 +0000
committerOwen Taylor <otaylor@redhat.com>2005-08-23 13:34:14 +0000
commitf229b1abfb01d3c42cba1dec36a271fe75c503a9 (patch)
treef17f901141811ba03dcc3a251be3364d54e22834 /src
parentc11f0376d4c4aec3ff1c849f333aad2ce56f06bd (diff)
when creating the temporary mask, do glyph ADD mask, not (glyph IN source) ADD mask. Set the mask as having component alpha when it's 4-channel.
test/text-antialias-subpixel.c test/Makefile.am: No longer XFAIL. test/text-antialias-gray.c test/text-antialias-subpixel.c Don't turn off metrics hinting, it doesn't make sense. Update.
Diffstat (limited to 'src')
-rw-r--r--src/cairo-ft-font.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
index 8db223ed..45322e7e 100644
--- a/src/cairo-ft-font.c
+++ b/src/cairo-ft-font.c
@@ -2024,11 +2024,10 @@ _cairo_ft_scaled_font_show_glyphs (void *abstract_font,
_cairo_pattern_init_for_surface (&glyph_pattern, &(entries[i]->image->base));
- status = _cairo_surface_composite (CAIRO_OPERATOR_ADD, pattern,
- &glyph_pattern.base,
+ status = _cairo_surface_composite (CAIRO_OPERATOR_ADD, &glyph_pattern.base,
+ NULL,
mask,
- x + entries[i]->size.x,
- y + entries[i]->size.y,
+ 0, 0,
0, 0,
x + entries[i]->size.x - dest_x,
y + entries[i]->size.y - dest_y,
@@ -2041,6 +2040,9 @@ _cairo_ft_scaled_font_show_glyphs (void *abstract_font,
goto CLEANUP_MASK;
}
+ if (mask_format == CAIRO_FORMAT_ARGB32)
+ pixman_image_set_component_alpha (((cairo_image_surface_t *)mask)->pixman_image, TRUE);
+
_cairo_pattern_init_for_surface (&mask_pattern, mask);
status = _cairo_surface_composite (operator, pattern, &mask_pattern.base,