Include all dupe types (event when value is zero) in scan stats.
[chromium-blink-merge.git] / components / view_manager / surfaces / surfaces_scheduler.h
blob7f069ad5e39c101b178e5bc1f2d9d9bbeedb6a9c
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_
8 #include <set>
10 #include "cc/scheduler/scheduler.h"
12 namespace cc {
13 class Display;
16 namespace surfaces {
18 // TODO(brianderson): Reconcile with DisplayScheduler crbug.com/476676
19 class SurfacesScheduler : public cc::SchedulerClient {
20 public:
21 SurfacesScheduler();
22 ~SurfacesScheduler() override;
24 void SetNeedsDraw();
26 void OnVSyncParametersUpdated(base::TimeTicks timebase,
27 base::TimeDelta interval);
29 void AddDisplay(cc::Display* display);
30 void RemoveDisplay(cc::Display* display);
32 private:
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_