1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_VIEW_MANAGER_SURFACES_SURFACES_SCHEDULER_H_
6 #define COMPONENTS_VIEW_MANAGER_SURFACES_SURFACES_SCHEDULER_H_
10 #include "cc/scheduler/scheduler.h"
18 // TODO(brianderson): Reconcile with DisplayScheduler crbug.com/476676
19 class SurfacesScheduler
: public cc::SchedulerClient
{
22 ~SurfacesScheduler() override
;
26 void OnVSyncParametersUpdated(base::TimeTicks timebase
,
27 base::TimeDelta interval
);
29 void AddDisplay(cc::Display
* display
);
30 void RemoveDisplay(cc::Display
* display
);
33 void WillBeginImplFrame(const cc::BeginFrameArgs
& args
) override
;
34 void DidFinishImplFrame() override
;
35 void ScheduledActionSendBeginMainFrame() override
;
36 cc::DrawResult
ScheduledActionDrawAndSwapIfPossible() override
;
37 cc::DrawResult
ScheduledActionDrawAndSwapForced() override
;
38 void ScheduledActionAnimate() override
;
39 void ScheduledActionCommit() override
;
40 void ScheduledActionActivateSyncTree() override
;
41 void ScheduledActionBeginOutputSurfaceCreation() override
;
42 void ScheduledActionPrepareTiles() override
;
43 void ScheduledActionInvalidateOutputSurface() override
;
44 void DidAnticipatedDrawTimeChange(base::TimeTicks time
) override
;
45 base::TimeDelta
DrawDurationEstimate() override
;
46 base::TimeDelta
BeginMainFrameToCommitDurationEstimate() override
;
47 base::TimeDelta
CommitToActivateDurationEstimate() override
;
48 void SendBeginFramesToChildren(const cc::BeginFrameArgs
& args
) override
;
49 void SendBeginMainFrameNotExpectedSoon() override
;
51 std::set
<cc::Display
*> displays_
;
52 scoped_ptr
<cc::Scheduler
> scheduler_
;
53 base::TimeDelta draw_estimate_
;
55 DISALLOW_COPY_AND_ASSIGN(SurfacesScheduler
);
58 } // namespace surfaces
60 #endif // COMPONENTS_VIEW_MANAGER_SURFACES_SURFACES_SCHEDULER_H_