diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2013-09-27 14:46:48 +0900 |
---|---|---|
committer | Cedric Bail <cedric.bail@free.fr> | 2013-10-17 20:48:26 +0900 |
commit | 7d99125ba1a81312d12b03e7f2d69521cc51cbe0 (patch) | |
tree | 3d374e3d6c186170838412d84b84124b3aaed701 | |
parent | dab3853a66c8f21f1f66fba6780e1f7aab37cefa (diff) | |
download | efl-7d99125ba1a81312d12b03e7f2d69521cc51cbe0.tar.gz |
evas/cserve2: Fix animated Gifs support with cs2
cserve2 does not support animated Gifs, as the animated icon
logic doesn't match cserve2 logic.
Also, there is probably no need to cache these into shared
buffers anyways :)
Solution: fallback to normal cache (and delete current entry in
the client)
-rw-r--r-- | src/lib/evas/cache2/evas_cache2.c | 2 | ||||
-rw-r--r-- | src/lib/evas/common/evas_image_load.c | 35 | ||||
-rw-r--r-- | src/lib/evas/common/evas_image_scalecache.c | 2 |
3 files changed, 7 insertions, 32 deletions
diff --git a/src/lib/evas/cache2/evas_cache2.c b/src/lib/evas/cache2/evas_cache2.c index cf8aa73e37..991be7e5d2 100644 --- a/src/lib/evas/cache2/evas_cache2.c +++ b/src/lib/evas/cache2/evas_cache2.c @@ -974,7 +974,7 @@ evas_cache2_image_close(Image_Entry *im) if (references > 0) return; - if (im->flags.dirty) + if (im->flags.dirty || im->animated.animated) { _evas_cache2_image_entry_delete(cache, im); return; diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c index c945442be5..174f1b0e48 100644 --- a/src/lib/evas/common/evas_image_load.c +++ b/src/lib/evas/common/evas_image_load.c @@ -243,18 +243,10 @@ evas_common_load_rgba_image_module_from_file(Image_Entry *ie) struct evas_image_foreach_loader_data fdata; #ifdef EVAS_CSERVE2 - if (evas_cserve2_use_get()) - { - ERR("This function shouldn't be called anymore!"); - // DBG("try cserve2 '%s' '%s'", ie->file, ie->key ? ie->key : ""); - // if (evas_cserve2_image_load(ie, ie->file, ie->key, &(ie->load_opts))) - // { - // DBG("try cserve2 '%s' '%s' loaded!", - // ie->file, ie->key ? ie->key : ""); - // return EVAS_LOAD_ERROR_NONE; - // } - } + if (evas_cserve2_use_get() && evas_cache2_image_cached(ie)) + CRIT("This function shouldn't be called anymore!"); #endif + if (ie->f) { len = strlen(eina_file_filename_get(ie->f)); @@ -368,25 +360,8 @@ evas_common_load_rgba_image_data_from_file(Image_Entry *ie) if ((ie->flags.loaded) && (!ie->animated.animated)) return EVAS_LOAD_ERROR_GENERIC; #ifdef EVAS_CSERVE2 - if (ie->data1) - { - ERR("This function shouldn't be called anymore!"); - // DBG("try cserve2 image data '%s' '%s'", - // ie->file, ie->key ? ie->key : ""); - // if (evas_cserve2_image_data_load(ie)) - // { - // RGBA_Image *im = (RGBA_Image *)ie; - // im->image.data = evas_cserve2_image_data_get(ie); - // DBG("try cserve2 image data '%s' '%s' loaded!", - // ie->file, ie->key ? ie->key : ""); - // if (im->image.data) - // { - // im->image.no_free = 1; - // return EVAS_LOAD_ERROR_NONE; - // } - // } - // return EVAS_LOAD_ERROR_GENERIC; - } + if (evas_cserve2_use_get() && evas_cache2_image_cached(ie)) + CRIT("This function shouldn't be called anymore!"); #endif if (!ie->info.module) return EVAS_LOAD_ERROR_GENERIC; diff --git a/src/lib/evas/common/evas_image_scalecache.c b/src/lib/evas/common/evas_image_scalecache.c index d272d64d51..489aaf24e3 100644 --- a/src/lib/evas/common/evas_image_scalecache.c +++ b/src/lib/evas/common/evas_image_scalecache.c @@ -663,7 +663,7 @@ evas_common_rgba_image_scalecache_do_cbs(Image_Entry *ie, RGBA_Image *dst, if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) { #ifdef EVAS_CSERVE2 - if (evas_cserve2_use_get()) + if (evas_cserve2_use_get() && evas_cache2_image_cached(&im->cache_entry)) evas_cache2_image_load_data(&im->cache_entry); else #endif |