diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2018-08-16 13:02:17 +0200 |
---|---|---|
committer | Jüri Valdmann <juri.valdmann@qt.io> | 2018-10-16 10:57:08 +0000 |
commit | 24e878d35d74bf4e6565ec394db65442168dd300 (patch) | |
tree | ce2ecad532d6698e059106e1bd26562cc72b11a2 /src/core/render_widget_host_view_qt.cpp | |
parent | f5251f5027da4885afb6e24a5846cac7e8d38ce2 (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.cpp | 7 |
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() |