Use the general code if the images have read/write functions
authorSoren Sandmann Pedersen <ssp@dhcp83-218.boston.redhat.com>
Tue, 22 May 2007 00:03:37 +0000 (20:03 -0400)
committerSoren Sandmann Pedersen <ssp@dhcp83-218.boston.redhat.com>
Tue, 22 May 2007 00:03:37 +0000 (20:03 -0400)
pixman/pixman-pict.c
pixman/pixman.h

index 37b27c5..694183c 100644 (file)
@@ -1317,7 +1317,10 @@ pixman_image_composite (pixman_op_t      op,
         && !srcTransform && !maskTransform
         && !maskAlphaMap && !srcAlphaMap && !dstAlphaMap
         && (pSrc->common.filter != PIXMAN_FILTER_CONVOLUTION)
-        && (!pMask || pMask->common.filter != PIXMAN_FILTER_CONVOLUTION))
+        && (!pMask || pMask->common.filter != PIXMAN_FILTER_CONVOLUTION)
+       && !pSrc->common.read_func && !pSrc->common.write_func
+       && !(pMask && pMask->common.read_func) && !(pMask && pMask->common.write_func)
+       && !pDst->common.read_func && !pDst->common.write_func)
     switch (op) {
     case PIXMAN_OP_OVER:
        if (pMask)
index ec0ff5b..3110c36 100644 (file)
@@ -472,7 +472,7 @@ void                pixman_image_composite               (pixman_op_t                   op,
                                                      int16_t                       dest_y,
                                                      uint16_t                      width,
                                                      uint16_t                      height,
-    pixman_region16_t *reg);
+                                                     pixman_region16_t            *composite_region);
 void            pixman_image_composite_rect          (pixman_op_t                   op,
                                                      pixman_image_t               *src,
                                                      pixman_image_t               *mask,