From 5e8d55da698e587951e69d49ac36f75541cca477 Mon Sep 17 00:00:00 2001 From: "Ucan, Emre (ADITG/SW1)" Date: Tue, 14 Jun 2016 14:43:40 +0000 Subject: ivi-shell: introduce ivi_layout_view This patch introduces ivi_layout_view data struct, which is a wrapper of weston_view. There is always only one ivi_layout_view for an ivi_layout_surface and ivi_layout_layer pair. A surface could have many views with different geometry and transformations, so that a surface can be shown on: 1. On many screens 2. On the same screen with different positions The geometry of a view is modified, when properties of its layer are changed through ivi_layout_interface. Users of ivi_layout_interface does not have direct access to ivi_layout_view structure. v2 changes: 1. Use ivi_view_is_rendered function instead of active member 2. Add descriptions to introduced members of structs Signed-off-by: Emre Ucan [Natsume: add empty line] Reviewed-by: Wataru Natsume Reviewed-by: Pekka Paalanen --- ivi-shell/ivi-layout-private.h | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'ivi-shell/ivi-layout-private.h') diff --git a/ivi-shell/ivi-layout-private.h b/ivi-shell/ivi-layout-private.h index 8fca68fd..66b19f64 100644 --- a/ivi-shell/ivi-layout-private.h +++ b/ivi-shell/ivi-layout-private.h @@ -29,6 +29,19 @@ #include "compositor.h" #include "ivi-layout-export.h" +struct ivi_layout_view { + struct wl_list link; /* ivi_layout::view_list */ + struct wl_list surf_link; /*ivi_layout_surface::view_list */ + struct wl_list pending_link; /* ivi_layout_layer::pending.view_list */ + struct wl_list order_link; /* ivi_layout_layer::order.view_list */ + + struct weston_view *view; + struct weston_transform transform; + + struct ivi_layout_surface *ivisurf; + struct ivi_layout_layer *on_layer; +}; + struct ivi_layout_surface { struct wl_list link; struct wl_signal property_changed; @@ -36,11 +49,8 @@ struct ivi_layout_surface { uint32_t id_surface; struct ivi_layout *layout; - struct ivi_layout_layer *on_layer; struct weston_surface *surface; - struct weston_transform transform; - struct ivi_layout_surface_properties prop; struct { @@ -52,6 +62,8 @@ struct ivi_layout_surface { struct wl_list link; struct wl_list layer_list; } order; + + struct wl_list view_list; /* ivi_layout_view::surf_link */ }; struct ivi_layout_layer { @@ -66,13 +78,13 @@ struct ivi_layout_layer { struct { struct ivi_layout_layer_properties prop; - struct wl_list surface_list; + struct wl_list view_list; /* ivi_layout_view::pending_link */ struct wl_list link; } pending; struct { int dirty; - struct wl_list surface_list; + struct wl_list view_list; /* ivi_layout_view::order_link */ struct wl_list link; } order; @@ -85,6 +97,7 @@ struct ivi_layout { struct wl_list surface_list; struct wl_list layer_list; struct wl_list screen_list; + struct wl_list view_list; /* ivi_layout_view::link */ struct { struct wl_signal created; -- cgit v1.2.3