summaryrefslogtreecommitdiff
path: root/README
blob: 5f18509b6888680b883ba5a17c0dc53f52af9e05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
This is the QtWayland module.

The QtWayland module consists of two parts:

Wayland platform plugin:
    Enables Qt applications to be run as Wayland clients.

QtCompositor API:
    Enables the creation of Wayland compositors using Qt and QtQuick.

By default only the Wayland platform plugin is built.  If you want to build the
experimental QtCompositor API then you need to set the qmake CONFIG variable to
include "wayland-compositor" when building the QtWayland module:

qmake CONFIG+=wayland-compositor
make

Note: make sure the source tree is clean before running those commands. If in
doubt, run git clean -f -d -x.

To build the QtWayland module you need the external dependencies:
xkbcommon 0.2.0 - http://xkbcommon.org/
wayland 1.6.0 - http://wayland.freedesktop.org/

QtCompositor supports loading client buffer integrations that don't use the
wayland-egl interfaces. These client buffer integrations are picked up by
QtCompositor as plugins. To specify what plugin to load use the environment
variable QT_WAYLAND_CLIENT_BUFFER_INTEGRATION in the environment where the
compositor is started. The compositor will broadcast to the clients which
hardware integration to load when using the generic platformplugin "wayland". If
no client buffer integration is specifided, then the wayland-egl plugin will be
loaded. Please note that no Weston clients will work if the non standard
wayland-egl client buffer integration is used.

To start the qwindow-compositor with the xcomposite-egl integration then start
the compositor as follows:
QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-egl ./qwindow-compositor

Now it should be possible to start an application in a separate terminal. ie:
$QTBASEDIR/examples/opengl/hellowindow/hellowindow -platform wayland --single

Available client buffer integrations are:
wayland-egl (this is the default)
brcm
xcomposite-egl
xcomposite-glx

Shell Integration:

Some platforms, especially non-desktop ones, use a custom Wayland shell
extension. These are tailored to the specific embedded form factor better than
the generic wl_shell or xdg_shell extensions that target desktop systems.

Instead of adding multiple protocol implementations into the QPA plugin,
a plugin architecture is used for selecting the shell integration;
when creating a shell surface, the protocol to use is taken from
the QT_WAYLAND_SHELL_INTEGRATION environment variable. If one is not provided or
not pointing to a valid plugin, wl_shell or xdg_shell will be used as fallbacks.

Example Usage:

Starting the hellowindow example application (one of the examples for qtbase)
with ivi-shell integration:

    QT_WAYLAND_SHELL_INTEGRATION=ivi-shell ./hellowindow -platform wayland

Available Shell Integrations:

    * ivi-shell


We hang out at #qt-labs and #qt-lighthouse on freenode if you have any questions