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
This commit is contained in:
Derek Foreman 2018-10-26 20:14:17 +09:00 committed by Hermet Park
parent bec631aa2c
commit e3a2d0be45
2 changed files with 11 additions and 4 deletions

View File

@ -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;

View File

@ -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);