From 76d46ce509fe8b062049e7f14190b8f61431843e Mon Sep 17 00:00:00 2001 From: Gellert Hegyi <93.morph@gmail.com> Date: Sun, 9 Jul 2017 20:53:00 +0200 Subject: [PATCH] adds compositor resize lock client implementation --- .../osr/osr_render_widget_host_view.cc | 34 ++++++++----------- .../browser/osr/osr_render_widget_host_view.h | 18 +++++----- 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index 39ed9f434ab1..c94bb0ae8edc 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -831,31 +831,25 @@ bool OffScreenRenderWidgetHostView::DelegatedFrameCanCreateResizeLock() const { return !render_widget_host_->auto_resize_enabled(); } -std::unique_ptr - OffScreenRenderWidgetHostView::DelegatedFrameHostCreateResizeLock( - bool defer_compositor_lock) { - return std::unique_ptr(new AtomResizeLock( - this, - DelegatedFrameHostDesiredSizeInDIP(), - defer_compositor_lock)); -} - -void OffScreenRenderWidgetHostView::DelegatedFrameHostResizeLockWasReleased() { - return render_widget_host_->WasResized(); +std::unique_ptr +OffScreenRenderWidgetHostView::DelegatedFrameHostCreateResizeLock() { + HoldResize(); + const gfx::Size& desired_size = GetRootLayer()->bounds().size(); + return base::MakeUnique(this, desired_size); } void -OffScreenRenderWidgetHostView::DelegatedFrameHostSendReclaimCompositorResources( - int output_surface_id, - bool is_swap_ack, - const cc::ReturnedResourceArray& resources) { - render_widget_host_->Send(new ViewMsg_ReclaimCompositorResources( - render_widget_host_->GetRoutingID(), output_surface_id, is_swap_ack, - resources)); +OffScreenRenderWidgetHostView::OnBeginFrame(const cc::BeginFrameArgs& args) { } -void OffScreenRenderWidgetHostView::SetBeginFrameSource( - cc::BeginFrameSource* source) { +std::unique_ptr +OffScreenRenderWidgetHostView::GetCompositorLock( + ui::CompositorLockClient* client) { + return GetCompositor()->GetCompositorLock(client); +} + +void OffScreenRenderWidgetHostView::CompositorResizeLockEnded() { + ReleaseResize(); } #endif // !defined(OS_MACOSX) diff --git a/atom/browser/osr/osr_render_widget_host_view.h b/atom/browser/osr/osr_render_widget_host_view.h index 6a965ac6ce58..23549838c335 100644 --- a/atom/browser/osr/osr_render_widget_host_view.h +++ b/atom/browser/osr/osr_render_widget_host_view.h @@ -68,6 +68,7 @@ class OffScreenRenderWidgetHostView public ui::CompositorDelegate, #if !defined(OS_MACOSX) public content::DelegatedFrameHostClient, + public content::CompositorResizeLockClient, #endif public NativeWindowObserver, public OffscreenViewProxyObserver { @@ -172,15 +173,14 @@ class OffScreenRenderWidgetHostView bool DelegatedFrameHostIsVisible(void) const override; SkColor DelegatedFrameHostGetGutterColor(SkColor) const override; gfx::Size DelegatedFrameHostDesiredSizeInDIP(void) const override; - bool DelegatedFrameCanCreateResizeLock(void) const override; - std::unique_ptr DelegatedFrameHostCreateResizeLock( - bool defer_compositor_lock) override; - void DelegatedFrameHostResizeLockWasReleased(void) override; - void DelegatedFrameHostSendReclaimCompositorResources( - int output_surface_id, - bool is_swap_ack, - const cc::ReturnedResourceArray& resources) override; - void SetBeginFrameSource(cc::BeginFrameSource* source) override; + bool DelegatedFrameCanCreateResizeLock() const override; + std::unique_ptr + DelegatedFrameHostCreateResizeLock() override; + void OnBeginFrame(const cc::BeginFrameArgs& args) override; + // CompositorResizeLockClient implementation. + std::unique_ptr GetCompositorLock( + ui::CompositorLockClient* client) override; + void CompositorResizeLockEnded() override; #endif // !defined(OS_MACOSX) bool TransformPointToLocalCoordSpace(