adds compositor resize lock client implementation

This commit is contained in:
Gellert Hegyi 2017-07-09 20:53:00 +02:00 committed by Aleksei Kuzmin
parent 5ef668de64
commit 76d46ce509
2 changed files with 23 additions and 29 deletions

View file

@ -831,31 +831,25 @@ bool OffScreenRenderWidgetHostView::DelegatedFrameCanCreateResizeLock() const {
return !render_widget_host_->auto_resize_enabled(); return !render_widget_host_->auto_resize_enabled();
} }
std::unique_ptr<content::ResizeLock> std::unique_ptr<content::CompositorResizeLock>
OffScreenRenderWidgetHostView::DelegatedFrameHostCreateResizeLock( OffScreenRenderWidgetHostView::DelegatedFrameHostCreateResizeLock() {
bool defer_compositor_lock) { HoldResize();
return std::unique_ptr<content::ResizeLock>(new AtomResizeLock( const gfx::Size& desired_size = GetRootLayer()->bounds().size();
this, return base::MakeUnique<content::CompositorResizeLock>(this, desired_size);
DelegatedFrameHostDesiredSizeInDIP(),
defer_compositor_lock));
}
void OffScreenRenderWidgetHostView::DelegatedFrameHostResizeLockWasReleased() {
return render_widget_host_->WasResized();
} }
void void
OffScreenRenderWidgetHostView::DelegatedFrameHostSendReclaimCompositorResources( OffScreenRenderWidgetHostView::OnBeginFrame(const cc::BeginFrameArgs& args) {
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));
} }
void OffScreenRenderWidgetHostView::SetBeginFrameSource( std::unique_ptr<ui::CompositorLock>
cc::BeginFrameSource* source) { OffScreenRenderWidgetHostView::GetCompositorLock(
ui::CompositorLockClient* client) {
return GetCompositor()->GetCompositorLock(client);
}
void OffScreenRenderWidgetHostView::CompositorResizeLockEnded() {
ReleaseResize();
} }
#endif // !defined(OS_MACOSX) #endif // !defined(OS_MACOSX)

View file

@ -68,6 +68,7 @@ class OffScreenRenderWidgetHostView
public ui::CompositorDelegate, public ui::CompositorDelegate,
#if !defined(OS_MACOSX) #if !defined(OS_MACOSX)
public content::DelegatedFrameHostClient, public content::DelegatedFrameHostClient,
public content::CompositorResizeLockClient,
#endif #endif
public NativeWindowObserver, public NativeWindowObserver,
public OffscreenViewProxyObserver { public OffscreenViewProxyObserver {
@ -172,15 +173,14 @@ class OffScreenRenderWidgetHostView
bool DelegatedFrameHostIsVisible(void) const override; bool DelegatedFrameHostIsVisible(void) const override;
SkColor DelegatedFrameHostGetGutterColor(SkColor) const override; SkColor DelegatedFrameHostGetGutterColor(SkColor) const override;
gfx::Size DelegatedFrameHostDesiredSizeInDIP(void) const override; gfx::Size DelegatedFrameHostDesiredSizeInDIP(void) const override;
bool DelegatedFrameCanCreateResizeLock(void) const override; bool DelegatedFrameCanCreateResizeLock() const override;
std::unique_ptr<content::ResizeLock> DelegatedFrameHostCreateResizeLock( std::unique_ptr<content::CompositorResizeLock>
bool defer_compositor_lock) override; DelegatedFrameHostCreateResizeLock() override;
void DelegatedFrameHostResizeLockWasReleased(void) override; void OnBeginFrame(const cc::BeginFrameArgs& args) override;
void DelegatedFrameHostSendReclaimCompositorResources( // CompositorResizeLockClient implementation.
int output_surface_id, std::unique_ptr<ui::CompositorLock> GetCompositorLock(
bool is_swap_ack, ui::CompositorLockClient* client) override;
const cc::ReturnedResourceArray& resources) override; void CompositorResizeLockEnded() override;
void SetBeginFrameSource(cc::BeginFrameSource* source) override;
#endif // !defined(OS_MACOSX) #endif // !defined(OS_MACOSX)
bool TransformPointToLocalCoordSpace( bool TransformPointToLocalCoordSpace(