hermet pushed a commit to branch master.

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

commit e3a2d0be45480f9f43923950e586ff4cd75d1d0a
Author: Derek Foreman <derek.foreman.sams...@gmail.com>
Date:   Fri Oct 26 20:14:17 2018 +0900

    evas_object: Refactor pixels get hack
    
    Summary:
    Refactor this so it can be used by another call site in a later commit.
    
    Also, reduce its complexity, as we only need the callback to fire, we
    don't care about any of the other machinery in _evas_image_pixels_get.
    
    Depends on D7188
    
    Reviewers: Hermet
    
    Reviewed By: Hermet
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D7189
---
 src/lib/evas/canvas/evas_object_image.c | 13 +++++++++----
 src/lib/evas/include/evas_private.h     |  2 ++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index 667b8cb354..b9fb345ed9 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1427,6 +1427,14 @@ 
evas_draw_image_map_async_check(Evas_Object_Protected_Data *obj,
      }
 }
 
+void
+evas_object_pixels_get_force(Evas_Object *eo_obj, Evas_Object_Protected_Data 
*obj)
+{
+   Evas_Image_Data *o = obj->private_data;
+
+   o->pixels->func.get_pixels(o->pixels->func.get_pixels_data, eo_obj);
+}
+
 static void *
 evas_process_dirty_pixels(Evas_Object *eo_obj, Evas_Object_Protected_Data 
*obj, Evas_Image_Data *o,
                           void *engine, void *output, void *surface, void 
*pixels)
@@ -1775,14 +1783,11 @@ evas_object_image_render(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj, v
 
    if (o->plane)
      {
-        int imagew, imageh, uvw, uvh;
-
         /* We must call pixels get because enlightenment uses it for internal
          * bookkeeping and won't send frame callbacks to wayland clients if we
          * don't
          */
-        _evas_image_pixels_get(eo_obj, obj, engine, output, context, surface, 
x, y,
-                               &imagew, &imageh, &uvw, &uvh, EINA_FALSE, 
EINA_FALSE);
+        evas_object_pixels_get_force(eo_obj, obj);
 #if 0
         Evas_Native_Surface *ns;
 
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 38f6e89f9b..cc927afef0 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1877,6 +1877,8 @@ Eina_List 
*_evas_pointer_list_in_rect_get(Evas_Public_Data *edata,
 
 void efl_canvas_output_info_get(Evas_Public_Data *e, Efl_Canvas_Output 
*output);
 
+void evas_object_pixels_get_force(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj);
+
 // Gesture Manager
 void _efl_canvas_gesture_manager_filter_event(Eo *gesture_manager, Eo *target, 
void *event);
 void _efl_canvas_gesture_manager_callback_del_hook(Eo *gesture_manager, Eo 
*target, const Efl_Event_Description *type);

-- 


Reply via email to