diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-07-29 13:48:26 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-28 13:09:36 +0200 |
commit | 964eb66e37dbbb9ff6736c3b40e8fcc76d1b8d61 (patch) | |
tree | 77c728990a42970fe6151cc8a593a8a1a5dc06ed /src/compositor/compositor_api/qwaylandoutput.cpp | |
parent | 7c5d8fc7fd9ea7391e97bde950f5a866ae1f78b6 (diff) |
Move surface management to outputs
Change-Id: I427e576a4e0834d6266af2670f7ff47e078153d4
Diffstat (limited to 'src/compositor/compositor_api/qwaylandoutput.cpp')
-rw-r--r-- | src/compositor/compositor_api/qwaylandoutput.cpp | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/src/compositor/compositor_api/qwaylandoutput.cpp b/src/compositor/compositor_api/qwaylandoutput.cpp index 3e6e9c33f..a055e3969 100644 --- a/src/compositor/compositor_api/qwaylandoutput.cpp +++ b/src/compositor/compositor_api/qwaylandoutput.cpp @@ -63,7 +63,6 @@ QWaylandOutput::QWaylandOutput(QWaylandCompositor *compositor, QWindow *window, QWaylandOutput::~QWaylandOutput() { d_ptr->compositor()->removeOutput(this); - delete d_ptr; } QWaylandOutput *QWaylandOutput::fromResource(wl_resource *resource) @@ -241,17 +240,37 @@ QWindow *QWaylandOutput::window() const QtWayland::Output *QWaylandOutput::handle() { - return d_ptr; + return d_ptr.data(); +} + +void QWaylandOutput::frameStarted() +{ + d_ptr->frameStarted(); +} + +void QWaylandOutput::sendFrameCallbacks(QList<QWaylandSurface *> visibleSurfaces) +{ + d_ptr->sendFrameCallbacks(visibleSurfaces); } QList<QWaylandSurface *> QWaylandOutput::surfaces() const { - QList<QWaylandSurface *> list; - Q_FOREACH (QWaylandSurface *surface, d_ptr->compositor()->waylandCompositor()->surfaces()) { - if (surface->outputs().contains(const_cast<QWaylandOutput *>(this))) - list.append(surface); - } - return list; + return d_ptr->surfaces(); +} + +QList<QWaylandSurface *> QWaylandOutput::surfacesForClient(QWaylandClient *client) const +{ + return d_ptr->surfacesForClient(client); +} + +void QWaylandOutput::addSurface(QWaylandSurface *surface) +{ + d_ptr->addSurface(surface); +} + +void QWaylandOutput::removeSurface(QWaylandSurface *surface) +{ + d_ptr->removeSurface(surface); } QT_END_NAMESPACE |