weston/ivi-shell
Pekka Paalanen 71ff95a544 build: separate deps for int and ext libweston users
We have two kinds of libweston users: internal and external. Weston, the
frontend, counts as an external user, and should not have access to libweston
private headers. The shell plugins are external users as well, because we
intend people to be able to write them. Renderers, backends, and some plugins
are internal users who will need access to private headers.

Create two different Meson dependency objects, one for each kind.

This makes it less likely to accidentally use a private header.

Screen-share is a Weston plugin and therefore counts as an external user, but
it needs the backend API to deliver input. Until we are comfortable exposing
public API for that purpose, let it use internal headers.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2019-10-24 13:29:33 +03:00
..
hmi-controller.c hmi-controller: register for desktop_surface_configured 2019-02-06 17:45:09 +00:00
ivi-layout-export.h Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
ivi-layout-private.h ivi-layout: use libweston-desktop api is to send configure events everywhere 2019-07-01 15:50:08 +00:00
ivi-layout-shell.h ivi-layout: introduced surface create and configure 2019-02-06 17:45:09 +00:00
ivi-layout-transition.c ivi-layout: use libweston-desktop api is to send configure events everywhere 2019-07-01 15:50:08 +00:00
ivi-layout.c ivi-layout: unmap desktop surfaces in ivi_view_destroy() 2019-07-01 15:51:57 +00:00
ivi-shell.c ivi-shell: create weston_desktop in wet_shell_init 2019-02-06 17:45:09 +00:00
ivi-shell.h Move libweston-desktop.h 2019-04-18 12:31:46 +03:00
meson.build build: separate deps for int and ext libweston users 2019-10-24 13:29:33 +03:00
README ivi-shell: Add missing sentence point 2018-09-18 11:54:29 +02:00
weston.ini.in ivi-shell: remove input-method section from config 2018-11-05 08:37:07 +00:00

	In-vehicle infotainment (information and entertainment)
	graphical environment support modules for Weston


IVI-shell is an alternative shell for Weston, a Wayland display server.
Window management and application interaction with the display server
are very different to that of a normal desktop, which is why this is
a separate shell and not an extension to the desktop-shell suite with
xdg_shell. As such, applications need to be specifically written to use
IVI-shell.

IVI-shell contains two main features:
- Common layout library for surface, which allow ivi-shell developer
  to develop own shell, linking Common layout library.
  For the time being, the library refers Genivi ilm interface.

  https://at.projects.genivi.org/wiki/display/WIE/Wayland+IVI+Extension+Home

- Extension protocol; ivi-application to tie wl_surface and a given ID.
  With this ID, shell can identify which wl_surface is drawn by which
  application. In in-vehicle infortainment system, a shell has to update
  a property of a wl_surface. E.g. there may be a use case when vehicle
  starts to move, the wl_surface drawn by Car navigation is expected to
  move top of surfaces.

The actual software components delivered with Weston are:

- ivi-application.xml:
	Wayland protocol extension for IVI-applications; the public
	shell protocol (the same concept as xdg_shell).
	Implemented by ivi-shell.so.

- ivi-shell.so:
	A Weston shell module that implements ivi-application.xml interfaces.
	Loads ivi-layout.so.

- ivi-layout.so:
	Implements the IVI window management concepts: Screen, Layer,
	Surface, groups of Layers, groups of Surfaces, see:
	https://at.projects.genivi.org/wiki/display/WIE/Summary+of+Layer+manager+APIs
	Offers a stable API for writing IVI-controller modules like
	hmi-controller.so against the IVI concepts. In other words,
	it offers an API to write IVI window manager modules.

- hmi-controller.so:
	A sample implementation of an IVI-controller module, usually
	replaced by IVI system vendors.
	Uses ivi-layout.so to perform essentially window manager tasks.
	This implementation keeps all window management inside the module,
	while IVI-systems may use another module that exposes all window
	management via Wayland or other protocol for an external process
	to control.

- ivi-hmi-controller.xml:
	Wayland protocol extension for IVI display control; the private
	shell protocol for weston-ivi-shell-user-interface client
	(the same concept as desktop-shell.xml).
	Implemented by hmi-controller.so, and usually replaced by IVI
	system vendors.

- weston-ivi-shell-user-interface:
	A sample implementation of an IVI shell helper client, usually
	replaced by IVI system vendors.
	A helper client for basic display content, similar to
	weston-desktop-shell.


How to compile:
same as weston. To disable, use option: --disable-ivi-shell for configure.

How to configure weston.ini:
reference ini file will be generated in <build_dir>/ivi-shell.

How to run:
same as weston. exec weston.

How to use UI:
http://lists.freedesktop.org/archives/wayland-devel/attachments/20140625/abbfc064/attachment-0001.png