OLD | NEW |
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 <deque> | 8 #include <deque> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 int layer_tree_host_id_; | 198 int layer_tree_host_id_; |
199 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 199 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
200 | 200 |
201 base::PowerMonitor* power_monitor_; | 201 base::PowerMonitor* power_monitor_; |
202 | 202 |
203 base::TimeDelta estimated_parent_draw_time_; | 203 base::TimeDelta estimated_parent_draw_time_; |
204 | 204 |
205 bool begin_retro_frame_posted_; | 205 bool begin_retro_frame_posted_; |
206 std::deque<BeginFrameArgs> begin_retro_frame_args_; | 206 std::deque<BeginFrameArgs> begin_retro_frame_args_; |
207 BeginFrameArgs begin_impl_frame_args_; | 207 BeginFrameArgs begin_impl_frame_args_; |
| 208 SchedulerStateMachine::BeginImplFrameDeadlineMode |
| 209 begin_impl_frame_deadline_mode_; |
208 | 210 |
209 base::Closure begin_retro_frame_closure_; | 211 base::Closure begin_retro_frame_closure_; |
210 base::Closure begin_unthrottled_frame_closure_; | 212 base::Closure begin_unthrottled_frame_closure_; |
211 | 213 |
212 base::Closure begin_impl_frame_deadline_closure_; | 214 base::Closure begin_impl_frame_deadline_closure_; |
213 base::Closure poll_for_draw_triggers_closure_; | 215 base::Closure poll_for_draw_triggers_closure_; |
214 base::Closure advance_commit_state_closure_; | 216 base::Closure advance_commit_state_closure_; |
215 base::CancelableClosure begin_impl_frame_deadline_task_; | 217 base::CancelableClosure begin_impl_frame_deadline_task_; |
216 base::CancelableClosure poll_for_draw_triggers_task_; | 218 base::CancelableClosure poll_for_draw_triggers_task_; |
217 base::CancelableClosure advance_commit_state_task_; | 219 base::CancelableClosure advance_commit_state_task_; |
218 | 220 |
219 SchedulerStateMachine state_machine_; | 221 SchedulerStateMachine state_machine_; |
220 bool inside_process_scheduled_actions_; | 222 bool inside_process_scheduled_actions_; |
221 SchedulerStateMachine::Action inside_action_; | 223 SchedulerStateMachine::Action inside_action_; |
222 | 224 |
223 private: | 225 private: |
224 base::TimeTicks AdjustedBeginImplFrameDeadline( | 226 void ScheduleBeginImplFrameDeadline(); |
225 const BeginFrameArgs& args, | 227 void RescheduleBeginImplFrameDeadlineIfNeeded(); |
226 base::TimeDelta draw_duration_estimate) const; | |
227 void ScheduleBeginImplFrameDeadline(base::TimeTicks deadline); | |
228 void SetupNextBeginFrameIfNeeded(); | 228 void SetupNextBeginFrameIfNeeded(); |
229 void PostBeginRetroFrameIfNeeded(); | 229 void PostBeginRetroFrameIfNeeded(); |
230 void SetupPollingMechanisms(bool needs_begin_frame); | 230 void SetupPollingMechanisms(bool needs_begin_frame); |
231 void DrawAndSwapIfPossible(); | 231 void DrawAndSwapIfPossible(); |
232 void ProcessScheduledActions(); | 232 void ProcessScheduledActions(); |
233 bool CanCommitAndActivateBeforeDeadline() const; | 233 bool CanCommitAndActivateBeforeDeadline() const; |
234 void AdvanceCommitStateIfPossible(); | 234 void AdvanceCommitStateIfPossible(); |
235 bool IsBeginMainFrameSentOrStarted() const; | 235 bool IsBeginMainFrameSentOrStarted() const; |
236 void BeginRetroFrame(); | 236 void BeginRetroFrame(); |
237 void BeginImplFrame(const BeginFrameArgs& args); | 237 void BeginImplFrame(const BeginFrameArgs& args); |
(...skipping 15 matching lines...) Expand all Loading... |
253 | 253 |
254 friend class SchedulerFrameSourcesConstructor; | 254 friend class SchedulerFrameSourcesConstructor; |
255 friend class TestSchedulerFrameSourcesConstructor; | 255 friend class TestSchedulerFrameSourcesConstructor; |
256 | 256 |
257 DISALLOW_COPY_AND_ASSIGN(Scheduler); | 257 DISALLOW_COPY_AND_ASSIGN(Scheduler); |
258 }; | 258 }; |
259 | 259 |
260 } // namespace cc | 260 } // namespace cc |
261 | 261 |
262 #endif // CC_SCHEDULER_SCHEDULER_H_ | 262 #endif // CC_SCHEDULER_SCHEDULER_H_ |
OLD | NEW |