summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandoutput.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-09-16 15:05:00 +0200
committerPaul Olav Tvete <paul.tvete@theqtcompany.com>2015-09-18 14:48:15 +0000
commit07dffc46ff14a745df020a987c2a17fbfd90d6fe (patch)
tree7682c357a9936b1c84826197ed18b7561f460532 /src/compositor/compositor_api/qwaylandoutput.cpp
parent660880a997a892e7f65d0d7b4e2f974fc4e487ad (diff)
Remove the QWaylandOutputSpace
We don't need this abstraction anymore since we don't have global coordinates in the core api anymore Change-Id: I553a736a0e71026447d6a0af3f8a64607b8c8f06 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/compositor/compositor_api/qwaylandoutput.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandoutput.cpp72
1 files changed, 29 insertions, 43 deletions
diff --git a/src/compositor/compositor_api/qwaylandoutput.cpp b/src/compositor/compositor_api/qwaylandoutput.cpp
index 730b0f7af..689c4919f 100644
--- a/src/compositor/compositor_api/qwaylandoutput.cpp
+++ b/src/compositor/compositor_api/qwaylandoutput.cpp
@@ -42,7 +42,7 @@
#include <QtWaylandCompositor/QWaylandView>
#include <QtWaylandCompositor/private/qwaylandsurface_p.h>
-#include <QtWaylandCompositor/private/qwaylandoutputspace_p.h>
+#include <QtWaylandCompositor/private/qwaylandcompositor_p.h>
#include <QtCore/QCoreApplication>
#include <QtCore/QtMath>
@@ -100,7 +100,7 @@ static QtWaylandServer::wl_output::transform toWlTransform(const QWaylandOutput:
QWaylandOutputPrivate::QWaylandOutputPrivate()
: QtWaylandServer::wl_output()
- , outputSpace(Q_NULLPTR)
+ , compositor(Q_NULLPTR)
, window(Q_NULLPTR)
, subpixel(QWaylandOutput::SubpixelUnknown)
, transform(QWaylandOutput::TransformNormal)
@@ -116,11 +116,6 @@ QWaylandOutputPrivate::QWaylandOutputPrivate()
QWaylandOutputPrivate::~QWaylandOutputPrivate()
{
- Q_Q(QWaylandOutput);
- if (outputSpace) {
- QWaylandOutputSpacePrivate::get(outputSpace)->removeOutput(q);
- outputSpace = Q_NULLPTR;
- }
}
void QWaylandOutputPrivate::output_bind_resource(Resource *resource)
@@ -191,17 +186,20 @@ QWaylandOutput::QWaylandOutput()
{
}
-QWaylandOutput::QWaylandOutput(QWaylandOutputSpace *outputSpace, QWindow *window)
+QWaylandOutput::QWaylandOutput(QWaylandCompositor *compositor, QWindow *window)
: QObject(*new QWaylandOutputPrivate())
{
Q_D(QWaylandOutput);
- d->outputSpace = outputSpace;
+ d->compositor = compositor;
d->window = window;
- QWaylandCompositorPrivate::get(outputSpace->compositor())->addPolishObject(this);
+ QWaylandCompositorPrivate::get(compositor)->addPolishObject(this);
}
QWaylandOutput::~QWaylandOutput()
{
+ Q_D(QWaylandOutput);
+ if (d->compositor)
+ QWaylandCompositorPrivate::get(d->compositor)->removeOutput(this);
}
void QWaylandOutput::initialize()
@@ -209,20 +207,19 @@ void QWaylandOutput::initialize()
Q_D(QWaylandOutput);
Q_ASSERT(!d->initialized);
- Q_ASSERT(d->outputSpace);
+ Q_ASSERT(d->compositor);
+ Q_ASSERT(d->compositor->isCreated());
Q_ASSERT(d->window);
- Q_ASSERT(d->outputSpace->compositor());
- Q_ASSERT(d->outputSpace->compositor()->isCreated());
d->mode.size = d->window->size();
- QWaylandOutputSpacePrivate::get(d->outputSpace)->addOutput(this);
+ QWaylandCompositorPrivate::get(d->compositor)->addOutput(this);
QObject::connect(d->window, &QWindow::widthChanged, this, &QWaylandOutput::setWidth);
QObject::connect(d->window, &QWindow::heightChanged, this, &QWaylandOutput::setHeight);
QObject::connect(d->window, &QObject::destroyed, this, &QWaylandOutput::handleWindowDestroyed);
- d->init(d->compositor()->display(), 2);
+ d->init(d->compositor->display(), 2);
d->initialized = true;
}
@@ -242,45 +239,39 @@ struct ::wl_resource *QWaylandOutput::resourceForClient(QWaylandClient *client)
return Q_NULLPTR;
}
-QWaylandOutputSpace *QWaylandOutput::outputSpace() const
+void QWaylandOutput::update()
+{
+ Q_D(QWaylandOutput);
+ if (!d->window)
+ return;
+ d->window->requestUpdate();
+}
+
+QWaylandCompositor *QWaylandOutput::compositor() const
{
- return d_func()->outputSpace;
+ return d_func()->compositor;
}
-void QWaylandOutput::setOutputSpace(QWaylandOutputSpace *outputSpace)
+void QWaylandOutput::setCompositor(QWaylandCompositor *compositor)
{
Q_D(QWaylandOutput);
- if (d->outputSpace == outputSpace)
+ if (d->compositor == compositor)
return;
if (d->initialized) {
- qWarning("Setting QWaylandOutputSpace %p on QWaylandOutput %p is not supported after QWaylandOutput has been initialized\n", outputSpace, this);
+ qWarning("Setting QWaylandCompositor %p on QWaylandOutput %p is not supported after QWaylandOutput has been initialized\n", compositor, this);
return;
}
- if (d->outputSpace && d->outputSpace->compositor() != outputSpace->compositor()) {
+ if (d->compositor && d->compositor != compositor) {
qWarning("Possible initialization error. Moving QWaylandOutput %p between compositor instances.\n", this);
}
- if (!d->outputSpace) {
- QWaylandCompositorPrivate::get(outputSpace->compositor())->addPolishObject(this);
- }
- d->outputSpace = outputSpace;
- emit outputSpaceChanged();
-}
+ d->compositor = compositor;
-void QWaylandOutput::update()
-{
- QRect rect(QPoint(0, 0), window()->size());
- QRegion region(rect);
- QExposeEvent *event = new QExposeEvent(region);
- QCoreApplication::postEvent(window(), event);
+ QWaylandCompositorPrivate::get(compositor)->addPolishObject(this);
}
-QWaylandCompositor *QWaylandOutput::compositor() const
-{
- return d_func()->compositor();
-}
QString QWaylandOutput::manufacturer() const
{
@@ -543,7 +534,7 @@ void QWaylandOutput::sendFrameCallbacks()
surfacemapper.surface->sendFrameCallbacks();
}
}
- wl_display_flush_clients(d->compositor()->display());
+ wl_display_flush_clients(d->compositor->display());
}
void QWaylandOutput::surfaceEnter(QWaylandSurface *surface)
@@ -582,11 +573,6 @@ void QWaylandOutput::setHeight(int newHeight)
setGeometry(QRect(d->position, s));
}
-QPointF QWaylandOutput::mapToOutputSpace(const QPointF &point)
-{
- return point + d_func()->position;
-}
-
void QWaylandOutput::handleWindowDestroyed()
{
Q_D(QWaylandOutput);