summaryrefslogtreecommitdiff
path: root/ivi-shell/ivi-layout-private.h
diff options
context:
space:
mode:
authorUcan, Emre (ADITG/SW1) <eucan@de.adit-jv.com>2016-06-14 14:43:40 +0000
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2016-06-29 11:31:51 +0300
commit5e8d55da698e587951e69d49ac36f75541cca477 (patch)
tree6a5f29565ba7c25dfbc4aaf4fbe0d57bc0bb2822 /ivi-shell/ivi-layout-private.h
parentd97f10081e5d34550276132128addf181a4de35b (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.h23
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;