[cairo] [patch] pixman rectangular clipping fix

graydon hoare graydon at redhat.com
Fri Sep 17 11:44:07 PDT 2004


I noticed today in cairo_gstate.c that the rectangular clipping
fast path has been disabled. since this fast path is very important
when rendering GUIs with cairo I investigated the source of the
bug; it is actually localized to the image backend, and can be
corrected with the following patch.

is it OK to commit this? I must admit the multiple layers of
clipping in pixman are quite confusing, so I am not *certain* this
is correct; it does seem to follow the intention of the function
however (compute the correct compositing clipping region).

also, if this is OK, may I re-enable the cairo fast path?


--- icimage.c	2004-05-10 16:41:40.000000000 -0400
+++ icimage.c	2004-09-17 14:40:06.945495992 -0400
@@ -603,6 +603,12 @@
  	pixman_region_destroy (region);
  	return 0;
+    if (iDst->clientClipType != CT_NONE && iDst->clientClip != NULL)
+    {
+	pixman_region_intersect (region, iDst->clientClip, region);
+    }
      if (iDst->alphaMap)
  	if (!IcClipImageReg (region, iDst->alphaMap->pCompositeClip,

More information about the cairo mailing list