User Tools

Site Tools


subsystem:graphics:weston-ivi-shell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
subsystem:graphics:weston-ivi-shell [2015/09/30 17:03]
mbc
subsystem:graphics:weston-ivi-shell [2019/09/23 05:08] (current)
jeker updated dead link
Line 9: Line 9:
 ===== AGL Demonstration Platform ===== ===== AGL Demonstration Platform =====
  
-IVI-Shell is always built when [[https://​git.automotivelinux.org/​gerrit/​gitweb?​p=AGL/​meta-agl-demo.git;​a=blob;​f=README.md;​h=0722d30898c16e6aad27d1b25725210865c19478;​hb=HEAD#​l102|creating an "​agl-demo-platform"​ image]], but will only start automatically if you add the following lines to your //​conf/​local.conf//​ file :+IVI-Shell is always built when [[https://​git.automotivelinux.org/​gerrit/​gitweb?​p=AGL/​meta-agl-demo.git;​a=blob;​f=README.md;​h=0722d30898c16e6aad27d1b25725210865c19478;​hb=HEAD#​l102|creating an "​agl-demo-platform"​ image]], but will only start automatically if you add the following lines to your "//​conf/​local.conf//​" ​file :
  
 <​code>​IMAGE_INSTALL_append = " \ <​code>​IMAGE_INSTALL_append = " \
Line 15: Line 15:
     "</​code>​     "</​code>​
  
-or, in case the image has already been built, if you overwrite its ///​etc/​xdg/​weston/​weston.ini//​ file with **[[https://​git.automotivelinux.org/​gerrit/​gitweb?​p=AGL/​meta-agl.git;​a=blob_plain;​f=meta-ivi-common/​recipes-graphics/​wayland/​weston-ivi-shell/​weston.ini.ivi-shell|this one]]**.+or, in case the image has already been built, if you overwrite its "///​etc/​xdg/​weston/​weston.ini//​" ​file with **[[https://​git.automotivelinux.org/​gerrit/​gitweb?​p=AGL/​meta-agl.git;​a=blob_plain;​f=meta-ivi-common/​recipes-graphics/​wayland/​weston-ivi-shell/​weston.ini.ivi-shell|this one]]**. ​Or:
  
 +<​code>​
 +[core]
 +shell=ivi-shell.so
 +backend=drm-backend.so
 +
 +[ivi-shell]
 +ivi-module=ivi-controller.so
 +</​code>​
 +
 +If everything went fine, you should see a display similar to [[http://​iot.bzh/​images/​images/​weston-ivi-shell.png|this one]].
 +
 +Note also that you might have to turn the screen adding the following lines to "///​etc/​xdg/​weston/​weston.ini//"​
 +
 +<​code>​
 +[output]
 +name=HDMI-A-1
 +transform=270
 +</​code>​
 +
 +----
  
 ===== General architecture ===== ===== General architecture =====
Line 22: Line 42:
 IVI-Shell provides 2 protocols : IVI-Shell provides 2 protocols :
  
-* **ivi-application** : client-side protocol, needed for client applications to be actually shown +* **ivi-application** : client-side protocol, needed for client applications to be actually shown. Some toolkits/frameworks supporting it currently :
- +
-Toolkits/frameworks supporting it currently ​include ​:+
   * **//Qt//** : [[https://​git.automotivelinux.org/​gerrit/​gitweb?​p=AGL/​meta-agl-demo.git;​a=blob;​f=recipes- ​ qt/​qt5/​qtwayland/​0021-Implement-initial-IVI-Shell- ​ support.patch;​h=8723def26c3e093580265410389c087d84326a48;​hb=HEAD|ad-hoc patch]]   * **//Qt//** : [[https://​git.automotivelinux.org/​gerrit/​gitweb?​p=AGL/​meta-agl-demo.git;​a=blob;​f=recipes- ​ qt/​qt5/​qtwayland/​0021-Implement-initial-IVI-Shell- ​ support.patch;​h=8723def26c3e093580265410389c087d84326a48;​hb=HEAD|ad-hoc patch]]
   * **//EFL//** : [[https://​git.enlightenment.org/​core/​efl.git/​commit/?​id=50287ab731d4d87170238b365203e830edc038d5|Git commit]]   * **//EFL//** : [[https://​git.enlightenment.org/​core/​efl.git/​commit/?​id=50287ab731d4d87170238b365203e830edc038d5|Git commit]]
Line 31: Line 49:
 * **ivi-hmi-controller** : server-side protocol, allowing customization of shell behavior and look and feel. * **ivi-hmi-controller** : server-side protocol, allowing customization of shell behavior and look and feel.
  
 +----
  
 ===== Implementation examples ===== ===== Implementation examples =====
Line 42: Line 61:
 xdg_surface = xdg_shell_get_xdg_surface (xdg_shell, wl_surface);</​code>​ xdg_surface = xdg_shell_get_xdg_surface (xdg_shell, wl_surface);</​code>​
  
-IVI-Shell supports creating an //​ivi_surface//​ on top of a //​wl_surface//,​ along with a **//unique ID//** +IVI-Shell supports creating an //​ivi_surface//​ on top of a //​wl_surface//,​ along with a //unique ID// : 
 <​code>​struct ivi_surface *ivi_surface;​ <​code>​struct ivi_surface *ivi_surface;​
 uint32_t id;   // Global numeral ID identifying a managed surface uint32_t id;   // Global numeral ID identifying a managed surface
 ivi_surface = ivi_application_surface_create(id,​ wl_surface);</​code>​ ivi_surface = ivi_application_surface_create(id,​ wl_surface);</​code>​
 +
 +----
 +
 +===== Extension features =====
 +
 +The **[[http://​git.projects.genivi.org/?​p=wayland-ivi-extension.git|wayland-ivi-extension]]** project brings additional features to IVI-Shell, including :
 +
 +  * **ivi-controller** plugin : adds support for getting pointers to //​native_handle//​ and //​wl_surface//​ objects managed by //​wl_shell//​ :
 +<​code>​get_native_handle()
 +native_handle</​code>​
 +
 +  * **IVISurfaceCreator** command-line tool : associates a Global ID to a //​wl_surface//​ manually. The surface can then be controlled by using the ivi-controller plugin or ivi layout APIs.
 +
 +<​code>​$ IVISurfaceCreator --help
 +Usage: IVISurfaceCreator <Process ID> <Window Title> <​IVI-Surface ID></​code>​
 +
 +  * **EGLWLMockNavigation** demonstration : uses ivi layout APIs to show an accelerated EGL window with a sample animated scene.
 +
 +Screeshot [[http://​iot.bzh/​images/​images/​renesas_agl_wayland-ivi-extension-1.jpg|here]].
 +
 +==== Additional information ====
 +
 +Additional information regarding wayland-ivi-extension,​ most notably detailed design and HOWTO, can be found on the **GENIVI wiki** :
 +[[https://​at.projects.genivi.org/​wiki/​display/​PROJ/​Wayland+IVI+Extension+Design]]
subsystem/graphics/weston-ivi-shell.1443632602.txt.gz · Last modified: 2015/09/30 17:03 by mbc