ClearRenderPasses(resources_in_frame);
DCHECK(!invalid_frame);
- client_->DelegatedFrameHostSendReclaimCompositorResources(
- local_surface_id, returned_resources_);
+ client_->DidReceiveCompositorFrameAck(local_surface_id, returned_resources_);
returned_resources_.clear();
}
// and surface from EvasGLDelegatedFrameHost.
virtual Evas_GL_API* GetEvasGLAPI() = 0;
virtual Evas_GL* GetEvasGL() = 0;
- virtual void DelegatedFrameHostSendReclaimCompositorResources(
+ virtual void DidReceiveCompositorFrameAck(
const viz::LocalSurfaceId& local_surface_id,
const std::vector<viz::ReturnedResource>& resources) = 0;
};
return evas_gl_;
}
-void RenderWidgetHostViewEfl::DelegatedFrameHostSendReclaimCompositorResources(
+void RenderWidgetHostViewEfl::DidReceiveCompositorFrameAck(
const viz::LocalSurfaceId& local_surface_id,
const std::vector<viz::ReturnedResource>& resources) {
renderer_compositor_frame_sink_->DidReceiveCompositorFrameAck(resources);
+ if (needs_begin_frames_)
+ host_->ProgressFlingIfNeeded(base::TimeTicks::Now());
}
void RenderWidgetHostViewEfl::InitializeDeviceDisplayInfo() {
void RenderWidgetHostViewEfl::SetWantsAnimateOnlyBeginFrames() {}
-void RenderWidgetHostViewEfl::SetNeedsBeginFrames(bool needs_begin_frames) {}
+void RenderWidgetHostViewEfl::SetNeedsBeginFrames(bool needs_begin_frames) {
+ if (needs_begin_frames_ == needs_begin_frames)
+ return;
+
+ needs_begin_frames_ = needs_begin_frames;
+ if (needs_begin_frames_)
+ host_->ProgressFlingIfNeeded(base::TimeTicks::Now());
+}
void RenderWidgetHostViewEfl::DidOverscroll(
const ui::DidOverscrollParams& params) {
// EvasGLDelegatedFrameHostClient implementation.
Evas_GL_API* GetEvasGLAPI() override;
- void DelegatedFrameHostSendReclaimCompositorResources(
+ void DidReceiveCompositorFrameAck(
const viz::LocalSurfaceId& local_surface_id,
const std::vector<viz::ReturnedResource>& resources) override;
Evas_GL* GetEvasGL() override;
viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink_ =
nullptr;
+ bool needs_begin_frames_ = false;
+
base::WeakPtrFactory<RenderWidgetHostViewEfl> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewEfl);