e_desk: do not deactive hwc when desk zoom is set 13/283613/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 25 Oct 2022 04:35:11 +0000 (13:35 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 31 Oct 2022 07:30:00 +0000 (16:30 +0900)
deactive of hwc is not needed because hwc does not use device state
when pp of hwc is set or desk_zoom enable state of client is set.

this patch is for supporting hwc in case of desk_zoom of client is
not appllied.

Change-Id: I7c9b04ff2559d8240373d3a334c16f37f137d905

src/bin/e_desk.c
src/bin/e_hwc_planes.c
src/bin/e_hwc_window.c

index 42775f4..31c56d7 100644 (file)
@@ -66,7 +66,6 @@ static void      _e_desk_smart_client_add(Evas_Object *obj, E_Client *ec);
 static void      _e_desk_smart_client_del(Evas_Object *obj, E_Client *ec);
 static void      _e_desk_object_zoom(Evas_Object *obj, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy);
 static void      _e_desk_client_zoom(E_Client *ec, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy);
-static void      _e_desk_util_comp_hwc_disable_set(Eina_Bool enable);
 
 static Eina_Bool _e_desk_desk_group_base_new(E_Desk *desk);
 
@@ -976,11 +975,6 @@ _e_desk_zoom_animate_cb(void *data, double pos)
              // Zoom enable done
              sd->zoom.enabled = EINA_TRUE;
           }
-        else
-          {
-             // Zoom disable done
-             _e_desk_util_comp_hwc_disable_set(EINA_FALSE);
-          }
 
         sd->zoom.animating_type = E_DESK_ZOOM_ANIMATING_TYPE_NONE;
         sd->zoom.animator = NULL;
@@ -1077,9 +1071,6 @@ e_desk_zoom_set(E_Desk *desk, double zoomx, double zoomy, int cx, int cy)
               * EINA_LIST_FOREACH(sd->clients, l, ec)
               *   evas_object_map_enable_set(ec->frame, EINA_TRUE);
               */
-
-             /* FIXME TEMP disable hwc */
-             _e_desk_util_comp_hwc_disable_set(EINA_TRUE);
           }
      }
 
@@ -1263,9 +1254,6 @@ e_desk_zoom_unset(E_Desk *desk)
                                       sd->zoom.cord_x, sd->zoom.cord_y);
                   //evas_object_map_enable_set(ec->frame, EINA_FALSE);
                }
-
-             /* FIXME TEMP enable hwc */
-             _e_desk_util_comp_hwc_disable_set(EINA_FALSE);
           }
      }
 
@@ -1791,15 +1779,6 @@ _e_desk_smart_client_del(Evas_Object *obj, E_Client *ec)
 }
 
 static void
-_e_desk_util_comp_hwc_disable_set(Eina_Bool disable)
-{
-   if (disable)
-     e_comp_hwc_end("in runtime by e_desk");
-
-   e_comp_hwc_deactive_set(disable);
-}
-
-static void
 _e_desk_object_zoom(Evas_Object *obj, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy)
 {
    E_Map *map;
index b004cbc..6a3f013 100644 (file)
@@ -37,6 +37,7 @@ _e_hwc_planes_ec_check(E_Client *ec)
      }
 
    if (e_client_transform_core_enable_get(ec)) return EINA_FALSE;
+   if (e_client_desk_zoom_enable_get(ec)) return EINA_FALSE;
 
    switch (cdata->buffer_ref.buffer->type)
      {
index ef00eaf..9e0f646 100644 (file)
@@ -93,6 +93,7 @@ typedef enum _E_Hwc_Window_Restriction
    E_HWC_WINDOW_RESTRICTION_DESK_GEOMETRY,
    E_HWC_WINDOW_RESTRICTION_EFFECT_RUNNING,
    E_HWC_WINDOW_RESTRICTION_RENDER_UPDATE_LOCK,
+   E_HWC_WINDOW_RESTRICTION_DESK_ZOOM,
 } E_Hwc_Window_Restriction;
 
 static Eina_Bool ehw_trace = EINA_FALSE;
@@ -2271,6 +2272,14 @@ e_hwc_window_device_state_available_update(E_Hwc_Window *hwc_window)
         goto finish;
      }
 
+   if (e_client_desk_zoom_enable_get(ec))
+     {
+        restriction = E_HWC_WINDOW_RESTRICTION_DESK_ZOOM;
+        available = EINA_FALSE;
+        goto finish;
+     }
+
+
 finish:
    hwc_window->restriction = restriction;
 
@@ -2649,6 +2658,8 @@ e_hwc_window_restriction_string_get(E_Hwc_Window *hwc_window)
        return "effect running";
      case E_HWC_WINDOW_RESTRICTION_RENDER_UPDATE_LOCK:
        return "render update lock";
+     case E_HWC_WINDOW_RESTRICTION_DESK_ZOOM:
+       return "desk zoom";
      default:
        return "UNKNOWN";
     }