From: Enlightenment S. <no-...@en...> - 2009-03-27 13:47:05
|
Log: cover not good speedup case. Author: raster Date: 2009-03-27 06:46:53 -0700 (Fri, 27 Mar 2009) New Revision: 39760 Modified: trunk/evas/src/lib/engines/common/evas_image_scalecache.c Modified: trunk/evas/src/lib/engines/common/evas_image_scalecache.c =================================================================== --- trunk/evas/src/lib/engines/common/evas_image_scalecache.c 2009-03-27 12:05:40 UTC (rev 39759) +++ trunk/evas/src/lib/engines/common/evas_image_scalecache.c 2009-03-27 13:46:53 UTC (rev 39760) @@ -271,12 +271,21 @@ use_counter++; if ((src_region_w == dst_region_w) && (src_region_h == dst_region_h)) { + // 1:1 scale. im->cache.orig_usage++; im->cache.usage_count = use_counter; - // 1:1 scale. LKU(im->cache.lock); return; } + if ((!im->cache_entry.flags.alpha) && (!smooth)) + { + // solid nearest scaling - it's actually the same speed cached or not, + // or in some cases faster not cached + im->cache.orig_usage++; + im->cache.usage_count = use_counter; + LKU(im->cache.lock); + return; + } sci = _sci_find(im, dc, smooth, src_region_x, src_region_y, src_region_w, src_region_h, dst_region_w, dst_region_h); @@ -385,7 +394,7 @@ { // printf("##! populate!\n"); sci->im = evas_common_image_new - (dst_region_w, dst_region_h, im->flags & RGBA_IMAGE_ALPHA_ONLY); + (dst_region_w, dst_region_h, im->cache_entry.flags.alpha); if (sci->im) { static RGBA_Draw_Context *ct = NULL; |