• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

coin/H09-Dec-2021-1312

config.tests/wayland_scanner/H09-Dec-2021-12757

dist/H09-Dec-2021-1,7021,239

features/H09-Dec-2021-5446

src/H09-Dec-2021-90,85454,371

.qmake.confH A D09-Dec-2021140 85

.tagH A D09-Dec-202141 21

LICENSE.FDLH A D09-Dec-202122.4 KiB451373

LICENSE.GPL2H A D09-Dec-202117.7 KiB340281

LICENSE.GPL3H A D09-Dec-202134.3 KiB675553

LICENSE.GPL3-EXCEPTH A D09-Dec-202135.5 KiB705574

LICENSE.LGPL3H A D09-Dec-20217.5 KiB166128

READMEH A D09-Dec-20213.7 KiB9367

configure.jsonH A D09-Dec-202177 76

qtwayland.proH A D03-May-202286 54

sync.profileH A D09-Dec-20214.1 KiB9594

README

1This is the QtWayland module.
2
3The QtWayland module consists of two parts:
4
5Wayland platform plugin:
6    Enables Qt applications to be run as Wayland clients.
7
8QtWaylandCompositor API:
9    Enables the creation of Wayland compositors using Qt and QtQuick.
10
11To build the QtWayland module you need the external dependencies:
12xkbcommon - http://xkbcommon.org/
13wayland - http://wayland.freedesktop.org/
14
15QtWaylandCompositor supports loading client buffer integrations that don't use
16the wayland-egl interfaces. These client buffer integrations are picked up by
17QtWaylandCompositor as plugins. To specify what plugin to load use the environment
18variable QT_WAYLAND_CLIENT_BUFFER_INTEGRATION in the environment where the
19compositor is started. The compositor will broadcast to the clients which
20hardware integration to load when using the generic platformplugin "wayland". If
21no client buffer integration is specified, then the wayland-egl plugin will be
22loaded. Please note that no Weston clients will work if the non standard
23wayland-egl client buffer integration is used.
24
25To start the qwindow-compositor with the xcomposite-glx integration then start
26the compositor as follows:
27QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-glx ./qwindow-compositor
28
29Now it should be possible to start an application in a separate terminal. ie:
30$QTBASEDIR/examples/opengl/hellowindow/hellowindow -platform wayland --single
31
32Available client buffer integrations are:
33wayland-egl (this is the default)
34brcm
35xcomposite-egl
36xcomposite-glx
37
38Testing a Qt-based compositor on X11:
39
40Most QWidget-based applications will use shared memory buffers, which work on
41all hardware. OpenGL and Qt Quick applications need a way to send graphics
42memory buffers from client to server. There are many options, and not all
43options work on all hardware.
44
45The X Composite buffer integration should work on all modern X servers. It
46can be used with either EGL or GLX as the OpenGL backend. This must match the
47backend used by the xcb platform plugin. (Normally GLX is the default for Qt
48applications running on X11.) To use the X Composite buffer sharing with EGL,
49start the compositor as follows:
50
51QT_XCB_GL_INTEGRATION=xcb_egl QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-egl ./pure-qml
52
53Using wayland-egl requires support from the driver. Intel integrated graphics
54are supported through the standard Mesa drivers. For NVidia, driver version
55364.12 or newer is required, and Qt must be configured with "-opengl es2".
56Run the compositor as follows:
57
58QT_XCB_GL_INTEGRATION=xcb_egl QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=wayland-egl ./minimal-qml
59
60Please note that some NVidia drivers may require early EGL initialization. Qt
61clients normally use the buffer integration communicated by the compositor.
62To set the client-side buffer integration manually, run clients with
63"-platform wayland-egl".
64
65Shell Integration:
66
67Some platforms, especially non-desktop ones, use a custom Wayland shell
68extension. These are tailored to the specific embedded form factor better than
69the generic wl_shell or xdg_shell extensions that target desktop systems.
70Custom shell protocols are added through shell integration plugins.
71
72Which shell integration to use is determined by the QT_WAYLAND_SHELL_INTEGRATION
73environment variable. If no shell is specified, the default is to try shells in
74the following order: xdg-shell, xdg-shell-v6, wl-shell and then ivi-shell.
75
76Example Usage:
77
78Starting the hellowindow example application (one of the examples for qtbase)
79with ivi-shell integration:
80
81    QT_WAYLAND_SHELL_INTEGRATION=ivi-shell ./hellowindow -platform wayland
82
83Available Shell Integrations:
84
85    * ivi-shell
86    * wl-shell (deprecated)
87    * xdg-shell
88    * xdg-shell-v5 (deprecated)
89    * xdg-shell-v6
90
91We hang out at #qt-labs and #qt-lighthouse on freenode if you have any questions
92
93