e_comp_object: added hwc_need_update 63/75463/4
authorJuyeon Lee <juyeonne.lee@samsung.com>
Mon, 20 Jun 2016 04:29:31 +0000 (13:29 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Tue, 28 Jun 2016 07:23:39 +0000 (00:23 -0700)
replacing cw->nocomp_need_update,
changed _damage flow when multi_hwc is on

Change-Id: Ied4d761550ebce62304787153f9e21862927ad3b

src/bin/e_comp.c
src/bin/e_comp_object.c
src/bin/e_comp_object.h

index b7ae5c81e9d3a9a5ee8035e4b47752bda62b22af..8c8be56891487287b8d51b2ee907fad1b6561b91 100644 (file)
@@ -1941,7 +1941,7 @@ e_comp_is_on_overlay(E_Client *ec)
         E_Output * eout;
         E_Plane *ep;
 
-        if (!ec->zone) return EINA_FALSE;
+        if (!ec->zone || !ec->zone->output_id) return EINA_FALSE;
         eout = e_output_find(ec->zone->output_id);
         EINA_LIST_FOREACH_SAFE(eout->planes, l, ll, ep)
           {
index c8119ac787053181ffe5108d6a232f4fd801f1c5..48a04185b580953f1692b07da38c11d83ca5d94b 100644 (file)
@@ -115,7 +115,7 @@ typedef struct _E_Comp_Object
    Eina_Bool            native : 1;  // native
 
    Eina_Bool            nocomp : 1;  // nocomp applied
-   Eina_Bool            nocomp_need_update : 1;  // nocomp in effect, but this window updated while in nocomp mode
+   Eina_Bool            hwc_need_update : 1;  // this window updated while on e_plane to do hw composite
    Eina_Bool            real_hid : 1;  // last hide was a real window unmap
 
    Eina_Bool            effect_set : 1; //effect_obj has a valid group
@@ -3313,9 +3313,15 @@ e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h)
    evas_object_smart_callback_call(obj, "damage", &rect);
    if (e_comp->nocomp)
      {
-        cw->nocomp_need_update = EINA_TRUE;
+        cw->hwc_need_update = EINA_TRUE;
         return;
      }
+
+   if (e_comp_is_on_overlay(cw->ec))
+     {
+        cw->hwc_need_update = EINA_TRUE;
+     }
+
    /* ignore overdraw */
    if (cw->updates_full)
      {
@@ -4623,3 +4629,10 @@ e_comp_object_clear(Evas_Object *obj)
 
    _e_comp_object_clear(cw);
 }
+
+E_API Eina_Bool
+e_comp_object_hwc_update_exists(Evas_Object *obj)
+{
+   API_ENTRY EINA_FALSE;
+   return cw->hwc_need_update;
+}
\ No newline at end of file
index 32820678ca112e4874b3f8b507fa800462454323..3f478e732b3cac5bfe6fcef6f135ce92ae0f926b 100644 (file)
@@ -136,6 +136,8 @@ E_API void e_comp_object_dim_client_set(E_Client *ec);
 E_API E_Client *e_comp_object_dim_client_get(void);
 E_API void      e_comp_object_clear(Evas_Object *obj);
 
+E_API Eina_Bool e_comp_object_hwc_update_exists(Evas_Object *obj);
+
 #endif
 #endif