summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandquickoutput.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-01-12 12:58:45 +0100
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:41 +0200
commit32f5fcd8940cb00ed1db78f4b8bb45be7f3747cd (patch)
tree72d49115be713c4112cd99170d3f97876b9e0a08 /src/compositor/compositor_api/qwaylandquickoutput.cpp
parente17588ea0e107d5d97dbd8cb8a4fae5bfc8ff1a1 (diff)
Optionally auto send framecallbacks for QWaylandQuickOutput
Diffstat (limited to 'src/compositor/compositor_api/qwaylandquickoutput.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandquickoutput.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickoutput.cpp b/src/compositor/compositor_api/qwaylandquickoutput.cpp
index 160164c7b..0c743c4f3 100644
--- a/src/compositor/compositor_api/qwaylandquickoutput.cpp
+++ b/src/compositor/compositor_api/qwaylandquickoutput.cpp
@@ -44,10 +44,14 @@ QWaylandQuickOutput::QWaylandQuickOutput(QWaylandCompositor *compositor, QQuickW
const QString &manufacturer, const QString &model)
: QWaylandOutput(compositor, window, manufacturer, model)
, m_updateScheduled(false)
+ , m_automaticFrameCallbacks(false)
{
connect(window, &QQuickWindow::beforeSynchronizing,
this, &QWaylandQuickOutput::updateStarted,
Qt::DirectConnection);
+
+ connect(window, &QQuickWindow::beforeRendering,
+ this, &QWaylandQuickOutput::doFrameCallbacks);
}
QQuickWindow *QWaylandQuickOutput::quickWindow() const
@@ -63,6 +67,16 @@ void QWaylandQuickOutput::update()
}
}
+bool QWaylandQuickOutput::automaticFrameCallbacks() const
+{
+ return m_automaticFrameCallbacks;
+}
+
+void QWaylandQuickOutput::setAutomaticFrameCallbacks(bool automatic)
+{
+ m_automaticFrameCallbacks = automatic;
+}
+
void QWaylandQuickOutput::updateStarted()
{
m_updateScheduled = false;
@@ -70,4 +84,9 @@ void QWaylandQuickOutput::updateStarted()
compositor()->cleanupGraphicsResources();
}
+void QWaylandQuickOutput::doFrameCallbacks()
+{
+ if (m_automaticFrameCallbacks)
+ sendFrameCallbacks(surfaces());
+}
QT_END_NAMESPACE