diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2021-05-04 16:02:57 +0200 |
---|---|---|
committer | Jüri Valdmann <juri.valdmann@qt.io> | 2021-06-22 16:51:42 +0200 |
commit | ccb266aaef8273de185a59330ab266777e2ac888 (patch) | |
tree | ad143997d231a30675e767b13669c3d3444e7232 | |
parent | 0887e880ced988704559505816b520972e6876c6 (diff) |
Refactor how frame sink id is passed to OutputSurface
Use dedicated method viz::OutputSurface::SetFrameSinkId instead of
getter on Display. Needs corresponding 3rdparty change.
Pick-to: 6.2
Change-Id: I3cfdde56ae1e6204714881c2bdcb688bdbae1dc1
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
4 files changed, 14 insertions, 17 deletions
diff --git a/src/core/compositor/display_gl_output_surface.cpp b/src/core/compositor/display_gl_output_surface.cpp index b44a08452..dfc3cb7c6 100644 --- a/src/core/compositor/display_gl_output_surface.cpp +++ b/src/core/compositor/display_gl_output_surface.cpp @@ -75,8 +75,12 @@ DisplayGLOutputSurface::~DisplayGLOutputSurface() // Called from viz::Display::Initialize. void DisplayGLOutputSurface::BindToClient(viz::OutputSurfaceClient *client) { - m_display = static_cast<viz::Display *>(client); - bind(m_display->frame_sink_id()); + m_client = client; +} + +void DisplayGLOutputSurface::SetFrameSinkId(const viz::FrameSinkId &id) +{ + bind(id); } // Triggered by ui::Compositor::SetVisible(true). @@ -227,8 +231,8 @@ void DisplayGLOutputSurface::swapBuffersOnVizThread() } const auto now = base::TimeTicks::Now(); - m_display->DidReceiveSwapBuffersAck(gfx::SwapTimings{now, now}); - m_display->DidReceivePresentationFeedback( + m_client->DidReceiveSwapBuffersAck(gfx::SwapTimings{now, now}); + m_client->DidReceivePresentationFeedback( gfx::PresentationFeedback(now, base::TimeDelta(), gfx::PresentationFeedback::Flags::kVSync)); } diff --git a/src/core/compositor/display_gl_output_surface.h b/src/core/compositor/display_gl_output_surface.h index 71856e70b..30fb0cd0d 100644 --- a/src/core/compositor/display_gl_output_surface.h +++ b/src/core/compositor/display_gl_output_surface.h @@ -51,11 +51,6 @@ #include <QMutex> -namespace viz { -class Display; -class SyntheticBeginFrameSource; -} // namespace viz - namespace QtWebEngineCore { class DisplayGLOutputSurface final : public viz::OutputSurface, public Compositor @@ -85,6 +80,7 @@ public: void SetUpdateVSyncParametersCallback(viz::UpdateVSyncParametersCallback callback) override; void SetDisplayTransformHint(gfx::OverlayTransform transform) override; gfx::OverlayTransform GetDisplayTransform() override; + void SetFrameSinkId(const viz::FrameSinkId &id) override; // Overridden from Compositor. void swapFrame() override; @@ -138,7 +134,7 @@ private: gpu::gles2::GLES2Interface *const m_gl; mutable QMutex m_mutex; uint32_t m_fboId = 0; - viz::Display *m_display = nullptr; + viz::OutputSurfaceClient *m_client = nullptr; Shape m_currentShape; std::unique_ptr<Buffer> m_backBuffer; std::unique_ptr<Buffer> m_middleBuffer; diff --git a/src/core/compositor/display_software_output_surface.cpp b/src/core/compositor/display_software_output_surface.cpp index 218bff94a..98c104ddf 100644 --- a/src/core/compositor/display_software_output_surface.cpp +++ b/src/core/compositor/display_software_output_surface.cpp @@ -173,12 +173,9 @@ DisplaySoftwareOutputSurface::DisplaySoftwareOutputSurface() DisplaySoftwareOutputSurface::~DisplaySoftwareOutputSurface() {} // Called from viz::Display::Initialize. -void DisplaySoftwareOutputSurface::BindToClient(viz::OutputSurfaceClient *client) +void DisplaySoftwareOutputSurface::SetFrameSinkId(const viz::FrameSinkId &id) { - auto display = static_cast<viz::Display *>(client); - auto device = static_cast<Device *>(software_device()); - device->bind(display->frame_sink_id()); - SoftwareOutputSurface::BindToClient(client); + static_cast<Device *>(software_device())->bind(id); } } // namespace QtWebEngineCore diff --git a/src/core/compositor/display_software_output_surface.h b/src/core/compositor/display_software_output_surface.h index ae4b277dd..27687c7c0 100644 --- a/src/core/compositor/display_software_output_surface.h +++ b/src/core/compositor/display_software_output_surface.h @@ -50,8 +50,8 @@ public: DisplaySoftwareOutputSurface(); ~DisplaySoftwareOutputSurface() override; - // Overridden from viz::SoftwareOutputSurface. - void BindToClient(viz::OutputSurfaceClient *client) override; + // Overridden from viz::OutputSurface. + void SetFrameSinkId(const viz::FrameSinkId &id) override; private: class Device; |