Fix pixman rendering support if you set alpha flag AFTER

setting image size for custom image data.
                


SVN revision: 70987
This commit is contained in:
Carsten Haitzler 2012-05-14 06:56:22 +00:00
parent dec07d0754
commit ce4a431e4d
3 changed files with 17 additions and 2 deletions

View File

@ -731,3 +731,9 @@
* Add CServe2 and image cache2 that makes use of it. Several changes
in the buffer and software engines to use the right cache if CServe2
is requested for the application.
2012-05-14 Carsten Haitzler (The Rasterman)
* Fix pixman rendering support if you set alpha flag AFTER
setting image size for custom image data.

View File

@ -777,6 +777,16 @@ evas_common_image_colorspace_dirty(RGBA_Image *im)
{
im->cs.dirty = 1;
evas_common_rgba_image_scalecache_dirty(&im->cache_entry);
#ifdef HAVE_PIXMAN
# ifdef PIXMAN_IMAGE
if (im->pixman.im)
{
pixman_image_unref(im->pixman.im);
im->pixman.im = NULL;
}
_evas_common_rgba_image_post_surface((Image_Entry *)im);
# endif
#endif
}
EAPI void

View File

@ -566,9 +566,8 @@ eng_image_alpha_set(void *data __UNUSED__, void *image, int has_alpha)
return im;
}
im = (RGBA_Image *) evas_cache_image_alone(&im->cache_entry);
evas_common_image_colorspace_dirty(im);
im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
evas_common_image_colorspace_dirty(im);
return im;
}