zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=dc14257c96c4debae9c5614e9618a4764b45dc80

commit dc14257c96c4debae9c5614e9618a4764b45dc80
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Feb 14 08:33:32 2020 -0500

    Revert "evas: remove image_load from the engine."
    
    Summary:
    This reverts commit 867d826395f988b9a9cbc3b5f93bf57ce031885d.
    Depends on D11337
    
    Reviewers: raster
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D11338
---
 src/lib/evas/include/evas_private.h                |  1 +
 src/modules/evas/engines/gl_generic/evas_engine.c  | 11 +++++++++
 .../evas/engines/software_generic/evas_engine.c    | 28 ++++++++++++++++++++++
 3 files changed, 40 insertions(+)

diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index e7de463987..01bac6f607 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1349,6 +1349,7 @@ struct _Evas_Func
    void *(*polygon_points_clear)           (void *engine, void *polygon);
    void (*polygon_draw)                    (void *engine, void *data, void 
*context, void *surface, void *polygon, int x, int y, Eina_Bool do_async);
 
+   void *(*image_load)                     (void *engine, const char *file, 
const char *key, int *error, Evas_Image_Load_Opts *lo);
    void *(*image_mmap)                     (void *engine, Eina_File *f, const 
char *key, int *error, Evas_Image_Load_Opts *lo);
    void *(*image_new_from_data)            (void *engine, int w, int h, DATA32 
*image_data, int alpha, Evas_Colorspace cspace);
    void *(*image_new_from_copied_data)     (void *engine, int w, int h, DATA32 
*image_data, int alpha, Evas_Colorspace cspace);
diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c 
b/src/modules/evas/engines/gl_generic/evas_engine.c
index 4ae962a48c..3f4c36c73b 100644
--- a/src/modules/evas/engines/gl_generic/evas_engine.c
+++ b/src/modules/evas/engines/gl_generic/evas_engine.c
@@ -613,6 +613,16 @@ eng_image_native_get(void *engine EINA_UNUSED, void *image)
    return n;
 }
 
+static void *
+eng_image_load(void *engine, const char *file, const char *key, int *error, 
Evas_Image_Load_Opts *lo)
+{
+   Evas_Engine_GL_Context *gl_context;
+
+   *error = EVAS_LOAD_ERROR_NONE;
+   gl_context = gl_generic_context_find(engine, 1);
+   return evas_gl_common_image_load(gl_context, file, key, lo, error);
+}
+
 static void *
 eng_image_mmap(void *engine, Eina_File *f, const char *key, int *error, 
Evas_Image_Load_Opts *lo)
 {
@@ -3204,6 +3214,7 @@ module_open(Evas_Module *em)
    ORD(polygon_points_clear);
    ORD(polygon_draw);
 
+   ORD(image_load);
    ORD(image_mmap);
    ORD(image_new_from_data);
    ORD(image_new_from_copied_data);
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c 
b/src/modules/evas/engines/software_generic/evas_engine.c
index 4d145ad69e..d2f0381732 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -1204,6 +1204,33 @@ eng_image_native_get(void *data EINA_UNUSED, void *image)
    return n;
 }
 
+static void *
+eng_image_load(void *data EINA_UNUSED, const char *file, const char *key, int 
*error, Evas_Image_Load_Opts *lo)
+{
+   *error = EVAS_LOAD_ERROR_NONE;
+#ifdef EVAS_CSERVE2
+   if (evas_cserve2_use_get())
+     {
+        Image_Entry *ie;
+        ie = evas_cache2_image_open(evas_common_image_cache2_get(),
+                                    file, key, lo, error);
+        if (ie)
+          {
+             *error = evas_cache2_image_open_wait(ie);
+             if ((*error != EVAS_LOAD_ERROR_NONE) && ie->animated.animated)
+               {
+                  evas_cache2_image_close(ie);
+                  goto use_local_cache;
+               }
+          }
+        return ie;
+     }
+use_local_cache:
+#endif
+
+   return evas_common_load_image_from_file(file, key, lo, error);
+}
+
 static void *
 eng_image_mmap(void *data EINA_UNUSED, Eina_File *f, const char *key, int 
*error, Evas_Image_Load_Opts *lo)
 {
@@ -4637,6 +4664,7 @@ static Evas_Func func =
      eng_polygon_points_clear,
      eng_polygon_draw,
      /* image draw funcs */
+     eng_image_load,
      eng_image_mmap,
      eng_image_new_from_data,
      eng_image_new_from_copied_data,

-- 


Reply via email to