summaryrefslogtreecommitdiffstats
path: root/README
blob: 3121878ca0b613d96312f2795a5b6d15221d9a33 (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
This is the QtWayland module.

The QtWayland module consists of two parts:

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

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

Please note that QtWaylandCompositor and the QtWaylandClientExtension are
currently in tech preview. This means that all APIs in the QtWayland module are
preliminary and subject to change. The Wayland platform plugin remains officially
supported.

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/

QtWaylandCompositor supports loading client buffer integrations that don't use
the wayland-egl interfaces. These client buffer integrations are picked up by
QtWaylandCompositor 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