- l->idx = i;
- l->is_primary = 1;
- l->info.src_config.pos.w = l->info.src_config.size.h = mode->hdisplay;
- l->info.src_config.pos.h = l->info.src_config.size.v = mode->vdisplay;
- l->info.dst_pos = l->info.src_config.pos;
- }
- } else {
- LIST_FOR_EACH_ENTRY(l, &o->layer_list, link) {
- if (l->info.dst_pos.w == 0) {
- TDM_EXIT_IF_FAIL(!l->owner_p && !l->owner_c);
- if (l->is_primary) {
- l->info.dst_pos.w = mode->hdisplay;
- l->info.dst_pos.h = mode->vdisplay;
- } else {
- l->info.dst_pos.w = TDM_ALIGN(mode->hdisplay / 3, 2);
- l->info.dst_pos.h = TDM_ALIGN(mode->vdisplay / 3, 2);
- l->info.dst_pos.x = TDM_ALIGN(((mode->hdisplay / 3) / layer_count) * i, 2);
- l->info.dst_pos.y = TDM_ALIGN(((mode->vdisplay / 3) / layer_count) * i, 2);
- i++;
- }
- }
- if (minw > 0 && minh > 0) {
- TDM_EXIT_IF_FAIL(l->info.dst_pos.w >= minw);
- TDM_EXIT_IF_FAIL(l->info.dst_pos.h >= minh);
- }
- if (maxw > 0 && maxh > 0) {
- TDM_EXIT_IF_FAIL(l->info.dst_pos.w <= maxw);
- TDM_EXIT_IF_FAIL(l->info.dst_pos.h <= maxh);
- }
- if (l->owner_p) {
- l->info.src_config = l->owner_p->info.dst_config;
- } else if (l->owner_c) {
- l->info.src_config = l->owner_c->info.dst_config;