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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 DCHECK(obs); | 96 DCHECK(obs); |
97 DCHECK(observers_.find(obs) != observers_.end()); | 97 DCHECK(observers_.find(obs) != observers_.end()); |
98 observers_.erase(obs); | 98 observers_.erase(obs); |
99 pending_begin_frame_observers_.erase(obs); | 99 pending_begin_frame_observers_.erase(obs); |
100 if (pending_begin_frame_observers_.empty()) | 100 if (pending_begin_frame_observers_.empty()) |
101 time_source_->SetActive(false); | 101 time_source_->SetActive(false); |
102 } | 102 } |
103 | 103 |
104 void BackToBackBeginFrameSource::DidFinishFrame(BeginFrameObserver* obs, | 104 void BackToBackBeginFrameSource::DidFinishFrame(BeginFrameObserver* obs, |
105 const BeginFrameAck& ack) { | 105 const BeginFrameAck& ack) { |
106 if (ack.remaining_frames == 0 && observers_.find(obs) != observers_.end()) { | 106 if (observers_.find(obs) != observers_.end()) { |
107 pending_begin_frame_observers_.insert(obs); | 107 pending_begin_frame_observers_.insert(obs); |
108 time_source_->SetActive(true); | 108 time_source_->SetActive(true); |
109 } | 109 } |
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() { |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 if (!frame_active_ || !ack_tracker_.AllObserversFinishedFrame()) | 430 if (!frame_active_ || !ack_tracker_.AllObserversFinishedFrame()) |
431 return; | 431 return; |
432 FinishFrame(); | 432 FinishFrame(); |
433 } | 433 } |
434 | 434 |
435 void ExternalBeginFrameSource::FinishFrame() { | 435 void ExternalBeginFrameSource::FinishFrame() { |
436 frame_active_ = false; | 436 frame_active_ = false; |
437 | 437 |
438 BeginFrameAck ack(missed_begin_frame_args_.source_id, | 438 BeginFrameAck ack(missed_begin_frame_args_.source_id, |
439 missed_begin_frame_args_.sequence_number, | 439 missed_begin_frame_args_.sequence_number, |
440 ack_tracker_.LatestConfirmedSequenceNumber(), 0, | 440 ack_tracker_.LatestConfirmedSequenceNumber(), |
441 ack_tracker_.AnyObserversHadDamage()); | 441 ack_tracker_.AnyObserversHadDamage()); |
442 client_->OnDidFinishFrame(ack); | 442 client_->OnDidFinishFrame(ack); |
443 } | 443 } |
444 | 444 |
445 } // namespace cc | 445 } // namespace cc |
OLD | NEW |