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 "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
11 #include "base/trace_event/trace_event.h" | 11 #include "base/trace_event/trace_event.h" |
12 #include "base/trace_event/trace_event_argument.h" | 12 #include "base/trace_event/trace_event_argument.h" |
13 #include "cc/scheduler/delay_based_time_source.h" | 13 #include "cc/scheduler/delay_based_time_source.h" |
14 #include "cc/scheduler/scheduler.h" | 14 #include "cc/scheduler/scheduler.h" |
15 #include "ui/gfx/frame_time.h" | |
16 | 15 |
17 #ifdef NDEBUG | 16 #ifdef NDEBUG |
18 #define DEBUG_FRAMES(...) | 17 #define DEBUG_FRAMES(...) |
19 #else | 18 #else |
20 #define DEBUG_FRAMES(name, arg1_name, arg1_val, arg2_name, arg2_val) \ | 19 #define DEBUG_FRAMES(name, arg1_name, arg1_val, arg2_name, arg2_val) \ |
21 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler.frames"), \ | 20 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler.frames"), \ |
22 name, \ | 21 name, \ |
23 arg1_name, \ | 22 arg1_name, \ |
24 arg1_val, \ | 23 arg1_val, \ |
25 arg2_name, \ | 24 arg2_name, \ |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
152 weak_factory_(this) { | 151 weak_factory_(this) { |
153 DCHECK(task_runner); | 152 DCHECK(task_runner); |
154 DCHECK_EQ(needs_begin_frames_, false); | 153 DCHECK_EQ(needs_begin_frames_, false); |
155 DCHECK_EQ(send_begin_frame_posted_, false); | 154 DCHECK_EQ(send_begin_frame_posted_, false); |
156 } | 155 } |
157 | 156 |
158 BackToBackBeginFrameSource::~BackToBackBeginFrameSource() { | 157 BackToBackBeginFrameSource::~BackToBackBeginFrameSource() { |
159 } | 158 } |
160 | 159 |
161 base::TimeTicks BackToBackBeginFrameSource::Now() { | 160 base::TimeTicks BackToBackBeginFrameSource::Now() { |
162 return gfx::FrameTime::Now(); | 161 return base::TimeTicks::Now(); |
163 } | 162 } |
164 | 163 |
165 void BackToBackBeginFrameSource::OnNeedsBeginFramesChange( | 164 void BackToBackBeginFrameSource::OnNeedsBeginFramesChange( |
166 bool needs_begin_frames) { | 165 bool needs_begin_frames) { |
167 if (!needs_begin_frames) | 166 if (!needs_begin_frames) |
168 return; | 167 return; |
169 | 168 |
170 if (send_begin_frame_posted_) | 169 if (send_begin_frame_posted_) |
171 return; | 170 return; |
172 | 171 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
204 BeginFrameSourceMixIn::AsValueInto(dict); | 203 BeginFrameSourceMixIn::AsValueInto(dict); |
205 dict->SetBoolean("send_begin_frame_posted_", send_begin_frame_posted_); | 204 dict->SetBoolean("send_begin_frame_posted_", send_begin_frame_posted_); |
206 } | 205 } |
207 | 206 |
208 // SyntheticBeginFrameSource --------------------------------------------- | 207 // SyntheticBeginFrameSource --------------------------------------------- |
209 scoped_ptr<SyntheticBeginFrameSource> SyntheticBeginFrameSource::Create( | 208 scoped_ptr<SyntheticBeginFrameSource> SyntheticBeginFrameSource::Create( |
210 base::SingleThreadTaskRunner* task_runner, | 209 base::SingleThreadTaskRunner* task_runner, |
211 base::TimeTicks initial_vsync_timebase, | 210 base::TimeTicks initial_vsync_timebase, |
212 base::TimeDelta initial_vsync_interval) { | 211 base::TimeDelta initial_vsync_interval) { |
213 scoped_refptr<DelayBasedTimeSource> time_source; | 212 scoped_refptr<DelayBasedTimeSource> time_source; |
214 if (gfx::FrameTime::TimestampsAreHighRes()) { | 213 if (base::TimeTicks::IsHighResolution()) { |
215 time_source = DelayBasedTimeSourceHighRes::Create(initial_vsync_interval, | 214 time_source = DelayBasedTimeSourceHighRes::Create(initial_vsync_interval, |
brianderson
2015/05/22 19:20:56
We can also get rid of this if block and remove th
| |
216 task_runner); | 215 task_runner); |
217 } else { | 216 } else { |
218 time_source = | 217 time_source = |
219 DelayBasedTimeSource::Create(initial_vsync_interval, task_runner); | 218 DelayBasedTimeSource::Create(initial_vsync_interval, task_runner); |
220 } | 219 } |
221 | 220 |
222 return make_scoped_ptr(new SyntheticBeginFrameSource(time_source)); | 221 return make_scoped_ptr(new SyntheticBeginFrameSource(time_source)); |
223 } | 222 } |
224 | 223 |
225 SyntheticBeginFrameSource::SyntheticBeginFrameSource( | 224 SyntheticBeginFrameSource::SyntheticBeginFrameSource( |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
469 if (!observer_->LastUsedBeginFrameArgs().IsValid()) | 468 if (!observer_->LastUsedBeginFrameArgs().IsValid()) |
470 return true; | 469 return true; |
471 | 470 |
472 // Only allow new args have a *strictly bigger* frame_time value and statisfy | 471 // Only allow new args have a *strictly bigger* frame_time value and statisfy |
473 // minimum interval requirement. | 472 // minimum interval requirement. |
474 return (args.frame_time >= | 473 return (args.frame_time >= |
475 observer_->LastUsedBeginFrameArgs().frame_time + minimum_interval_); | 474 observer_->LastUsedBeginFrameArgs().frame_time + minimum_interval_); |
476 } | 475 } |
477 | 476 |
478 } // namespace cc | 477 } // namespace cc |
OLD | NEW |