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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 } | 110 } |
111 | 111 |
112 bool BackToBackBeginFrameSource::IsThrottled() const { | 112 bool BackToBackBeginFrameSource::IsThrottled() const { |
113 return false; | 113 return false; |
114 } | 114 } |
115 | 115 |
116 void BackToBackBeginFrameSource::OnTimerTick() { | 116 void BackToBackBeginFrameSource::OnTimerTick() { |
117 base::TimeTicks frame_time = time_source_->LastTickTime(); | 117 base::TimeTicks frame_time = time_source_->LastTickTime(); |
118 base::TimeDelta default_interval = BeginFrameArgs::DefaultInterval(); | 118 base::TimeDelta default_interval = BeginFrameArgs::DefaultInterval(); |
119 BeginFrameArgs args = BeginFrameArgs::Create( | 119 BeginFrameArgs args = BeginFrameArgs::Create( |
120 BEGINFRAME_FROM_HERE, source_id(), next_sequence_number_, frame_time, | 120 BEGINFRAME_FROM_HERE, source_id(), next_sequence_number_, |
| 121 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time, |
121 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL); | 122 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL); |
122 next_sequence_number_++; | 123 next_sequence_number_++; |
123 | 124 |
124 // This must happen after getting the LastTickTime() from the time source. | 125 // This must happen after getting the LastTickTime() from the time source. |
125 time_source_->SetActive(false); | 126 time_source_->SetActive(false); |
126 | 127 |
127 std::unordered_set<BeginFrameObserver*> pending_observers; | 128 std::unordered_set<BeginFrameObserver*> pending_observers; |
128 pending_observers.swap(pending_begin_frame_observers_); | 129 pending_observers.swap(pending_begin_frame_observers_); |
129 DCHECK(!pending_observers.empty()); | 130 DCHECK(!pending_observers.empty()); |
130 for (BeginFrameObserver* obs : pending_observers) | 131 for (BeginFrameObserver* obs : pending_observers) |
(...skipping 28 matching lines...) Expand all Loading... |
159 base::TimeDelta interval) { | 160 base::TimeDelta interval) { |
160 authoritative_interval_ = interval; | 161 authoritative_interval_ = interval; |
161 OnUpdateVSyncParameters(last_timebase_, interval); | 162 OnUpdateVSyncParameters(last_timebase_, interval); |
162 } | 163 } |
163 | 164 |
164 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs( | 165 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs( |
165 base::TimeTicks frame_time, | 166 base::TimeTicks frame_time, |
166 BeginFrameArgs::BeginFrameArgsType type) { | 167 BeginFrameArgs::BeginFrameArgsType type) { |
167 uint64_t sequence_number = next_sequence_number_++; | 168 uint64_t sequence_number = next_sequence_number_++; |
168 return BeginFrameArgs::Create( | 169 return BeginFrameArgs::Create( |
169 BEGINFRAME_FROM_HERE, source_id(), sequence_number, frame_time, | 170 BEGINFRAME_FROM_HERE, source_id(), sequence_number, |
| 171 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time, |
170 time_source_->NextTickTime(), time_source_->Interval(), type); | 172 time_source_->NextTickTime(), time_source_->Interval(), type); |
171 } | 173 } |
172 | 174 |
173 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) { | 175 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) { |
174 DCHECK(obs); | 176 DCHECK(obs); |
175 DCHECK(observers_.find(obs) == observers_.end()); | 177 DCHECK(observers_.find(obs) == observers_.end()); |
176 | 178 |
177 observers_.insert(obs); | 179 observers_.insert(obs); |
178 obs->OnBeginFrameSourcePausedChanged(false); | 180 obs->OnBeginFrameSourcePausedChanged(false); |
179 time_source_->SetActive(true); | 181 time_source_->SetActive(true); |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 frame_active_ = false; | 438 frame_active_ = false; |
437 | 439 |
438 BeginFrameAck ack(missed_begin_frame_args_.source_id, | 440 BeginFrameAck ack(missed_begin_frame_args_.source_id, |
439 missed_begin_frame_args_.sequence_number, | 441 missed_begin_frame_args_.sequence_number, |
440 ack_tracker_.LatestConfirmedSequenceNumber(), | 442 ack_tracker_.LatestConfirmedSequenceNumber(), |
441 ack_tracker_.AnyObserversHadDamage()); | 443 ack_tracker_.AnyObserversHadDamage()); |
442 client_->OnDidFinishFrame(ack); | 444 client_->OnDidFinishFrame(ack); |
443 } | 445 } |
444 | 446 |
445 } // namespace cc | 447 } // namespace cc |
OLD | NEW |