Set image->pCompositeClip here. (IcComputeCompositeRegion) src/icrect.c (pixman_color_rects): Remove workaround clipping to the clientClip.

This commit is contained in:
Owen Taylor 2005-04-28 11:16:52 +00:00
parent 2a6e7ef7c3
commit 2dd5f40bc0
3 changed files with 23 additions and 9 deletions

View file

@ -1,3 +1,10 @@
2005-04-27 Owen Taylor <otaylor@redhat.com>
* src/icimage.c (pixman_image_set_clip_region): Set
image->pCompositeClip here.
(IcComputeCompositeRegion) src/icrect.c (pixman_color_rects):
Remove workaround clipping to the clientClip.
2005-04-27 Owen Taylor <otaylor@redhat.com>
* src/ic.c: Don't use pixman_compositeSrc_8888x8888 when

View file

@ -283,6 +283,22 @@ pixman_image_set_clip_region (pixman_image_t *image,
pixman_region_copy (image->clientClip, region);
image->clientClipType = CT_REGION;
}
image->pCompositeClip = pixman_region_create();
pixman_region_union_rect (image->pCompositeClip, image->pCompositeClip,
0, 0, image->pixels->width, image->pixels->height);
if (region) {
pixman_region_translate (image->pCompositeClip,
- image->clipOrigin.x,
- image->clipOrigin.y);
pixman_region_intersect (image->pCompositeClip,
image->pCompositeClip,
region);
pixman_region_translate (image->pCompositeClip,
image->clipOrigin.x,
image->clipOrigin.y);
}
image->stateChanges |= CPClipMask;
return 0;
}
@ -629,13 +645,6 @@ IcComputeCompositeRegion (pixman_region16_t *region,
return 0;
}
}
if (iDst->clientClipType != CT_NONE) {
if (!IcClipImageReg (region, iDst->clientClip, 0, 0))
{
pixman_region_destroy (region);
return 0;
}
}
return 1;
}

View file

@ -146,8 +146,6 @@ pixman_color_rects (pixman_image_t *dst,
clipPict->alphaOrigin.x,
clipPict->alphaOrigin.y);
}
if (clipPict->clientClipType != CT_NONE)
pixman_region_intersect (clip, clip, clipPict->clientClip);
if (xoff || yoff)
{