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 |