e_zone: dereference e_output directly 80/71580/2
authorJuyeon Lee <juyeonne.lee@samsung.com>
Thu, 26 May 2016 04:47:41 +0000 (13:47 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 26 May 2016 05:00:30 +0000 (22:00 -0700)
Change-Id: Ie36d1e653483a7dd0bdb94dcfb80233aac0367ea

src/bin/e_comp.c
src/bin/e_comp_canvas.c
src/bin/e_output.c
src/bin/e_zone.c
src/bin/e_zone.h

index 1074bc7..1d08358 100644 (file)
@@ -390,9 +390,9 @@ _e_comp_prepare_overlay(void)
         int num_of_ly = 0, ly_cnt = 0;
         Eina_List *clist = NULL;
 
-        if (!zone && !zone->screen) continue;
+        if (!zone && !zone->output_id) continue;
 
-        eout = zone->screen;
+        eout = e_output_screen_id_find(zone->output_id);
         num_of_ly = eout->plane_count;
 
         E_CLIENT_REVERSE_FOREACH(ec)
@@ -435,7 +435,7 @@ _e_comp_prepare_overlay(void)
              else if (ly_cnt > num_of_ly) mode = E_HWC_MODE_HWC_COMPOSITE;
           }
 
-        e_output_planes_prepare(eout, mode, clist);
+        //e_output_planes_prepare(eout, mode, clist);
         eina_list_free(clist);
         clist = NULL;
      }
@@ -480,7 +480,10 @@ _e_comp_cb_hwc_begin(void)
 
    EINA_LIST_FOREACH(e_comp->zones, l, zone)
      {
-        if(zone->screen) mode_set |= e_output_planes_apply(zone->screen);
+        E_Output_Screen * eout;
+        if (!zone->output_id) continue;
+        eout = e_output_screen_id_find(zone->output_id);
+        if(eout) mode_set |= e_output_planes_apply(eout);
      }
 
    if (!mode_set) return;
@@ -507,7 +510,6 @@ void
 _e_comp_hwc_end(const char *location)
 {
    Eina_Bool mode_set = EINA_FALSE;
-   E_Client *ec;
    E_Zone *zone;
    Eina_List *l, *ll;
 
@@ -520,10 +522,10 @@ _e_comp_hwc_end(const char *location)
    // e_comp->canvases will be replace e_comp->zones
    EINA_LIST_FOREACH_SAFE(e_comp->zones, l, ll, zone)
      {
-        if (zone->screen)
-          {
-             mode_set |= e_output_planes_clear(zone->screen);
-          }
+        E_Output_Screen * eout;
+        if (!zone->output_id) continue;
+        eout = e_output_screen_id_find(zone->output_id);
+        if (eout) mode_set |= e_output_planes_clear(eout);
      }
 
    if (!mode_set) return;
@@ -1774,7 +1776,7 @@ e_comp_is_on_overlay(E_Client *ec)
         E_Plane *ep;
 
         if (!ec->zone) return EINA_FALSE;
-        screen = ec->zone->screen;
+        screen = e_output_screen_id_find(ec->zone->output_id);
         EINA_LIST_FOREACH_SAFE(screen->planes, l, ll, ep)
           {
              E_Client *overlay_ec = ep->ec;
index 9cedd1f..dc2f36d 100644 (file)
@@ -203,11 +203,7 @@ e_comp_canvas_init(int w, int h)
           {
              E_Zone *zone = e_zone_new(scr->screen, scr->escreen,
                                        scr->x, scr->y, scr->w, scr->h);
-             if (scr->id)
-               {
-                  zone->randr2_id = strdup(scr->id);
-                  zone->screen = e_output_screen_id_find(scr->id);
-               }
+             if (scr->id) zone->output_id = strdup(scr->id);
           }
      }
    else
@@ -409,24 +405,15 @@ e_comp_canvas_update(void)
                   zones = eina_list_remove(zones, zone);
                   e_comp->zones = eina_list_append(e_comp->zones, zone);
                   zone->num = scr->screen;
-                  free(zone->randr2_id);
-                  zone->randr2_id = NULL;
-                  zone->screen = NULL;
-                  if (scr->id)
-                    {
-                       zone->randr2_id = strdup(scr->id);
-                       zone->screen = e_output_screen_id_find(scr->id);
-                    }
+                  free(zone->output_id);
+                  zone->output_id = NULL;
+                  if (scr->id) zone->output_id = strdup(scr->id);
                }
              else
                {
                   zone = e_zone_new(scr->screen, scr->escreen,
                                     scr->x, scr->y, scr->w, scr->h);
-                  if (scr->id)
-                    {
-                       zone->randr2_id = strdup(scr->id);
-                       zone->screen = e_output_screen_id_find(scr->id);
-                    }
+                  if (scr->id) zone->output_id = strdup(scr->id);
 
                   printf("@@@ NEW ZONE = %p\n", zone);
                   changed = EINA_TRUE;
index 4541347..d1ad23c 100644 (file)
@@ -443,7 +443,7 @@ e_output_planes_need_change()
 
    zone = eina_list_data_get(e_comp->zones);
    if (!zone) return EINA_FALSE;
-   screen = zone->screen;
+   screen = e_output_screen_id_find(zone->output_id);
    if (!screen) return EINA_FALSE;
    l_p = screen->planes;
    if (!l_p) return EINA_FALSE;
@@ -493,8 +493,8 @@ e_output_util_planes_print(void)
         E_Plane *ep;
         E_Client *ec;
 
-        if (!zone && !zone->screen) continue;
-        screen = zone->screen;
+        if (!zone && !zone->output_id) continue;
+        screen = e_output_screen_id_find(zone->output_id);
         if (!screen) continue;
         if (!screen->planes) continue;
 
index bb3d6cc..7ccd05b 100644 (file)
@@ -1208,7 +1208,7 @@ _e_zone_free(E_Zone *zone)
           e_object_del(E_OBJECT(zone->desks[x + (y * zone->desk_x_count)]));
      }
    free(zone->desks);
-   free(zone->randr2_id);
+   free(zone->output_id);
    free(zone);
 }
 
index 01ee81f..73693bc 100644 (file)
@@ -109,8 +109,7 @@ struct _E_Zone
 #endif
 
    E_Zone_Display_State display_state;
-   char                 *randr2_id; // same id we get from randr2 so look it up there
-   E_Output_Screen      *screen;
+   char                 *output_id; // same id we get from e_comp_screen so look it up there
 };
 
 struct _E_Event_Zone_Generic