e_comp_screen: create e_screen per e_output 09/271309/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Fri, 21 Jan 2022 03:02:42 +0000 (12:02 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Fri, 18 Feb 2022 02:15:27 +0000 (11:15 +0900)
this patch is for creating e_zone per e_output
e_zone is created in e_comp_canvas_update per e_screen

Change-Id: Ia20c8b4a0d27b163831a9eb3eb1c88d7065a84c4

src/bin/e_comp_screen.c

index b399d27..e1c4c94 100644 (file)
@@ -998,36 +998,40 @@ e_comp_screen_e_screens_setup(E_Comp_Screen *e_comp_screen, int rw, int rh)
    E_Screen *screen;
    E_Output *output;
    Eina_List *e_screens = NULL;
+   Eina_List *l;
    int i = 0;
 
    output = e_comp_screen_primary_output_get(e_comp_screen);
    /* No pirmary output means that there is no output at the system */
    if (!output) goto out;
 
-   screen = E_NEW(E_Screen, 1);
-   if (!screen) return;
+   EINA_LIST_FOREACH(e_comp_screen->outputs, l, output)
+     {
+        screen = E_NEW(E_Screen, 1);
+        if (!screen) return;
 
-   screen->escreen = screen->screen = i;
-   screen->x = output->config.geom.x;
-   screen->y = output->config.geom.y;
+        screen->escreen = screen->screen = i;
+        screen->x = output->config.geom.x;
+        screen->y = output->config.geom.y;
 
-   if (output->config.rotation % 180)
-     {
-        screen->w = output->config.geom.h;
-        screen->h = output->config.geom.w;
-     }
-   else
-     {
-        screen->w = output->config.geom.w;
-        screen->h = output->config.geom.h;
-     }
+        if (output->config.rotation % 180)
+          {
+             screen->w = output->config.geom.h;
+             screen->h = output->config.geom.w;
+          }
+        else
+          {
+             screen->w = output->config.geom.w;
+             screen->h = output->config.geom.h;
+          }
 
-   if (output->id) screen->id = strdup(output->id);
+        if (output->id) screen->id = strdup(output->id);
 
-   e_screens = eina_list_append(e_screens, screen);
-   ELOGF("COMP_SCREEN","E INIT: SCREEN: [%i][%i], %ix%i+%i+%i",
-         NULL, i, i, screen->w, screen->h, screen->x, screen->y);
-   i++;
+        e_screens = eina_list_append(e_screens, screen);
+        ELOGF("COMP_SCREEN","E INIT: SCREEN: [%i][%i], %ix%i+%i+%i",
+              NULL, i, i, screen->w, screen->h, screen->x, screen->y);
+        i++;
+     }
 
    ELOGF("COMP_SCREEN","e_comp_screen_e_screens_setup............... %i %p\n", NULL, i, e_comp_screen->e_screens);