summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-07-30 12:06:24 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:41 +0200
commitfcd376a4ffb4a2efc8352ce1777e9f869e4e5206 (patch)
treeab6959cf4d777549dca119d318240b9b724860ce /examples
parent400c6d24c2ca3215cd38a30cd3eb530c3b2e970c (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.qml2
-rw-r--r--examples/wayland/qml-compositor/main.cpp10
-rw-r--r--examples/wayland/qwindow-compositor/qwindowcompositor.cpp8
-rw-r--r--examples/wayland/server-buffer/compositor/main.cpp6
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;