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)
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;
}
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;
_e_comp_hwc_end(const char *location)
{
Eina_Bool mode_set = EINA_FALSE;
- E_Client *ec;
E_Zone *zone;
Eina_List *l, *ll;
// 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;
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;
{
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
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;
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;
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;
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);
}
#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