/wayland-ivi-extension

Extensions to the Wayland protocol for InVehcle Infotainment

Primary LanguageC++Apache License 2.0Apache-2.0

Sections in this file describe:
- How to build
- Example applications
- How to test
- Features

How to build on different platforms
====================================

Pre-requisite: 
- Weston
- CMake required (version 2.6 or higher)
- Open GLES and EGL for example applications
- Gtest for the test suite

Build up
1. Pull the current codebase form the git repo
   E.g. git clone http://git.projects.genivi.org/wayland-ivi-extension.git

2. Create a build directory
   E.g mkdir build_ivi_extension

3. In <build-dir> Generate build system for your platform using CMake.
   E.g. cd <build-dir>
        cmake -DCMAKE_TOOLCHAIN_FILE=<your setting *.cmake> ../

4. Start the build and install
   
   E.g. sudo make install

Example applications
====================================
  
Pre-requisite:
- Modify weston.ini to use ivi-shell.so
  Example:
    [core]
    shell=ivi-shell.so

    [ivi-shell]
    ivi-module=ivi-controller.so
    ivi-input-module=ivi-input-controller.so

- Set Environmental values
  Example:
    export XDG_RUNTIME_DIR=/var/run/<your user name>/1000
    export LD_LIBRARY_PATH=<your installation path>/lib 

Start-up Weston:
   Example: <your installation path>/bin/weston

Start-up HMI helper:
   Example: <your installation path>/bin/layer-add-surfaces 1000 1

EGLWLMockNavigation:
   Example: <your installation path>/bin/EGLWLMockNavigation

How to test
====================================
1. Build the testsuite by setting BUILD_ILM_API_TESTS option.
   Example: cmake -DBUILD_ILM_API_TESTS
2. After starting up Weston run the testsuite.
   Example: <your installation path>/bin/ivi-layermanagement-api-test
            <your installation path>/bin/ivi-input-api-test

Features
====================================
ivi_share protocol:
 ivi-controller provides ivi_share protocol to share native buffer of other clients.
 A application which shared native buffer can create texture from it using EGL extension
 API (eglCreateImageKHR) and GL extension API (glEGLImageTargetTexture2DOES).
 And the texture can manipulate in your rendering scene.
 Example: <your installtion path>/bin/simple-ivi-share

 To build this feature, add the following line into toolchain file.
 option (IVI_SHARE "Enable ivi_share protocol" ON)