summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandoutput.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-07-29 13:48:26 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:36 +0200
commit964eb66e37dbbb9ff6736c3b40e8fcc76d1b8d61 (patch)
tree77c728990a42970fe6151cc8a593a8a1a5dc06ed /src/compositor/compositor_api/qwaylandoutput.cpp
parent7c5d8fc7fd9ea7391e97bde950f5a866ae1f78b6 (diff)
Move surface management to outputs
Diffstat (limited to 'src/compositor/compositor_api/qwaylandoutput.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandoutput.cpp35
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