Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(897)

Side by Side Diff: cc/scheduler/scheduler.h

Issue 26880010: gfx: Add FrameTime and DisplayTime classes (Closed) Base URL: http://git.chromium.org/chromium/src.git@checkHighResNow4
Patch Set: WIP Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/scheduler/frame_rate_controller.cc ('k') | cc/scheduler/scheduler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_SCHEDULER_SCHEDULER_H_ 5 #ifndef CC_SCHEDULER_SCHEDULER_H_
6 #define CC_SCHEDULER_SCHEDULER_H_ 6 #define CC_SCHEDULER_SCHEDULER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 26 matching lines...) Expand all
37 virtual void ScheduledActionSendBeginMainFrame() = 0; 37 virtual void ScheduledActionSendBeginMainFrame() = 0;
38 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() = 0; 38 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() = 0;
39 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() = 0; 39 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() = 0;
40 virtual DrawSwapReadbackResult ScheduledActionDrawAndReadback() = 0; 40 virtual DrawSwapReadbackResult ScheduledActionDrawAndReadback() = 0;
41 virtual void ScheduledActionCommit() = 0; 41 virtual void ScheduledActionCommit() = 0;
42 virtual void ScheduledActionUpdateVisibleTiles() = 0; 42 virtual void ScheduledActionUpdateVisibleTiles() = 0;
43 virtual void ScheduledActionActivatePendingTree() = 0; 43 virtual void ScheduledActionActivatePendingTree() = 0;
44 virtual void ScheduledActionBeginOutputSurfaceCreation() = 0; 44 virtual void ScheduledActionBeginOutputSurfaceCreation() = 0;
45 virtual void ScheduledActionAcquireLayerTexturesForMainThread() = 0; 45 virtual void ScheduledActionAcquireLayerTexturesForMainThread() = 0;
46 virtual void ScheduledActionManageTiles() = 0; 46 virtual void ScheduledActionManageTiles() = 0;
47 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) = 0; 47 virtual void DidAnticipatedDrawTimeChange(gfx::FrameTime time) = 0;
48 virtual base::TimeDelta DrawDurationEstimate() = 0; 48 virtual base::TimeDelta DrawDurationEstimate() = 0;
49 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() = 0; 49 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() = 0;
50 virtual base::TimeDelta CommitToActivateDurationEstimate() = 0; 50 virtual base::TimeDelta CommitToActivateDurationEstimate() = 0;
51 virtual void PostBeginImplFrameDeadline(const base::Closure& closure, 51 virtual void PostBeginImplFrameDeadline(
52 base::TimeTicks deadline) = 0; 52 const base::Closure& closure,
53 gfx::FrameTime deadline) = 0;
53 virtual void DidBeginImplFrameDeadline() = 0; 54 virtual void DidBeginImplFrameDeadline() = 0;
54 55
55 protected: 56 protected:
56 virtual ~SchedulerClient() {} 57 virtual ~SchedulerClient() {}
57 }; 58 };
58 59
59 class CC_EXPORT Scheduler { 60 class CC_EXPORT Scheduler {
60 public: 61 public:
61 static scoped_ptr<Scheduler> Create( 62 static scoped_ptr<Scheduler> Create(
62 SchedulerClient* client, 63 SchedulerClient* client,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 } 99 }
99 100
100 bool CommitPending() const { return state_machine_.CommitPending(); } 101 bool CommitPending() const { return state_machine_.CommitPending(); }
101 bool RedrawPending() const { return state_machine_.RedrawPending(); } 102 bool RedrawPending() const { return state_machine_.RedrawPending(); }
102 bool ManageTilesPending() const { 103 bool ManageTilesPending() const {
103 return state_machine_.ManageTilesPending(); 104 return state_machine_.ManageTilesPending();
104 } 105 }
105 106
106 bool WillDrawIfNeeded() const; 107 bool WillDrawIfNeeded() const;
107 108
108 base::TimeTicks AnticipatedDrawTime(); 109 gfx::FrameTime AnticipatedDrawTime();
109 110
110 base::TimeTicks LastBeginImplFrameTime(); 111 gfx::FrameTime LastBeginImplFrameTime();
111 112
112 void BeginImplFrame(const BeginFrameArgs& args); 113 void BeginImplFrame(const BeginFrameArgs& args);
113 void OnBeginImplFrameDeadline(); 114 void OnBeginImplFrameDeadline();
114 void PollForAnticipatedDrawTriggers(); 115 void PollForAnticipatedDrawTriggers();
115 116
116 scoped_ptr<base::Value> StateAsValue() { 117 scoped_ptr<base::Value> StateAsValue() {
117 return state_machine_.AsValue().Pass(); 118 return state_machine_.AsValue().Pass();
118 } 119 }
119 120
120 bool IsInsideAction(SchedulerStateMachine::Action action) { 121 bool IsInsideAction(SchedulerStateMachine::Action action) {
121 return inside_action_ == action; 122 return inside_action_ == action;
122 } 123 }
123 124
124 private: 125 private:
125 Scheduler(SchedulerClient* client, 126 Scheduler(SchedulerClient* client,
126 const SchedulerSettings& scheduler_settings); 127 const SchedulerSettings& scheduler_settings);
127 128
128 void PostBeginImplFrameDeadline(base::TimeTicks deadline); 129 void PostBeginImplFrameDeadline(gfx::FrameTime deadline);
129 void SetupNextBeginImplFrameIfNeeded(); 130 void SetupNextBeginImplFrameIfNeeded();
130 void ActivatePendingTree(); 131 void ActivatePendingTree();
131 void DrawAndSwapIfPossible(); 132 void DrawAndSwapIfPossible();
132 void DrawAndSwapForced(); 133 void DrawAndSwapForced();
133 void DrawAndReadback(); 134 void DrawAndReadback();
134 void ProcessScheduledActions(); 135 void ProcessScheduledActions();
135 136
136 const SchedulerSettings settings_; 137 const SchedulerSettings settings_;
137 SchedulerClient* client_; 138 SchedulerClient* client_;
138 139
139 bool last_set_needs_begin_impl_frame_; 140 bool last_set_needs_begin_impl_frame_;
140 BeginFrameArgs last_begin_impl_frame_args_; 141 BeginFrameArgs last_begin_impl_frame_args_;
141 base::CancelableClosure begin_impl_frame_deadline_closure_; 142 base::CancelableClosure begin_impl_frame_deadline_closure_;
142 base::CancelableClosure poll_for_draw_triggers_closure_; 143 base::CancelableClosure poll_for_draw_triggers_closure_;
143 144
144 SchedulerStateMachine state_machine_; 145 SchedulerStateMachine state_machine_;
145 bool inside_process_scheduled_actions_; 146 bool inside_process_scheduled_actions_;
146 SchedulerStateMachine::Action inside_action_; 147 SchedulerStateMachine::Action inside_action_;
147 148
148 base::WeakPtrFactory<Scheduler> weak_factory_; 149 base::WeakPtrFactory<Scheduler> weak_factory_;
149 150
150 DISALLOW_COPY_AND_ASSIGN(Scheduler); 151 DISALLOW_COPY_AND_ASSIGN(Scheduler);
151 }; 152 };
152 153
153 } // namespace cc 154 } // namespace cc
154 155
155 #endif // CC_SCHEDULER_SCHEDULER_H_ 156 #endif // CC_SCHEDULER_SCHEDULER_H_
OLDNEW
« no previous file with comments | « cc/scheduler/frame_rate_controller.cc ('k') | cc/scheduler/scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698