diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-09-03 12:40:19 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-09-04 16:12:47 +0200 |
commit | 4c5a796e96a66c18afbde0577d8b912a618fe710 (patch) | |
tree | e9b3aa53541f67d58dbf1599ae3181ac2cdae2ae /examples | |
parent | a814616ff34bf5901fc299c6ba91c80cad39922d (diff) |
Make it possible to construct QWaylandOutput
This requires QWaylandOutput to be initialized. This will happend when
the QWaylandCompositor of the QWaylandOutputSpace that is set on the
QWaylandOutput is created. QWaylandCompositor will send or post a Polish
event to the QWaylandOutput which again will call
QWaylandOutput::initialize. This function will create the global that
will be put on the wl_displays registry
This makes it possible to Create WaylandOutputs in QML (see the pure-qml
example) and also gives a
better programming model in C++
Change-Id: Iaf907ae18a283678eda6d04390dc9790ae0bced8
Diffstat (limited to 'examples')
-rw-r--r-- | examples/wayland/pure-qml/qml/Screen.qml | 51 | ||||
-rw-r--r-- | examples/wayland/pure-qml/qml/main.qml | 9 | ||||
-rw-r--r-- | examples/wayland/qml-compositor/main.cpp | 4 | ||||
-rw-r--r-- | examples/wayland/qwindow-compositor/qwindowcompositor.cpp | 2 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/main.cpp | 4 |
5 files changed, 35 insertions, 35 deletions
diff --git a/examples/wayland/pure-qml/qml/Screen.qml b/examples/wayland/pure-qml/qml/Screen.qml index 1faaa2cce..61e044cbf 100644 --- a/examples/wayland/pure-qml/qml/Screen.qml +++ b/examples/wayland/pure-qml/qml/Screen.qml @@ -42,35 +42,38 @@ import QtQuick 2.0 import QtQuick.Window 2.2 import QtWayland.Compositor 1.0 -Window { - id: screen - property alias surfacesArea: background +WaylandOutput { + id: output + property alias surfaceArea: background + window: Window { + id: screen - property QtObject compositor + property QtObject output - width: 1024 - height: 760 - visible: true + width: 1024 + height: 760 + visible: true - WaylandMouseTracker { - id: mouseTracker - anchors.fill: parent - - enableWSCursor: true - Image { - id: background + WaylandMouseTracker { + id: mouseTracker anchors.fill: parent - fillMode: Image.Tile - source: "qrc:/images/background.jpg" - smooth: true - } - WaylandCursorItem { - id: cursor - inputEventsEnabled: false - x: mouseTracker.mouseX - hotspotX - y: mouseTracker.mouseY - hotspotY - inputDevice: output.compositor.defaultInputDevice + enableWSCursor: true + Image { + id: background + anchors.fill: parent + fillMode: Image.Tile + source: "qrc:/images/background.jpg" + smooth: true + } + WaylandCursorItem { + id: cursor + inputEventsEnabled: false + x: mouseTracker.mouseX - hotspotX + y: mouseTracker.mouseY - hotspotY + + inputDevice: output.compositor.defaultInputDevice + } } } } diff --git a/examples/wayland/pure-qml/qml/main.qml b/examples/wayland/pure-qml/qml/main.qml index 66382c479..61b88574d 100644 --- a/examples/wayland/pure-qml/qml/main.qml +++ b/examples/wayland/pure-qml/qml/main.qml @@ -66,7 +66,7 @@ WaylandCompositor { } onCreateShellSurface: { - var item = chromeComponent.createObject(primarySurfacesArea, { "surface": surface } ); + var item = chromeComponent.createObject(primaryOutput.surfaceArea, { "surface": surface } ); var shellSurface = shellSurfaceComponent.createObject(); shellSurface.initialize(defaultShell, surface, item.view, client, id); } @@ -78,14 +78,11 @@ WaylandCompositor { ] function addScreen() { - var screen = screenComponent.createObject(0, { "compositor" : compositor } ); - primarySurfacesArea = screen.surfacesArea; - var output = compositor.primaryOutputSpace.addOutputWindow(screen); - output.automaticFrameCallback = true; + var screen = screenComponent.createObject(0, { "outputSpace" : primaryOutputSpace } ); } Component.onCompleted: { - addScreen(); + addScreen(WaylandOutput.PrimaryOutput); } } diff --git a/examples/wayland/qml-compositor/main.cpp b/examples/wayland/qml-compositor/main.cpp index 861a0be4c..a3bd6671f 100644 --- a/examples/wayland/qml-compositor/main.cpp +++ b/examples/wayland/qml-compositor/main.cpp @@ -43,7 +43,7 @@ #include "qwaylandquicksurface.h" #include <QtCompositor/qwaylandquickitem.h> -#include <QtCompositor/qwaylandoutput.h> +#include <QtCompositor/QWaylandQuickOutput> #include <QtCompositor/qwaylandoutputspace.h> #include <QGuiApplication> @@ -72,7 +72,7 @@ public: setResizeMode(QQuickView::SizeRootObjectToView); setColor(Qt::black); winId(); - m_output = m_compositor.primaryOutputSpace()->addOutputWindow(this); + m_output = new QWaylandQuickOutput(m_compositor.primaryOutputSpace(), this); connect(this, SIGNAL(afterRendering()), this, SLOT(sendCallbacks())); connect(&m_compositor, &QWaylandCompositor::surfaceCreated, this, &QmlCompositor::onSurfaceCreated); diff --git a/examples/wayland/qwindow-compositor/qwindowcompositor.cpp b/examples/wayland/qwindow-compositor/qwindowcompositor.cpp index 8c97f1d55..7522e3cdb 100644 --- a/examples/wayland/qwindow-compositor/qwindowcompositor.cpp +++ b/examples/wayland/qwindow-compositor/qwindowcompositor.cpp @@ -147,7 +147,7 @@ void QWindowCompositor::create() { QWaylandCompositor::create(); - primaryOutputSpace()->addOutputWindow(m_window); + new QWaylandOutput(primaryOutputSpace(), m_window); m_renderScheduler.setSingleShot(true); connect(&m_renderScheduler, &QTimer::timeout, this, &QWindowCompositor::render); diff --git a/examples/wayland/server-buffer/compositor/main.cpp b/examples/wayland/server-buffer/compositor/main.cpp index d6e09dca4..36a9ca9c9 100644 --- a/examples/wayland/server-buffer/compositor/main.cpp +++ b/examples/wayland/server-buffer/compositor/main.cpp @@ -56,7 +56,7 @@ #include <QQuickView> #include "qwayland-server-share-buffer.h" -#include <QtCompositor/qwaylandoutput.h> +#include <QtCompositor/QWaylandQuickOutput> #include <QtCompositor/QWaylandCompositor> #include <QtCompositor/QWaylandQuickItem> #include <QtCompositor/private/qwaylandcompositor_p.h> @@ -86,7 +86,7 @@ public: m_view.setResizeMode(QQuickView::SizeRootObjectToView); m_view.setColor(Qt::black); m_view.create(); - m_output = primaryOutputSpace()->addOutputWindow(&m_view); + m_output = new QWaylandQuickOutput(primaryOutputSpace(), &m_view); connect(&m_view, &QQuickView::afterRendering, this, &QmlCompositor::sendCallbacks); |