| 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_, | 132 BEGINFRAME_FROM_HERE, source_id(), next_sequence_number_, frame_time, |
| 133 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time, | |
| 134 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL); | 133 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL); |
| 135 next_sequence_number_++; | 134 next_sequence_number_++; |
| 136 | 135 |
| 137 // This must happen after getting the LastTickTime() from the time source. | 136 // This must happen after getting the LastTickTime() from the time source. |
| 138 time_source_->SetActive(false); | 137 time_source_->SetActive(false); |
| 139 | 138 |
| 140 std::unordered_set<BeginFrameObserver*> pending_observers; | 139 std::unordered_set<BeginFrameObserver*> pending_observers; |
| 141 pending_observers.swap(pending_begin_frame_observers_); | 140 pending_observers.swap(pending_begin_frame_observers_); |
| 142 DCHECK(!pending_observers.empty()); | 141 DCHECK(!pending_observers.empty()); |
| 143 for (BeginFrameObserver* obs : pending_observers) | 142 for (BeginFrameObserver* obs : pending_observers) |
| (...skipping 28 matching lines...) Expand all Loading... |
| 172 base::TimeDelta interval) { | 171 base::TimeDelta interval) { |
| 173 authoritative_interval_ = interval; | 172 authoritative_interval_ = interval; |
| 174 OnUpdateVSyncParameters(last_timebase_, interval); | 173 OnUpdateVSyncParameters(last_timebase_, interval); |
| 175 } | 174 } |
| 176 | 175 |
| 177 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs( | 176 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs( |
| 178 base::TimeTicks frame_time, | 177 base::TimeTicks frame_time, |
| 179 BeginFrameArgs::BeginFrameArgsType type) { | 178 BeginFrameArgs::BeginFrameArgsType type) { |
| 180 uint64_t sequence_number = next_sequence_number_++; | 179 uint64_t sequence_number = next_sequence_number_++; |
| 181 return BeginFrameArgs::Create( | 180 return BeginFrameArgs::Create( |
| 182 BEGINFRAME_FROM_HERE, source_id(), sequence_number, | 181 BEGINFRAME_FROM_HERE, source_id(), sequence_number, frame_time, |
| 183 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time, | |
| 184 time_source_->NextTickTime(), time_source_->Interval(), type); | 182 time_source_->NextTickTime(), time_source_->Interval(), type); |
| 185 } | 183 } |
| 186 | 184 |
| 187 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) { | 185 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) { |
| 188 DCHECK(obs); | 186 DCHECK(obs); |
| 189 DCHECK(observers_.find(obs) == observers_.end()); | 187 DCHECK(observers_.find(obs) == observers_.end()); |
| 190 | 188 |
| 191 observers_.insert(obs); | 189 observers_.insert(obs); |
| 192 obs->OnBeginFrameSourcePausedChanged(false); | 190 obs->OnBeginFrameSourcePausedChanged(false); |
| 193 time_source_->SetActive(true); | 191 time_source_->SetActive(true); |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 482 frame_active_ = false; | 480 frame_active_ = false; |
| 483 | 481 |
| 484 BeginFrameAck ack(last_begin_frame_args_.source_id, | 482 BeginFrameAck ack(last_begin_frame_args_.source_id, |
| 485 last_begin_frame_args_.sequence_number, | 483 last_begin_frame_args_.sequence_number, |
| 486 ack_tracker_.LatestConfirmedSequenceNumber(), | 484 ack_tracker_.LatestConfirmedSequenceNumber(), |
| 487 ack_tracker_.AnyObserversHadDamage()); | 485 ack_tracker_.AnyObserversHadDamage()); |
| 488 client_->OnDidFinishFrame(ack); | 486 client_->OnDidFinishFrame(ack); |
| 489 } | 487 } |
| 490 | 488 |
| 491 } // namespace cc | 489 } // namespace cc |
| OLD | NEW |