| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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/begin_frame_source.h" | 5 #include "cc/scheduler/begin_frame_source.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
| 10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 } | 122 } |
| 123 | 123 |
| 124 bool BackToBackBeginFrameSource::IsThrottled() const { | 124 bool BackToBackBeginFrameSource::IsThrottled() const { |
| 125 return false; | 125 return false; |
| 126 } | 126 } |
| 127 | 127 |
| 128 void BackToBackBeginFrameSource::OnTimerTick() { | 128 void BackToBackBeginFrameSource::OnTimerTick() { |
| 129 base::TimeTicks frame_time = time_source_->LastTickTime(); | 129 base::TimeTicks frame_time = time_source_->LastTickTime(); |
| 130 base::TimeDelta default_interval = BeginFrameArgs::DefaultInterval(); | 130 base::TimeDelta default_interval = BeginFrameArgs::DefaultInterval(); |
| 131 BeginFrameArgs args = BeginFrameArgs::Create( | 131 BeginFrameArgs args = BeginFrameArgs::Create( |
| 132 BEGINFRAME_FROM_HERE, source_id(), next_sequence_number_, frame_time, | 132 BEGINFRAME_FROM_HERE, source_id(), next_sequence_number_, |
| 133 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time, |
| 133 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL); | 134 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL); |
| 134 next_sequence_number_++; | 135 next_sequence_number_++; |
| 135 | 136 |
| 136 // This must happen after getting the LastTickTime() from the time source. | 137 // This must happen after getting the LastTickTime() from the time source. |
| 137 time_source_->SetActive(false); | 138 time_source_->SetActive(false); |
| 138 | 139 |
| 139 std::unordered_set<BeginFrameObserver*> pending_observers; | 140 std::unordered_set<BeginFrameObserver*> pending_observers; |
| 140 pending_observers.swap(pending_begin_frame_observers_); | 141 pending_observers.swap(pending_begin_frame_observers_); |
| 141 DCHECK(!pending_observers.empty()); | 142 DCHECK(!pending_observers.empty()); |
| 142 for (BeginFrameObserver* obs : pending_observers) | 143 for (BeginFrameObserver* obs : pending_observers) |
| (...skipping 28 matching lines...) Expand all Loading... |
| 171 base::TimeDelta interval) { | 172 base::TimeDelta interval) { |
| 172 authoritative_interval_ = interval; | 173 authoritative_interval_ = interval; |
| 173 OnUpdateVSyncParameters(last_timebase_, interval); | 174 OnUpdateVSyncParameters(last_timebase_, interval); |
| 174 } | 175 } |
| 175 | 176 |
| 176 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs( | 177 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs( |
| 177 base::TimeTicks frame_time, | 178 base::TimeTicks frame_time, |
| 178 BeginFrameArgs::BeginFrameArgsType type) { | 179 BeginFrameArgs::BeginFrameArgsType type) { |
| 179 uint64_t sequence_number = next_sequence_number_++; | 180 uint64_t sequence_number = next_sequence_number_++; |
| 180 return BeginFrameArgs::Create( | 181 return BeginFrameArgs::Create( |
| 181 BEGINFRAME_FROM_HERE, source_id(), sequence_number, frame_time, | 182 BEGINFRAME_FROM_HERE, source_id(), sequence_number, |
| 183 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time, |
| 182 time_source_->NextTickTime(), time_source_->Interval(), type); | 184 time_source_->NextTickTime(), time_source_->Interval(), type); |
| 183 } | 185 } |
| 184 | 186 |
| 185 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) { | 187 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) { |
| 186 DCHECK(obs); | 188 DCHECK(obs); |
| 187 DCHECK(observers_.find(obs) == observers_.end()); | 189 DCHECK(observers_.find(obs) == observers_.end()); |
| 188 | 190 |
| 189 observers_.insert(obs); | 191 observers_.insert(obs); |
| 190 obs->OnBeginFrameSourcePausedChanged(false); | 192 obs->OnBeginFrameSourcePausedChanged(false); |
| 191 time_source_->SetActive(true); | 193 time_source_->SetActive(true); |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 frame_active_ = false; | 482 frame_active_ = false; |
| 481 | 483 |
| 482 BeginFrameAck ack(last_begin_frame_args_.source_id, | 484 BeginFrameAck ack(last_begin_frame_args_.source_id, |
| 483 last_begin_frame_args_.sequence_number, | 485 last_begin_frame_args_.sequence_number, |
| 484 ack_tracker_.LatestConfirmedSequenceNumber(), | 486 ack_tracker_.LatestConfirmedSequenceNumber(), |
| 485 ack_tracker_.AnyObserversHadDamage()); | 487 ack_tracker_.AnyObserversHadDamage()); |
| 486 client_->OnDidFinishFrame(ack); | 488 client_->OnDidFinishFrame(ack); |
| 487 } | 489 } |
| 488 | 490 |
| 489 } // namespace cc | 491 } // namespace cc |
| OLD | NEW |