mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-02-14 15:40:39 +01:00
Set image->pCompositeClip here. (IcComputeCompositeRegion) src/icrect.c (pixman_color_rects): Remove workaround clipping to the clientClip.
This commit is contained in:
parent
2a6e7ef7c3
commit
2dd5f40bc0
3 changed files with 23 additions and 9 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue