Skip to content

sailfishos/qtwayland

Repository files navigation

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.2.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


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