From: jinbong.lee Date: Mon, 9 Dec 2024 09:05:41 +0000 (+0900) Subject: Apply capsulation of E_Zone structure X-Git-Tag: accepted/tizen/unified/20241210.105104~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F25%2F316025%2F2;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-effect.git Apply capsulation of E_Zone structure Change-Id: Idf0ed02c659b83624a62f5a36124adac129c2c5d Signed-off-by: jinbong.lee --- diff --git a/src/e_mod_effect_rotation.c b/src/e_mod_effect_rotation.c index dcff681..3d75846 100644 --- a/src/e_mod_effect_rotation.c +++ b/src/e_mod_effect_rotation.c @@ -168,25 +168,29 @@ _rotation_effect_targets_get(Rotation_Effect *effect, E_Desk *desk) E_Zone *zone; E_Desk *ec_desk; int ec_x, ec_y, ec_w, ec_h; + int zx, zy, zw, zh; if (!effect) return NULL; - if (effect->zone->display_state == E_ZONE_DISPLAY_STATE_OFF) + if (e_zone_display_state_get(effect->zone) == E_ZONE_DISPLAY_STATE_OFF) return NULL; x = y = w = h = 0; - - t = eina_tiler_new(effect->zone->w + edge, effect->zone->h + edge); + zx = zy = zw = zh = 0; + e_zone_useful_geometry_get(effect->zone, &zx, &zy, &zw, &zh); + t = eina_tiler_new(zw + edge, zh + edge); eina_tiler_tile_size_set(t, 1, 1); - EINA_RECTANGLE_SET(&r, effect->zone->x, effect->zone->y, effect->zone->w, effect->zone->h); + EINA_RECTANGLE_SET(&r, zx, zy, zw, zh); eina_tiler_rect_add(t, &r); - o = evas_object_top_get(e_comp->evas); + o = evas_object_top_get(e_comp_evas_get()); for (; o; o = evas_object_below_get(o)) { + E_View* view; if (!evas_object_visible_get(o)) continue; - if (o == effect->zone->over) continue; + view = evas_object_data_get(o, "e_view"); + if (view && (view == e_zone_over_get(effect->zone))) continue; if (o == effect->bg) continue; if (evas_object_layer_get(o) > E_LAYER_EFFECT) continue; if (!e_util_strcmp(evas_object_name_get(o), "layer_obj")) continue; @@ -195,6 +199,7 @@ _rotation_effect_targets_get(Rotation_Effect *effect, E_Desk *desk) ec = evas_object_data_get(o, "E_Client"); if (ec) { + int curr_zone_angle; ec_desk = e_comp_desk_find_by_ec(ec); if (!ec_desk) continue; if (ec_desk != desk) continue; @@ -203,16 +208,18 @@ _rotation_effect_targets_get(Rotation_Effect *effect, E_Desk *desk) zone = e_comp_zone_find_by_ec(ec); if (!zone) continue; e_client_geometry_get(ec, &ec_x, &ec_y, &ec_w, &ec_h); - if (!E_INTERSECTS(ec_x, ec_y, ec_w, ec_h, zone->x, zone->y, zone->w, zone->h)) + e_zone_useful_geometry_get(zone, &zx, &zy, &zw, &zh); + if (!E_INTERSECTS(ec_x, ec_y, ec_w, ec_h, zx, zy, zw, zh)) continue; if ((e_client_visibility_obscured_get(ec) != E_VISIBILITY_UNOBSCURED) && (e_client_iconic_get(ec))) continue; + curr_zone_angle = e_zone_rotation_curr_angle_get(effect->zone); if ((!e_client_animatable_get(ec)) || (e_client_video_client_has(ec)) || - (!_rotation_effect_available(ec, effect->zone->rot.curr)) || - (e_client_e_state_rot_angle_current_get(ec) == effect->zone->rot.curr)) + (!_rotation_effect_available(ec, curr_zone_angle)) || + (e_client_e_state_rot_angle_current_get(ec) == curr_zone_angle)) { if (l) eina_list_free(l); eina_tiler_free(t); @@ -373,7 +380,7 @@ _rotation_effect_object_create(Evas_Object *o) buffer = e_pixmap_resource_get(e_client_pixmap_get(ec)); if (!buffer) goto fail; - img = evas_object_image_filled_add(e_comp->evas); + img = evas_object_image_filled_add(e_comp_evas_get()); e_util_size_debug_set(img, 1); evas_object_image_colorspace_set(img, EVAS_COLORSPACE_ARGB8888); evas_object_image_smooth_scale_set(img, e_comp_config_get()->smooth_windows); @@ -479,7 +486,7 @@ _rotation_effect_object_create(Evas_Object *o) evas_object_geometry_get(o, &x, &y, &w, &h); - img = evas_object_image_filled_add(e_comp->evas); + img = evas_object_image_filled_add(e_comp_evas_get()); e_util_size_debug_set(img, 1); evas_object_image_colorspace_set(img, EVAS_COLORSPACE_ARGB8888); @@ -526,16 +533,18 @@ _rotation_effect_begin_create(Rotation_Effect *effect, Eina_List *targets, E_Des Evas_Object *target; Eina_List *l; int x, y, w, h; + int zx, zy, zw, zh; ctx_begin = E_NEW(Rotation_Effect_Begin_Context, 1); if (!ctx_begin) return NULL; - ctx_begin->layout = e_layout_add(e_comp->evas); + ctx_begin->layout = e_layout_add(e_comp_evas_get()); e_util_size_debug_set(ctx_begin->layout, 1); evas_object_name_set(ctx_begin->layout, "rotation-begin-effect-layout"); - e_layout_virtual_size_set(ctx_begin->layout, effect->zone->w, effect->zone->h); - evas_object_move(ctx_begin->layout, effect->zone->x, effect->zone->y); - evas_object_resize(ctx_begin->layout, effect->zone->w, effect->zone->h); + e_zone_useful_geometry_get(effect->zone, &zx, &zy, &zw, &zh); + e_layout_virtual_size_set(ctx_begin->layout, zw, zh); + evas_object_move(ctx_begin->layout, zx, zy); + evas_object_resize(ctx_begin->layout, zw, zh); evas_object_layer_set(ctx_begin->layout, E_LAYER_EFFECT); EINA_LIST_REVERSE_FOREACH(targets, l, target) @@ -569,7 +578,7 @@ _rotation_effect_begin_create(Rotation_Effect *effect, Eina_List *targets, E_Des EFFINF("Rotation Begin Created", NULL); - int diff = effect->zone->rot.prev - effect->zone->rot.curr; + int diff = e_zone_rotation_prev_angle_get(effect->zone) - e_zone_rotation_curr_angle_get(effect->zone); if (diff == 270) diff = - 90; else if (diff == -270) diff = 90; ctx_begin->src = 0.0; @@ -587,16 +596,18 @@ _rotation_effect_end_create(Rotation_Effect *effect, Eina_List *targets, E_Desk Eina_List *l; Evas_Object *target; int x, y, w, h; + int zx, zy, zw, zh; ctx_end = E_NEW(Rotation_Effect_End_Context, 1); if (!ctx_end) return NULL; - ctx_end->layout = e_layout_add(e_comp->evas); + ctx_end->layout = e_layout_add(e_comp_evas_get()); e_util_size_debug_set(ctx_end->layout, 1); evas_object_name_set(ctx_end->layout, "rotation-end-effect-layout"); - e_layout_virtual_size_set(ctx_end->layout, effect->zone->w, effect->zone->h); - evas_object_move(ctx_end->layout, effect->zone->x, effect->zone->y); - evas_object_resize(ctx_end->layout, effect->zone->w, effect->zone->h); + e_zone_useful_geometry_get(effect->zone, &zx, &zy, &zw, &zh); + e_layout_virtual_size_set(ctx_end->layout, zw, zh); + evas_object_move(ctx_end->layout, zx, zy); + evas_object_resize(ctx_end->layout, zw, zh); evas_object_layer_set(ctx_end->layout, E_LAYER_EFFECT); EINA_LIST_REVERSE_FOREACH(targets, l, target) @@ -806,6 +817,8 @@ _norender_timer_timeout(void *data) static void _rotation_effect_start(Rotation_Effect *effect) { + int zw, zh; + if ((!effect->ctx_begin) || (!effect->ctx_end)) return; if (effect->running) return; @@ -834,7 +847,8 @@ _rotation_effect_start(Rotation_Effect *effect) evas_object_show(effect->ctx_end->layout); evas_object_move(effect->bg, 0, 0); - evas_object_resize(effect->bg, effect->zone->w, effect->zone->h); + e_zone_useful_geometry_get(effect->zone, NULL, NULL, &zw, &zh); + evas_object_resize(effect->bg, zw, zh); evas_object_lower(effect->bg); evas_object_show(effect->bg); @@ -913,6 +927,7 @@ _rotation_effect_cb_zone_rotation_begin(void *data, int type, void *event) E_Event_Zone_Rotation_Change_Begin *ev = event; E_Zone *zone; E_Desk *desk; + int rot_prev, rot_curr; effect = (Rotation_Effect *)data; if (!effect) return ECORE_CALLBACK_PASS_ON; @@ -920,14 +935,17 @@ _rotation_effect_cb_zone_rotation_begin(void *data, int type, void *event) zone = ev->zone; if (!zone) return ECORE_CALLBACK_PASS_ON; + rot_prev = e_zone_rotation_prev_angle_get(zone); + rot_curr = e_zone_rotation_curr_angle_get(zone); + EFFINF("Zone rotation begin zone(prev:%d cur:%d)", NULL, - zone->rot.prev, zone->rot.curr); + rot_prev, rot_curr); - if (zone->rot.prev == zone->rot.curr) return ECORE_CALLBACK_PASS_ON; + if (rot_prev == rot_curr) return ECORE_CALLBACK_PASS_ON; - _rotation_zone->curr_angle = zone->rot.curr; - _rotation_zone->prev_angle = zone->rot.prev; + _rotation_zone->curr_angle = rot_curr; + _rotation_zone->prev_angle = rot_prev; desk = e_desk_current_get(zone); _rotation_effect_animator_begin_prepare(effect, desk); @@ -945,6 +963,7 @@ _rotation_effect_cb_zone_rotation_end(void *data, int type, void *event) E_Event_Zone_Rotation_Change_End *ev = event; E_Zone *zone; E_Desk *desk; + int rot_curr, rot_prev; effect = (Rotation_Effect *)data; if (!effect) return ECORE_CALLBACK_PASS_ON; @@ -952,8 +971,11 @@ _rotation_effect_cb_zone_rotation_end(void *data, int type, void *event) zone = ev->zone; if (!zone) return ECORE_CALLBACK_PASS_ON; + rot_prev = e_zone_rotation_prev_angle_get(zone); + rot_curr = e_zone_rotation_curr_angle_get(zone); + EFFINF("Zone rotation end angle(prev:%d cur:%d)", NULL, - zone->rot.prev, zone->rot.curr); + rot_prev, rot_curr); if (effect->running) return ECORE_CALLBACK_PASS_ON; if (effect->waiting_list) @@ -1145,7 +1167,7 @@ _rotation_effect_create(E_Zone *zone) rotation_effect->zone = zone; - rotation_effect->bg = evas_object_rectangle_add(e_comp->evas); + rotation_effect->bg = evas_object_rectangle_add(e_comp_evas_get()); e_util_size_debug_set(rotation_effect->bg, 1); evas_object_color_set(rotation_effect->bg, 0, 0, 0, 255); evas_object_layer_set(rotation_effect->bg, E_LAYER_EFFECT); @@ -1172,9 +1194,11 @@ static Rotation_Zone * _rotation_zone_create(E_Zone *zone) { Rotation_Zone *rotation_zone = NULL; + int zw, zh; if (!zone) return NULL; - if ((zone->w == 0) || (zone->h == 0)) return NULL; + e_zone_useful_geometry_get(zone, NULL, NULL, &zw, &zh); + if ((zw == 0) || (zh == 0)) return NULL; rotation_zone = E_NEW(Rotation_Zone, 1); if (!rotation_zone) return NULL; @@ -1188,8 +1212,8 @@ _rotation_zone_create(E_Zone *zone) } rotation_zone->zone = zone; - rotation_zone->curr_angle = zone->rot.curr; - rotation_zone->prev_angle = zone->rot.prev; + rotation_zone->curr_angle = e_zone_rotation_curr_angle_get(zone); + rotation_zone->prev_angle = e_zone_rotation_prev_angle_get(zone); E_LIST_HANDLER_APPEND(rotation_zone->event_hdlrs, E_EVENT_ZONE_ROTATION_CHANGE_BEGIN,