User Tools

Site Tools


subsystem:graphics:weston-ivi-shell

This is an old revision of the document!


Weston IVI-Shell

Weston IVI-Shell provides a shell plugin for the Weston compositor, implementing the GENIVI API for In-Vehicle Infotainment.

Project site : http://cgit.freedesktop.org/wayland/weston/tree/ivi-shell


AGL Demonstration Platform

IVI-Shell is always built when creating an "agl-demo-platform" image, but will only start automatically if you add the following lines to your conf/local.conf file :

IMAGE_INSTALL_append = " \
    weston-ivi-shell-config \
    "

or, in case the image has already been built, if you overwrite its /etc/xdg/weston/weston.ini file with this one.

General architecture

IVI-Shell provides 2 protocols :

* ivi-application : client-side protocol, needed for client applications to be actually shown ;

Toolkits/frameworks supporting it currently include :

* ivi-hmi-controller : server-side protocol, allowing customization of shell behavior and look and feel.

Implementation examples

If we wanted to use wl_shell, we would create a wl_shell_surface on top of a wl_surface :

struct wl_shell_surface *shell_surface;
shell_surface = wl_shell_get_shell_surface (wl_shell, wl_surface);

Similarly, to use xdg_shell, we would create a xdg_surface on top of a wl_surface :

struct xdg_surface *xdg_surface;
xdg_surface = xdg_shell_get_xdg_surface (xdg_shell, wl_surface);

IVI-Shell supports creating an ivi_surface on top of a wl_surface, along with a unique ID :

struct ivi_surface *ivi_surface;
uint32_t id;   // Global numeral ID identifying a managed surface
ivi_surface = ivi_application_surface_create(id, wl_surface);
subsystem/graphics/weston-ivi-shell.1443632602.txt.gz · Last modified: 2015/09/30 17:03 by mbc