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 |