diff options
author | Ucan, Emre (ADITG/SW1) <eucan@de.adit-jv.com> | 2016-06-14 14:43:40 +0000 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2016-06-29 11:31:51 +0300 |
commit | 5e8d55da698e587951e69d49ac36f75541cca477 (patch) | |
tree | 6a5f29565ba7c25dfbc4aaf4fbe0d57bc0bb2822 /ivi-shell/ivi-layout-private.h | |
parent | d97f10081e5d34550276132128addf181a4de35b (diff) |
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 <eucan@de.adit-jv.com>
[Natsume: add empty line]
Reviewed-by: Wataru Natsume <wnatsume@jp.adit-jv.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'ivi-shell/ivi-layout-private.h')
-rw-r--r-- | ivi-shell/ivi-layout-private.h | 23 |
1 files changed, 18 insertions, 5 deletions
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; |