Enlightenment CVS committal

Author  : atmosphere
Project : e17
Module  : libs/esmart

Dir     : e17/libs/esmart/src/lib/esmart_thumb


Modified Files:
        esmart_thumb.c 


Log Message:
try evas's native image loaders before falling back to imlib2, should be quicker for 
jpeg and png, entice feels quicker atleast
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/esmart/src/lib/esmart_thumb/esmart_thumb.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -3 -r1.1.1.1 -r1.2
--- esmart_thumb.c      5 May 2004 05:57:01 -0000       1.1.1.1
+++ esmart_thumb.c      10 Jul 2004 21:42:04 -0000      1.2
@@ -137,24 +137,41 @@
       if ((e = (Esmart_Thumb *) evas_object_smart_data_get (o)))
        {
          Imlib_Image tmp = NULL;
+         int iw = 0, ih = 0;
 
-         tmp = imlib_load_image_immediately_without_cache (e->e->src);
-         if (tmp)
-           {
-             if (!e->info)
-               e->info = epsilon_info_get (e->e);
-             imlib_context_set_image (tmp);
+         if (!e->info)
+           e->info = epsilon_info_get (e->e);
+         result = evas_object_image_add (evas_object_evas_get (o));
+
+         evas_object_image_file_set (result, e->e->src, NULL);
 
-             result = evas_object_image_add (evas_object_evas_get (o));
+         switch (evas_object_image_load_error_get (result))
+           {
+           case EVAS_LOAD_ERROR_NONE:
+             evas_object_image_size_get (result, &iw, &ih);
              if (e->info->w == 0)
-               e->info->w = imlib_image_get_width ();
+               e->info->w = iw;
              if (e->info->h == 0)
-               e->info->h = imlib_image_get_height ();
-             evas_object_image_size_set (result, e->info->w, e->info->h);
-             evas_object_image_alpha_set (result, imlib_image_has_alpha ());
-             evas_object_image_data_copy_set (result,
-                                              imlib_image_get_data ());
-             imlib_free_image_and_decache ();
+               e->info->h = ih;
+             break;
+           default:
+             tmp = imlib_load_image_immediately_without_cache (e->e->src);
+             if (tmp)
+               {
+                 imlib_context_set_image (tmp);
+
+                 if (e->info->w == 0)
+                   e->info->w = imlib_image_get_width ();
+                 if (e->info->h == 0)
+                   e->info->h = imlib_image_get_height ();
+                 evas_object_image_alpha_set (result,
+                                              imlib_image_has_alpha ());
+                 evas_object_image_size_set (result, e->info->w, e->info->h);
+                 evas_object_image_data_copy_set (result,
+                                                  imlib_image_get_data ());
+                 imlib_free_image_and_decache ();
+               }
+             break;
            }
        }
     }




-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to