From c0da725a204c6b24238105edeedb2192b9e5d6af Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 11 Nov 2020 13:27:04 +0900 Subject: [PATCH] e_comp_object: use e_client_cdata_get Change-Id: I5192f2fbf8b17a955e94a8f664097d8e21dbe9e6 --- src/bin/e_comp_object.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index a943cc1c58..453db91bf3 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -646,23 +646,26 @@ static void _e_comp_object_map_transform_pos(E_Client *ec, int sx, int sy, int *dx, int *dy) { E_Comp_Wl_Buffer_Viewport *vp; + E_Comp_Wl_Client_Data *cdata; int transform; int bw, bh, tx, ty; - if (!ec || !ec->comp_data || e_object_is_del(E_OBJECT(ec))) + cdata = e_client_cdata_get(ec); + + if (!ec || !cdata || e_object_is_del(E_OBJECT(ec))) { *dx = sx; *dy = sy; return; } - vp = &ec->comp_data->scaler.buffer_viewport; + vp = &cdata->scaler.buffer_viewport; transform = e_comp_wl_output_buffer_transform_get(ec); e_pixmap_size_get(ec->pixmap, &bw, &bh); /* for subsurface, it should be swap 90 and 270 */ - if (ec->comp_data->sub.data) + if (cdata->sub.data) switch (transform) { case WL_OUTPUT_TRANSFORM_90: transform = WL_OUTPUT_TRANSFORM_270; break; @@ -1747,6 +1750,7 @@ static void _e_comp_intercept_layer_set(void *data, Evas_Object *obj, int layer) { E_Comp_Object *cw = data; + E_Comp_Wl_Client_Data *cdata, *child_cdata; unsigned int l = e_comp_canvas_layer_map(layer); int oldraise; @@ -1767,14 +1771,15 @@ _e_comp_intercept_layer_set(void *data, Evas_Object *obj, int layer) e_comp_render_queue(); } ec = e_client_above_get(cw->ec); + cdata = e_client_cdata_get(ec); /* skip subsurface: stacking subsurface is handled by e_comp_wl */ - while ((ec) && (ec->comp_data) && (ec->comp_data->sub.data)) + while ((ec) && (cdata) && (cdata->sub.data)) ec = e_client_above_get(ec); if (ec && (evas_object_layer_get(ec->frame) != evas_object_layer_get(obj))) { ec = e_client_below_get(cw->ec); /* skip subsurface: stacking subsurface is handled by e_comp_wl */ - while ((ec) && (ec->comp_data) && (ec->comp_data->sub.data)) + while ((ec) && (cdata) && (cdata->sub.data)) ec = e_client_below_get(ec); if (ec && (evas_object_layer_get(ec->frame) == evas_object_layer_get(cw->smart_obj))) { @@ -1823,7 +1828,8 @@ layer_set: e_config->transient.raise = 1; EINA_LIST_FREE(list, child) { - if (child->comp_data && !child->comp_data->mapped) + child_cdata = e_client_cdata_get(child); + if (child_cdata && !child_cdata->mapped) { ELOGF("COMP", "LAYER_SET CHILD. BUT not mapped. skip. child(ec:%p, win:0x%08zx)", cw->ec, child, e_client_util_win_get(child)); continue; @@ -6072,22 +6078,26 @@ e_comp_object_map_update(Evas_Object *obj) { API_ENTRY; E_Client *ec = cw->ec; + E_Comp_Wl_Client_Data *cdata; Evas_Map *map; int x1, y1, x2, y2, x, y, bw, bh, tw, th; char buffer[128]; char *p = buffer; int l, remain = sizeof buffer; - if (!ec || !ec->comp_data || e_object_is_del(E_OBJECT(ec))) return; + if (!ec) return; + if (e_object_is_del(E_OBJECT(ec))) return; + cdata = e_client_cdata_get(ec); + if (!cdata) return; /* if buffer had been flushed, buffer could be NULL. Then map will be applied * when new buffer is attached. */ - if (!ec->comp_data->buffer_ref.buffer) return; + if (!cdata->buffer_ref.buffer) return; if ((!cw->redirected) || (!e_comp_wl_output_buffer_transform_get(ec) && - ec->comp_data->scaler.buffer_viewport.buffer.scale == 1)) + cdata->scaler.buffer_viewport.buffer.scale == 1)) { if (evas_object_map_enable_get(cw->effect_obj)) { @@ -6191,9 +6201,8 @@ e_comp_object_image_filter_set(Evas_Object *obj, E_Comp_Image_Filter filter) { API_ENTRY EINA_FALSE; EINA_SAFETY_ON_NULL_RETURN_VAL(cw->ec, EINA_FALSE); - - if ((!cw->ec) || (!cw->ec->comp_data) || (e_object_is_del(E_OBJECT(cw->ec)))) - return EINA_FALSE; + if (e_object_is_del(E_OBJECT(cw->ec))) return EINA_FALSE; + if (!e_client_cdata_get(cw->ec)) return EINA_FALSE; switch (filter) { @@ -6222,9 +6231,8 @@ e_comp_object_image_filter_get(Evas_Object *obj) { API_ENTRY E_COMP_IMAGE_FILTER_NONE; EINA_SAFETY_ON_NULL_RETURN_VAL(cw->ec, E_COMP_IMAGE_FILTER_NONE); - - if ((!cw->ec->comp_data) || (e_object_is_del(E_OBJECT(cw->ec)))) - return E_COMP_IMAGE_FILTER_NONE; + if (e_object_is_del(E_OBJECT(cw->ec))) return E_COMP_IMAGE_FILTER_NONE; + if (!e_client_cdata_get(cw->ec)) return E_COMP_IMAGE_FILTER_NONE; return cw->image_filter; } -- 2.34.1