summaryrefslogtreecommitdiffstats
path: root/src/core/render_widget_host_view_qt.cpp
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2018-08-16 13:02:17 +0200
committerJüri Valdmann <juri.valdmann@qt.io>2018-10-16 10:57:08 +0000
commit24e878d35d74bf4e6565ec394db65442168dd300 (patch)
treece2ecad532d6698e059106e1bd26562cc72b11a2 /src/core/render_widget_host_view_qt.cpp
parentf5251f5027da4885afb6e24a5846cac7e8d38ce2 (diff)
Update mailboxes before rendering
Instead of updating mailboxes during the preprocessing phase of the Qt Quick Scene Graph renderer, do it separately before rendering even starts. Prerequisite for running GPU service on UI thread. Task-number: QTBUG-71126 Change-Id: Iec2acd7233c33e4dc4e33077c14cf6b9170685ed Reviewed-by: Michael Brüning <michael.bruning@qt.io>
Diffstat (limited to 'src/core/render_widget_host_view_qt.cpp')
-rw-r--r--src/core/render_widget_host_view_qt.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index a847d2c99..0b33c359c 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -368,7 +368,6 @@ RenderWidgetHostViewQt::~RenderWidgetHostViewQt()
void RenderWidgetHostViewQt::setDelegate(RenderWidgetHostViewQtDelegate* delegate)
{
m_delegate.reset(delegate);
- m_compositor->setViewDelegate(delegate);
}
void RenderWidgetHostViewQt::setAdapterClient(WebContentsAdapterClient *adapterClient)
@@ -747,7 +746,9 @@ void RenderWidgetHostViewQt::SubmitCompositorFrame(const viz::LocalSurfaceId &lo
if (dpiScale != 0 && dpiScale != 1)
frame.metadata.device_scale_factor /= dpiScale;
- m_compositor->submitFrame(std::move(frame));
+ m_compositor->submitFrame(
+ std::move(frame),
+ base::BindOnce(&RenderWidgetHostViewQtDelegate::update, base::Unretained(m_delegate.get())));
if (m_loadVisuallyCommittedState == NotCommitted) {
m_loadVisuallyCommittedState = DidFirstCompositorFrameSwap;
@@ -964,7 +965,7 @@ QSGNode *RenderWidgetHostViewQt::updatePaintNode(QSGNode *oldNode)
if (host()->SynchronizeVisualProperties())
m_pendingResize = false;
}
- return m_compositor->updatePaintNode(oldNode);
+ return m_compositor->updatePaintNode(oldNode, m_delegate.get());
}
void RenderWidgetHostViewQt::notifyResize()