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 #include "cc/scheduler/scheduler.h" | 5 #include "cc/scheduler/scheduler.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 begin_impl_frame_args_.interval <= base::TimeDelta()) | 292 begin_impl_frame_args_.interval <= base::TimeDelta()) |
293 return base::TimeTicks(); | 293 return base::TimeTicks(); |
294 | 294 |
295 base::TimeTicks now = Now(); | 295 base::TimeTicks now = Now(); |
296 base::TimeTicks timebase = std::max(begin_impl_frame_args_.frame_time, | 296 base::TimeTicks timebase = std::max(begin_impl_frame_args_.frame_time, |
297 begin_impl_frame_args_.deadline); | 297 begin_impl_frame_args_.deadline); |
298 int64 intervals = 1 + ((now - timebase) / begin_impl_frame_args_.interval); | 298 int64 intervals = 1 + ((now - timebase) / begin_impl_frame_args_.interval); |
299 return timebase + (begin_impl_frame_args_.interval * intervals); | 299 return timebase + (begin_impl_frame_args_.interval * intervals); |
300 } | 300 } |
301 | 301 |
302 base::TimeTicks Scheduler::LastBeginImplFrameTime() { | 302 base::TimeTicks Scheduler::LastBeginImplFrameTime() const { |
303 return begin_impl_frame_args_.frame_time; | 303 return begin_impl_frame_args_.frame_time; |
304 } | 304 } |
305 | 305 |
| 306 base::TimeTicks Scheduler::NextPredictedRequestAnimationFrameTime() const { |
| 307 return begin_impl_frame_args_.frame_time + begin_impl_frame_args_.interval; |
| 308 } |
| 309 |
306 void Scheduler::SetupNextBeginFrameIfNeeded() { | 310 void Scheduler::SetupNextBeginFrameIfNeeded() { |
307 if (!task_runner_.get()) | 311 if (!task_runner_.get()) |
308 return; | 312 return; |
309 | 313 |
310 if (state_machine_.ShouldSetNeedsBeginFrames( | 314 if (state_machine_.ShouldSetNeedsBeginFrames( |
311 frame_source_->NeedsBeginFrames())) { | 315 frame_source_->NeedsBeginFrames())) { |
312 frame_source_->SetNeedsBeginFrames(state_machine_.BeginFrameNeeded()); | 316 frame_source_->SetNeedsBeginFrames(state_machine_.BeginFrameNeeded()); |
313 if (!frame_source_->NeedsBeginFrames()) { | 317 if (!frame_source_->NeedsBeginFrames()) { |
314 client_->SendBeginMainFrameNotExpectedSoon(); | 318 client_->SendBeginMainFrameNotExpectedSoon(); |
315 } | 319 } |
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
868 } | 872 } |
869 | 873 |
870 bool Scheduler::IsBeginMainFrameSentOrStarted() const { | 874 bool Scheduler::IsBeginMainFrameSentOrStarted() const { |
871 return (state_machine_.commit_state() == | 875 return (state_machine_.commit_state() == |
872 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT || | 876 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT || |
873 state_machine_.commit_state() == | 877 state_machine_.commit_state() == |
874 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_STARTED); | 878 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_STARTED); |
875 } | 879 } |
876 | 880 |
877 } // namespace cc | 881 } // namespace cc |
OLD | NEW |