diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-07-30 12:06:24 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-28 13:09:41 +0200 |
commit | fcd376a4ffb4a2efc8352ce1777e9f869e4e5206 (patch) | |
tree | ab6959cf4d777549dca119d318240b9b724860ce /examples | |
parent | 400c6d24c2ca3215cd38a30cd3eb530c3b2e970c (diff) |
Introducing QWaylandOutputSpace
Its purpose is to make it possible to have multiscreen environments, and
also multiple multioutput environments
It is also an abstraction to make it clear that outputs are arranged in
a 2d space
Change-Id: I418509996a03b2ca1a12aec9c9e25e143a15a10f
Diffstat (limited to 'examples')
-rw-r--r-- | examples/wayland/pure-qml/qml/main.qml | 2 | ||||
-rw-r--r-- | examples/wayland/qml-compositor/main.cpp | 10 | ||||
-rw-r--r-- | examples/wayland/qwindow-compositor/qwindowcompositor.cpp | 8 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/main.cpp | 6 |
4 files changed, 17 insertions, 9 deletions
diff --git a/examples/wayland/pure-qml/qml/main.qml b/examples/wayland/pure-qml/qml/main.qml index 8030f8efe..391f683e3 100644 --- a/examples/wayland/pure-qml/qml/main.qml +++ b/examples/wayland/pure-qml/qml/main.qml @@ -62,7 +62,7 @@ WaylandCompositor { function addScreen() { var screen = screenComponent.createObject(0, { "compositor" : compositor } ); - var output = compositor.addOutput(screen); + var output = compositor.primaryOutputSpace.addOutputWindow(screen); output.automaticFrameCallbacks = true; } diff --git a/examples/wayland/qml-compositor/main.cpp b/examples/wayland/qml-compositor/main.cpp index 489fac6e8..4cd1e791d 100644 --- a/examples/wayland/qml-compositor/main.cpp +++ b/examples/wayland/qml-compositor/main.cpp @@ -44,6 +44,7 @@ #include <QtCompositor/qwaylandsurfaceitem.h> #include <QtCompositor/qwaylandoutput.h> +#include <QtCompositor/qwaylandoutputspace.h> #include <QGuiApplication> #include <QTimer> @@ -63,6 +64,7 @@ class QmlCompositor : public QQuickView public: QmlCompositor() : m_fullscreenSurface(0) + , m_output(0) { m_compositor.setExtensionFlags(QWaylandCompositor::DefaultExtensions | QWaylandCompositor::SubSurfaceExtension); m_compositor.create(); @@ -72,7 +74,7 @@ public: setColor(Qt::black); winId(); m_compositor.addDefaultShell(); - m_compositor.createOutput(this, "", ""); + m_output = m_compositor.primaryOutputSpace()->addOutputWindow(this, "", ""); connect(this, SIGNAL(afterRendering()), this, SLOT(sendCallbacks())); connect(&m_compositor, &QWaylandCompositor::surfaceCreated, this, &QmlCompositor::onSurfaceCreated); @@ -124,9 +126,10 @@ private slots: void sendCallbacks() { if (m_fullscreenSurface) - m_compositor.sendFrameCallbacks(QList<QWaylandSurface *>() << m_fullscreenSurface); + m_fullscreenSurface->sendFrameCallbacks(); + else - m_compositor.sendFrameCallbacks(m_compositor.surfaces()); + m_output->sendFrameCallbacks(); } void onSurfaceCreated(QWaylandSurface *surface) { @@ -151,6 +154,7 @@ protected: private: QWaylandQuickCompositor m_compositor; QWaylandQuickSurface *m_fullscreenSurface; + QWaylandOutput *m_output; }; int main(int argc, char *argv[]) diff --git a/examples/wayland/qwindow-compositor/qwindowcompositor.cpp b/examples/wayland/qwindow-compositor/qwindowcompositor.cpp index 5e7c8136c..50d24cffc 100644 --- a/examples/wayland/qwindow-compositor/qwindowcompositor.cpp +++ b/examples/wayland/qwindow-compositor/qwindowcompositor.cpp @@ -57,6 +57,7 @@ #include <QtCompositor/qwaylandbufferref.h> #include <QtCompositor/qwaylandsurfaceview.h> #include <QtCompositor/qwaylandoutput.h> +#include <QtCompositor/qwaylandoutputspace.h> QT_BEGIN_NAMESPACE @@ -122,7 +123,8 @@ QWindowCompositor::QWindowCompositor(CompositorWindow *window) setRetainedSelectionEnabled(true); - createOutput(window, "", ""); + primaryOutputSpace()->addOutputWindow(window, "", ""); + addDefaultShell(); } @@ -303,7 +305,7 @@ QWaylandSurfaceView *QWindowCompositor::viewAt(const QPointF &point, QPointF *lo void QWindowCompositor::render() { m_window->makeCurrent(); - frameStarted(); + primaryOutput()->frameStarted(); cleanupGraphicsResources(); @@ -324,7 +326,7 @@ void QWindowCompositor::render() } m_textureBlitter->release(); - sendFrameCallbacks(surfaces()); + primaryOutput()->sendFrameCallbacks(); // N.B. Never call glFinish() here as the busylooping with vsync 'feature' of the nvidia binary driver is not desirable. m_window->swapBuffers(); diff --git a/examples/wayland/server-buffer/compositor/main.cpp b/examples/wayland/server-buffer/compositor/main.cpp index 50fc9d390..b34db1630 100644 --- a/examples/wayland/server-buffer/compositor/main.cpp +++ b/examples/wayland/server-buffer/compositor/main.cpp @@ -42,6 +42,7 @@ #include "qwaylandquickcompositor.h" #include "qwaylandsurface.h" #include "qwaylandsurfaceitem.h" +#include "qwaylandoutputspace.h" #include <QGuiApplication> #include <QTimer> @@ -83,7 +84,7 @@ public: m_view.setResizeMode(QQuickView::SizeRootObjectToView); m_view.setColor(Qt::black); m_view.create(); - createOutput(&m_view, "", ""); + m_output = primaryOutputSpace()->addOutputWindow(&m_view, "", ""); addDefaultShell(); connect(&m_view, &QQuickView::afterRendering, this, &QmlCompositor::sendCallbacks); @@ -131,7 +132,7 @@ private slots: } void sendCallbacks() { - sendFrameCallbacks(surfaces()); + m_output->sendFrameCallbacks(); } void initiateServerBuffer() @@ -237,6 +238,7 @@ protected: private: QQuickView m_view; + QWaylandOutput *m_output; QtWayland::ServerBuffer *m_server_buffer_32_bit; ServerBufferItem *m_server_buffer_item_32_bit; QtWayland::ServerBuffer *m_server_buffer_8_bit; |