diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-09-16 15:05:00 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@theqtcompany.com> | 2015-09-18 14:48:15 +0000 |
commit | 07dffc46ff14a745df020a987c2a17fbfd90d6fe (patch) | |
tree | 7682c357a9936b1c84826197ed18b7561f460532 /src/compositor/compositor_api/qwaylandoutput.cpp | |
parent | 660880a997a892e7f65d0d7b4e2f974fc4e487ad (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.cpp | 72 |
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); |