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/qwaylandcompositor.cpp | |
parent | 7c5d8fc7fd9ea7391e97bde950f5a866ae1f78b6 (diff) |
Move surface management to outputs
Change-Id: I427e576a4e0834d6266af2670f7ff47e078153d4
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor.cpp')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.cpp | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp index 24df8ea77..95680b59b 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.cpp +++ b/src/compositor/compositor_api/qwaylandcompositor.cpp @@ -96,17 +96,6 @@ struct wl_display *QWaylandCompositor::waylandDisplay() const return m_compositor->wl_display(); } -void QWaylandCompositor::sendFrameCallbacks(QList<QWaylandSurface *> visibleSurfaces) -{ - m_compositor->sendFrameCallbacks(visibleSurfaces); -} - -void QWaylandCompositor::frameStarted() -{ - foreach (QtWayland::Surface *surf, m_compositor->surfaces()) - surf->frameStarted(); -} - void QWaylandCompositor::destroyClientForSurface(QWaylandSurface *surface) { destroyClient(surface->client()); @@ -117,30 +106,40 @@ void QWaylandCompositor::destroyClient(QWaylandClient *client) m_compositor->destroyClient(client); } -QList<QWaylandSurface *> QWaylandCompositor::surfacesForClient(QWaylandClient* client) const +#if QT_DEPRECATED_SINCE(5, 5) +void QWaylandCompositor::frameStarted() { - QList<QtWayland::Surface *> surfaces = m_compositor->surfaces(); - - QList<QWaylandSurface *> result; + foreach (QWaylandOutput *output, outputs()) + output->frameStarted(); +} - for (int i = 0; i < surfaces.count(); ++i) { - if (surfaces.at(i)->waylandSurface()->client() == client) { - result.append(surfaces.at(i)->waylandSurface()); - } +void QWaylandCompositor::sendFrameCallbacks(QList<QWaylandSurface *> visibleSurfaces) +{ + Q_FOREACH (QWaylandSurface *surface, visibleSurfaces) { + surface->handle()->sendFrameCallback(); } +} - return result; +QList<QWaylandSurface *> QWaylandCompositor::surfacesForClient(QWaylandClient* client) const +{ + QList<QWaylandSurface *> surfs; + foreach (QWaylandOutput *output, outputs()) + surfs.append(output->surfacesForClient(client)); + return surfs; } QList<QWaylandSurface *> QWaylandCompositor::surfaces() const { - QList<QtWayland::Surface *> surfaces = m_compositor->surfaces(); QList<QWaylandSurface *> surfs; - surfs.reserve(surfaces.count()); - foreach (QtWayland::Surface *s, surfaces) - surfs << s->waylandSurface(); + foreach (QWaylandOutput *output, outputs()) { + foreach (QWaylandSurface *surface, output->surfaces()) { + if (!surfs.contains(surface)) + surfs.append(surface); + } + } return surfs; } +#endif //QT_DEPRECATED_SINCE(5, 5) QList<QWaylandOutput *> QWaylandCompositor::outputs() const { |