1Index: cairo/src/cairo-win32-surface.c 2=================================================================== 3--- cairo/src/cairo-win32-surface.c (revision 14498) 4+++ cairo/src/cairo-win32-surface.c (working copy) 5@@ -824,8 +824,13 @@ 6 * to figure out when we can use GDI. We don't have that checking 7 * anywhere at the moment, so just bail and use the fallback 8 * paths. */ 9- if (surface->format != CAIRO_FORMAT_RGB24) 10- return CAIRO_INT_STATUS_UNSUPPORTED; 11+ //if (surface->format != CAIRO_FORMAT_RGB24) 12+ // return CAIRO_INT_STATUS_UNSUPPORTED; 13+ // FIXME: We'll go ahead and optimize this now and just assume we're ok if 14+ // the color has no alpha. Probably need to check various composite operators to 15+ // get this exactly right. 16+ if (color->alpha != 1.0) 17+ return CAIRO_INT_STATUS_UNSUPPORTED; 18 19 /* Optimize for no destination alpha (surface->pixman_image is non-NULL for all 20 * surfaces with alpha.) 21@@ -1016,8 +1021,9 @@ 22 23 /* We can only handle operator SOURCE or OVER with the destination 24 * having no alpha */ 25- if ((op != CAIRO_OPERATOR_SOURCE && op != CAIRO_OPERATOR_OVER) || 26- (dst->format != CAIRO_FORMAT_RGB24)) 27+ if ((op != CAIRO_OPERATOR_SOURCE && op != CAIRO_OPERATOR_OVER)) 28+ // FIXME: It's not clear why ExtTextOut can't be called when the 29+ // destination has alpha. Remove the RGB24 restriction. || (dst->format != CAIRO_FORMAT_RGB24)) 30 return CAIRO_INT_STATUS_UNSUPPORTED; 31 32 /* If we have a fallback mask clip set on the dst, we have 33