diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2011-02-15 04:55:02 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2011-02-18 06:21:37 -0500 |
commit | 7feb710e60cdab5c448a396537a8de16e72091e2 (patch) | |
tree | 1282e670289829897c4a43e11ffb00633de8dc4f | |
parent | 3598ec26ecf761488e2ac1536553eaf3bb361e72 (diff) |
Avoid marking images dirty when properties are reset
When an image property is set to the same value that it already is,
there is no reason to mark the image dirty and incur a recomputation
of the flags.
-rw-r--r-- | pixman/pixman-image.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c index e91d87ca..55fc17ac 100644 --- a/pixman/pixman-image.c +++ b/pixman/pixman-image.c @@ -511,6 +511,12 @@ pixman_image_set_transform (pixman_image_t * image, goto out; } + if (common->transform && + memcmp (common->transform, transform, sizeof (pixman_transform_t) == 0)) + { + return TRUE; + } + if (common->transform == NULL) common->transform = malloc (sizeof (pixman_transform_t)); @@ -535,6 +541,9 @@ PIXMAN_EXPORT void pixman_image_set_repeat (pixman_image_t *image, pixman_repeat_t repeat) { + if (image->common.repeat == repeat) + return; + image->common.repeat = repeat; image_property_changed (image); @@ -579,6 +588,9 @@ PIXMAN_EXPORT void pixman_image_set_source_clipping (pixman_image_t *image, pixman_bool_t clip_sources) { + if (image->common.clip_sources == clip_sources) + return; + image->common.clip_sources = clip_sources; image_property_changed (image); @@ -594,6 +606,9 @@ pixman_image_set_indexed (pixman_image_t * image, { bits_image_t *bits = (bits_image_t *)image; + if (bits->indexed == indexed) + return; + bits->indexed = indexed; image_property_changed (image); @@ -656,6 +671,9 @@ PIXMAN_EXPORT void pixman_image_set_component_alpha (pixman_image_t *image, pixman_bool_t component_alpha) { + if (image->common.component_alpha == component_alpha) + return; + image->common.component_alpha = component_alpha; image_property_changed (image); |