summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/wayland/weston/0007-RFR-ivi-shell-multi-screen-support-to-calcuration-of.patch
diff options
context:
space:
mode:
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.patch103
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 7747115a..00000000
--- 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
-