diff options
Diffstat (limited to 'recipes-graphics/wayland/weston/0007-RFR-ivi-shell-multi-screen-support-to-calcuration-of.patch')
-rw-r--r-- | recipes-graphics/wayland/weston/0007-RFR-ivi-shell-multi-screen-support-to-calcuration-of.patch | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/recipes-graphics/wayland/weston/0007-RFR-ivi-shell-multi-screen-support-to-calcuration-of.patch b/recipes-graphics/wayland/weston/0007-RFR-ivi-shell-multi-screen-support-to-calcuration-of.patch deleted file mode 100644 index 7747115ac..000000000 --- a/recipes-graphics/wayland/weston/0007-RFR-ivi-shell-multi-screen-support-to-calcuration-of.patch +++ /dev/null @@ -1,103 +0,0 @@ -From b995f26e62de2ba8965700062ccf98a8f65fffd0 Mon Sep 17 00:00:00 2001 -From: Koji Ohira <kk.ohira.koji@nttd-mse.com> -Date: Thu, 24 Nov 2016 21:14:38 +0900 -Subject: [PATCH] [RFR] ivi-shell: multi screen support to calcuration of a - mask of weston_surface. - -A weston_surface is transformed to multi screen coordinate, global -coordinate by matrix:m now. - -Additionally, a mask needs to be calucated, taking account into, -- multi screen coordination: a destination rectangle of layer in the - coordination is easily calcurated by adding weston_output.{x,y} in - simple. This is because there is no scaled and rotated transformation. -- intersect inside of a screen the layer is assigned to. This is because - overlapped region of weston surface in another screen shall not be - displayed according to ivi use case. - -Signed-off-by: Koji Ohira <kk.ohira.koji@nttd-mse.com> ---- - ivi-shell/ivi-layout.c | 38 ++++++++++++++++++++++++++++++++------ - 1 file changed, 32 insertions(+), 6 deletions(-) - -diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c -index 65c2735..008fbe5 100644 ---- a/ivi-shell/ivi-layout.c -+++ b/ivi-shell/ivi-layout.c -@@ -665,15 +665,24 @@ calc_inverse_matrix_transform(const struct weston_matrix *matrix, - - /** - * This computes the whole transformation matrix:m from surface-local -- * coordinates to global coordinates. It is assumed that -- * weston_view::geometry.{x,y} are zero. -+ * coordinates to multi screens coordinate, which is global coordinates. -+ * It is assumed that weston_view::geometry.{x,y} are zero. - * - * Additionally, this computes the mask on surface-local coordinates as a - * ivi_rectangle. This can be set to weston_view_set_mask. - * - * The mask is computed by following steps -- * - destination rectangle of layer is inversed to surface-local cooodinates -- * by inversed matrix:m. -+ * - destination rectangle of layer is tansformed to multi screen coordinate, -+ * global coordinates. This is done by adding weston_output.{x,y} in simple -+ * because there is no scaled and rotated transformation. -+ * - destination rectangle of layer in multi screens coordinate needs to be -+ * intersected inside of a screen the layer is assigned to. This is because -+ * overlapped region of weston surface in another screen shall not be -+ * displayed according to ivi use case. -+ * - destination rectangle of layer -+ * - in multi screen coordinates, -+ * - and intersected inside of an assigned screen, -+ * is inversed to surface-local cooodinates by inversed matrix:m. - * - the area is intersected by intersected area between weston_surface and - * source rectangle of ivi_surface. - */ -@@ -708,7 +717,17 @@ calc_surface_to_global_matrix_and_mask_to_weston_surface( - lp->dest_y, - lp->dest_width, - lp->dest_height }; -+ struct ivi_rectangle screen_dest_rect = { output->x, -+ output->y, -+ output->width, -+ output->height }; -+ struct ivi_rectangle layer_dest_rect_in_global = -+ { lp->dest_x + output->x, -+ lp->dest_y + output->y, -+ lp->dest_width, -+ lp->dest_height }; - struct ivi_rectangle surface_result; -+ struct ivi_rectangle layer_dest_rect_in_global_intersected; - - /* - * the whole transformation matrix:m from surface-local -@@ -735,9 +754,16 @@ calc_surface_to_global_matrix_and_mask_to_weston_surface( - ivi_rectangle_intersect(&surface_source_rect, &weston_surface_rect, - &surface_result); - -+ /* -+ * destination rectangle of layer in multi screens coordinate -+ * is intersected to avoid displaying outside of an assigned screen. -+ */ -+ ivi_rectangle_intersect(&layer_dest_rect_in_global, &screen_dest_rect, -+ &layer_dest_rect_in_global_intersected); -+ - /* calc masking area of weston_surface from m */ - calc_inverse_matrix_transform(m, -- &layer_dest_rect, -+ &layer_dest_rect_in_global_intersected, - &surface_result, - result); - } -@@ -778,7 +804,7 @@ update_prop(struct ivi_layout_screen *iviscrn, - weston_matrix_init(&ivisurf->transform.matrix); - - calc_surface_to_global_matrix_and_mask_to_weston_surface( -- ivilayer, ivisurf, &ivisurf->transform.matrix, &r); -+ iviscrn, ivilayer, ivisurf, &ivisurf->transform.matrix, &r); - - if (tmpview != NULL) { - weston_view_set_mask(tmpview, r.x, r.y, r.width, r.height); --- -2.7.4 - |