diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2018-04-16 22:14:52 +0200 |
---|---|---|
committer | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2018-04-20 17:07:06 +0200 |
commit | bb0882c5dad030f676e424265ebcd869bb3ff899 (patch) | |
tree | d95bb2d7ad6b5ac47427f73babe015b0ade02342 /meta-agl/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch | |
parent | 97e5e76efa44f55ee9aaf3998bb3df38b829706c (diff) |
Introduce meta-agl-profile-core and meta-agl-profile-graphics
Rework towards agl profiles.
This change is part of a series of changes to create the
AGL profiles.
This set will mainly introduce the 'core' profile.
It is setup to be a drop-in change, thus some files were kept
in (dummy) locations for now.
However, they'll be taken care of in the next changes in this series.
The main target of the meta-agl-profile-core layer is to host:
- a minimal, bootable image with network and package management enabled
-- agl-image-boot
- a minimal image with network and packagemanagement and the AGL APIs
-- agl-image-minimal
The layer meta-agl-profile-graphical is used as superset of these
and includes support for egl+wayland+weston. All recipes concerning
graphics were moved there. This is not a full profile as we still have
to migrate some parts of meta-agl-demo in a follow-up changeset.
The roadmap as discussed during the F2F session in Karlsruhe is:
- week 16 : core profile and profiles w/o graphics
- week 17 : graphical profiles
- week 18 : final conversion of the demo image
v2: moved agl-login-manager from -graphics to -core (see Jose's comment)
v3: moved back after discussion - follow-up in separate changeset
Change-Id: Idacb0d1274baac1f63f8d1b850d4b1104ac33918
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch')
-rw-r--r-- | meta-agl/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/meta-agl/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch b/meta-agl/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch deleted file mode 100644 index c5d85bb17..000000000 --- a/meta-agl/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch +++ /dev/null @@ -1,133 +0,0 @@ -index d5403e06..7b2f2707 100644 ---- a/ivi-shell/hmi-controller.c -+++ b/ivi-shell/hmi-controller.c -@@ -129,9 +129,9 @@ struct hmi_controller { - struct weston_compositor *compositor; - struct wl_listener destroy_listener; - -- struct wl_listener surface_created; - struct wl_listener surface_removed; - struct wl_listener surface_configured; -+ struct wl_listener desktop_surface_configured; - - struct wl_client *user_interface; - struct ui_setting ui_setting; -@@ -581,28 +581,6 @@ create_layer(struct weston_output *output, - /** - * Internal set notification - */ --static void --set_notification_create_surface(struct wl_listener *listener, void *data) --{ -- struct hmi_controller *hmi_ctrl = -- wl_container_of(listener, hmi_ctrl, -- surface_created); -- struct ivi_layout_surface *ivisurf = data; -- struct hmi_controller_layer *layer_link = -- wl_container_of(hmi_ctrl->application_layer_list.prev, -- layer_link, -- link); -- struct ivi_layout_layer *application_layer = layer_link->ivilayer; -- int32_t ret = 0; -- -- /* skip ui widgets */ -- if (is_surf_in_ui_widget(hmi_ctrl, ivisurf)) -- return; -- -- ret = ivi_layout_interface->layer_add_surface(application_layer, ivisurf); -- assert(!ret); --} -- - static void - set_notification_remove_surface(struct wl_listener *listener, void *data) - { -@@ -670,6 +648,42 @@ set_notification_configure_surface(struct wl_listener *listener, void *data) - switch_mode(hmi_ctrl, hmi_ctrl->layout_mode); - } - -+static void -+set_notification_configure_desktop_surface(struct wl_listener *listener, void *data) -+{ -+ struct hmi_controller *hmi_ctrl = -+ wl_container_of(listener, hmi_ctrl, -+ desktop_surface_configured); -+ struct ivi_layout_surface *ivisurf = data; -+ struct hmi_controller_layer *layer_link = -+ wl_container_of(hmi_ctrl->application_layer_list.prev, -+ layer_link, -+ link); -+ struct ivi_layout_layer *application_layer = layer_link->ivilayer; -+ struct weston_surface *surface; -+ int32_t ret = 0; -+ -+ /* skip ui widgets */ -+ if (is_surf_in_ui_widget(hmi_ctrl, ivisurf)) -+ return; -+ -+ ret = ivi_layout_interface->layer_add_surface(application_layer, ivisurf); -+ assert(!ret); -+ -+ /* -+ * if application changes size of wl_buffer. The source rectangle shall be -+ * fit to the size. -+ */ -+ surface = ivi_layout_interface->surface_get_weston_surface(ivisurf); -+ if (surface) { -+ ivi_layout_interface->surface_set_source_rectangle(ivisurf, 0, -+ 0, surface->width, surface->height); -+ } -+ -+ ivi_layout_interface->commit_changes(); -+ switch_mode(hmi_ctrl, hmi_ctrl->layout_mode); -+} -+ - /** - * A hmi_controller used 4 ivi_layers to manage ivi_surfaces. The IDs of - * corresponding ivi_layer are defined in weston.ini. Default scene graph -@@ -852,6 +866,9 @@ hmi_controller_create(struct weston_compositor *ec) - hmi_ctrl->surface_configured.notify = set_notification_configure_surface; - ivi_layout_interface->add_listener_configure_surface(&hmi_ctrl->surface_configured); - -+ hmi_ctrl->desktop_surface_configured.notify = set_notification_configure_desktop_surface; -+ ivi_layout_interface->add_listener_configure_desktop_surface(&hmi_ctrl->desktop_surface_configured); -+ - hmi_ctrl->destroy_listener.notify = hmi_controller_destroy; - wl_signal_add(&hmi_ctrl->compositor->destroy_signal, - &hmi_ctrl->destroy_listener); -@@ -1275,13 +1292,6 @@ ivi_hmi_controller_UI_ready(struct wl_client *client, - ivi_layout_interface->commit_changes(); - - ivi_hmi_controller_add_launchers(hmi_ctrl, 256); -- -- /* Add surface_created listener after the initialization of launchers. -- * Otherwise, surfaces of the launchers will be added to application -- * layer too.*/ -- hmi_ctrl->surface_created.notify = set_notification_create_surface; -- ivi_layout_interface->add_listener_create_surface(&hmi_ctrl->surface_created); -- - hmi_ctrl->is_initialized = 1; - } - -diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c -index 6b854503..22d63708 100644 ---- a/ivi-shell/ivi-layout.c -+++ b/ivi-shell/ivi-layout.c -@@ -787,9 +787,15 @@ commit_surface_list(struct ivi_layout *layout) - ivisurf->pending.prop.transition_type = IVI_LAYOUT_TRANSITION_NONE; - - if (configured && !is_surface_transition(ivisurf)) { -- shell_surface_send_configure(ivisurf->surface, -- ivisurf->prop.dest_width, -- ivisurf->prop.dest_height); -+ if (ivisurf->weston_desktop_surface) { -+ weston_desktop_surface_set_size(ivisurf->weston_desktop_surface, -+ ivisurf->prop.dest_width, -+ ivisurf->prop.dest_height); -+ } else { -+ shell_surface_send_configure(ivisurf->surface, -+ ivisurf->prop.dest_width, -+ ivisurf->prop.dest_height); -+ } - } - } else { - configured = 0; |