diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-10-17 17:51:50 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-01-28 19:03:32 +0000 |
commit | e63b35763907304089d961bc3e284178d36c69a3 (patch) | |
tree | e3fe946240ddfe6b29ce5b72dd16a1db6855f4f1 /src/core/compositor | |
parent | 5e66cbc85a350616070a318f917cb181313c4afa (diff) |
Adaptations for Chromium 70
Change-Id: I8bb77784dbc8a0b9debd96a4c49421bd34e6a0df
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'src/core/compositor')
-rw-r--r-- | src/core/compositor/chromium_gpu_helper.cpp | 10 | ||||
-rw-r--r-- | src/core/compositor/chromium_gpu_helper.h | 7 | ||||
-rw-r--r-- | src/core/compositor/compositor.cpp | 7 | ||||
-rw-r--r-- | src/core/compositor/compositor.h | 8 | ||||
-rw-r--r-- | src/core/compositor/delegated_frame_node.cpp | 4 | ||||
-rw-r--r-- | src/core/compositor/delegated_frame_node.h | 5 |
6 files changed, 31 insertions, 10 deletions
diff --git a/src/core/compositor/chromium_gpu_helper.cpp b/src/core/compositor/chromium_gpu_helper.cpp index 2164f434f..71d0f3687 100644 --- a/src/core/compositor/chromium_gpu_helper.cpp +++ b/src/core/compositor/chromium_gpu_helper.cpp @@ -43,6 +43,11 @@ #include "chromium_gpu_helper.h" +// Some headers include the namespace ws, and can not coexist with +// Qt headers that include QTextStream, which includes most QSG headers +// via QMatrix4x4. +#include "content/browser/renderer_host/render_widget_host_impl.h" + // Including gpu/command_buffer headers before content/gpu headers makes sure that // guards are defined to prevent duplicate definition errors with forward declared // GL typedefs cascading through content header includes. @@ -78,6 +83,11 @@ unsigned int service_id(gpu::TextureBase *tex) return tex->service_id(); } +void ProgressFlingIfNeeded(content::RenderWidgetHost *host, const base::TimeTicks ¤t_time) +{ + content::RenderWidgetHostImpl::From(host)->ProgressFlingIfNeeded(current_time); +} + #ifdef Q_OS_QNX EGLStreamData eglstream_connect_consumer(gpu::Texture *tex) { diff --git a/src/core/compositor/chromium_gpu_helper.h b/src/core/compositor/chromium_gpu_helper.h index c2799204b..4086d12ab 100644 --- a/src/core/compositor/chromium_gpu_helper.h +++ b/src/core/compositor/chromium_gpu_helper.h @@ -46,6 +46,11 @@ namespace base { class SingleThreadTaskRunner; +class TimeTicks; +} + +namespace content { +class RenderWidgetHost; } namespace gpu { @@ -65,6 +70,8 @@ gpu::MailboxManager *mailbox_manager(); gpu::TextureBase* ConsumeTexture(gpu::MailboxManager *mailboxManager, unsigned target, const gpu::Mailbox& mailbox); unsigned int service_id(gpu::TextureBase *tex); +void ProgressFlingIfNeeded(content::RenderWidgetHost *host, const base::TimeTicks ¤t_time); + #ifdef Q_OS_QNX typedef void* EGLDisplay; typedef void* EGLStreamKHR; diff --git a/src/core/compositor/compositor.cpp b/src/core/compositor/compositor.cpp index 77a973748..258fb47b4 100644 --- a/src/core/compositor/compositor.cpp +++ b/src/core/compositor/compositor.cpp @@ -41,7 +41,6 @@ #include "compositor_resource_tracker.h" #include "delegated_frame_node.h" -#include "render_widget_host_view_qt.h" #include "components/viz/common/resources/returned_resource.h" #include "content/public/browser/browser_thread.h" @@ -49,9 +48,9 @@ namespace QtWebEngineCore { -Compositor::Compositor(RenderWidgetHostViewQt *hostView) +Compositor::Compositor(content::RenderWidgetHost *host) : m_resourceTracker(new CompositorResourceTracker) - , m_view(hostView) + , m_host(host) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -171,7 +170,7 @@ bool Compositor::OnBeginFrameDerivedImpl(const viz::BeginFrameArgs &args) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - m_view->OnBeginFrame(args.frame_time); + ProgressFlingIfNeeded(m_host, args.frame_time); m_beginFrameSource->OnUpdateVSyncParameters(args.frame_time, args.interval); if (m_frameSinkClient) m_frameSinkClient->OnBeginFrame(args); diff --git a/src/core/compositor/compositor.h b/src/core/compositor/compositor.h index b025f901d..5efe419cc 100644 --- a/src/core/compositor/compositor.h +++ b/src/core/compositor/compositor.h @@ -54,6 +54,9 @@ QT_BEGIN_NAMESPACE class QSGNode; QT_END_NAMESPACE +namespace content { +class RenderWidgetHost; +} namespace viz { struct ReturnedResource; namespace mojom { @@ -64,7 +67,6 @@ class CompositorFrameSinkClient; namespace QtWebEngineCore { class CompositorResourceTracker; -class RenderWidgetHostViewQt; class RenderWidgetHostViewQtDelegate; // Receives viz::CompositorFrames from child compositors and provides QSGNodes @@ -88,7 +90,7 @@ class RenderWidgetHostViewQtDelegate; class Compositor final : private viz::BeginFrameObserverBase { public: - explicit Compositor(RenderWidgetHostViewQt *hostView); + explicit Compositor(content::RenderWidgetHost *host); ~Compositor() override; void setFrameSinkClient(viz::mojom::CompositorFrameSinkClient *frameSinkClient); @@ -110,7 +112,7 @@ private: viz::CompositorFrame m_pendingFrame; base::OnceClosure m_submitCallback; std::unique_ptr<CompositorResourceTracker> m_resourceTracker; - RenderWidgetHostViewQt *m_view; + content::RenderWidgetHost *m_host; std::unique_ptr<viz::SyntheticBeginFrameSource> m_beginFrameSource; viz::mojom::CompositorFrameSinkClient *m_frameSinkClient = nullptr; bool m_updatePaintNodeShouldCommit = false; diff --git a/src/core/compositor/delegated_frame_node.cpp b/src/core/compositor/delegated_frame_node.cpp index 49e3577de..a4fcf8daf 100644 --- a/src/core/compositor/delegated_frame_node.cpp +++ b/src/core/compositor/delegated_frame_node.cpp @@ -411,7 +411,9 @@ static QSGNode *buildLayerChain(QSGNode *chainParent, const viz::SharedQuadState } if (!layerState->quad_to_target_transform.IsIdentity()) { QSGTransformNode *transformNode = new QSGTransformNode; - transformNode->setMatrix(toQt(layerState->quad_to_target_transform.matrix())); + QMatrix4x4 qMatrix; + convertToQt(layerState->quad_to_target_transform.matrix(), qMatrix); + transformNode->setMatrix(qMatrix); layerChain->appendChildNode(transformNode); layerChain = transformNode; } diff --git a/src/core/compositor/delegated_frame_node.h b/src/core/compositor/delegated_frame_node.h index a39ae864b..34e4ba029 100644 --- a/src/core/compositor/delegated_frame_node.h +++ b/src/core/compositor/delegated_frame_node.h @@ -43,9 +43,10 @@ #include "base/containers/circular_deque.h" #include "components/viz/common/quads/compositor_frame.h" #include "components/viz/common/quads/render_pass.h" -#include <QSGNode> -#include <QSharedPointer> + +#include <QtCore/QSharedPointer> #include <QtGui/QOffscreenSurface> +#include <QtQuick/QSGTransformNode> #include "chromium_gpu_helper.h" #include "render_widget_host_view_qt_delegate.h" |