e_comp: set e_hwc_windows_comp_override when nocomp_override is set 40/306940/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 29 Feb 2024 02:17:02 +0000 (11:17 +0900)
committerchangyeon lee <cyeon.lee@samsung.com>
Thu, 29 Feb 2024 04:18:09 +0000 (04:18 +0000)
Change-Id: If6b32a6d2e79bda548a2f8dafb34c793fdc209ad

src/bin/e_comp.c

index 1e49269..9612be2 100644 (file)
@@ -659,6 +659,25 @@ e_comp_ignore_win_find(Ecore_Window win)
    return !!eina_hash_find(ignores, &win);
 }
 
+static void
+_e_comp_hwc_comp_override_set(Eina_Bool set)
+{
+   E_Output *output;
+   E_Hwc *hwc;
+
+   EINA_SAFETY_ON_NULL_RETURN(e_comp);
+   EINA_SAFETY_ON_NULL_RETURN(e_comp->e_comp_screen);
+
+   output = e_comp_screen_primary_output_get(e_comp->e_comp_screen);
+   EINA_SAFETY_ON_NULL_RETURN(output);
+
+   hwc = output->hwc;
+   EINA_SAFETY_ON_NULL_RETURN(hwc);
+
+   if (hwc->hwc_policy == E_HWC_POLICY_WINDOWS)
+     e_hwc_windows_comp_override_set(output->hwc, set);
+}
+
 E_API void
 e_comp_override_del()
 {
@@ -667,6 +686,7 @@ e_comp_override_del()
      {
         e_comp->nocomp_override = 0;
         e_comp_render_queue();
+        _e_comp_hwc_comp_override_set(EINA_FALSE);
      }
 }
 
@@ -678,6 +698,7 @@ e_comp_override_add()
      {
         // go full compositing
         e_comp_hwc_end(__FUNCTION__);
+        _e_comp_hwc_comp_override_set(EINA_TRUE);
      }
 }