summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2021-05-04 16:02:57 +0200
committerJüri Valdmann <juri.valdmann@qt.io>2021-06-22 16:51:42 +0200
commitccb266aaef8273de185a59330ab266777e2ac888 (patch)
treead143997d231a30675e767b13669c3d3444e7232
parent0887e880ced988704559505816b520972e6876c6 (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>
-rw-r--r--src/core/compositor/display_gl_output_surface.cpp12
-rw-r--r--src/core/compositor/display_gl_output_surface.h8
-rw-r--r--src/core/compositor/display_software_output_surface.cpp7
-rw-r--r--src/core/compositor/display_software_output_surface.h4
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;