Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: cc/scheduler/begin_frame_source.h

Issue 1200113003: cc: Cleanup DelayBasedTimeSource code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@task_runner_refptr
Patch Set: Fix race between missed tick and normal tick Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | cc/scheduler/begin_frame_source.cc » ('j') | cc/scheduler/begin_frame_source.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef CC_SCHEDULER_BEGIN_FRAME_SOURCE_H_ 5 #ifndef CC_SCHEDULER_BEGIN_FRAME_SOURCE_H_
6 #define CC_SCHEDULER_BEGIN_FRAME_SOURCE_H_ 6 #define CC_SCHEDULER_BEGIN_FRAME_SOURCE_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 200
201 private: 201 private:
202 base::WeakPtrFactory<BackToBackBeginFrameSource> weak_factory_; 202 base::WeakPtrFactory<BackToBackBeginFrameSource> weak_factory_;
203 203
204 DISALLOW_COPY_AND_ASSIGN(BackToBackBeginFrameSource); 204 DISALLOW_COPY_AND_ASSIGN(BackToBackBeginFrameSource);
205 }; 205 };
206 206
207 // A frame source which is locked to an external parameters provides from a 207 // A frame source which is locked to an external parameters provides from a
208 // vsync source and generates BeginFrameArgs for it. 208 // vsync source and generates BeginFrameArgs for it.
209 class CC_EXPORT SyntheticBeginFrameSource : public BeginFrameSourceBase, 209 class CC_EXPORT SyntheticBeginFrameSource : public BeginFrameSourceBase,
210 public TimeSourceClient { 210 public DelayBasedTimeSourceClient {
211 public: 211 public:
212 static scoped_ptr<SyntheticBeginFrameSource> Create( 212 static scoped_ptr<SyntheticBeginFrameSource> Create(
213 base::SingleThreadTaskRunner* task_runner, 213 base::SingleThreadTaskRunner* task_runner,
214 base::TimeDelta initial_vsync_interval); 214 base::TimeDelta initial_vsync_interval);
215 ~SyntheticBeginFrameSource() override; 215 ~SyntheticBeginFrameSource() override;
216 216
217 void OnUpdateVSyncParameters(base::TimeTicks new_vsync_timebase, 217 void OnUpdateVSyncParameters(base::TimeTicks new_vsync_timebase,
218 base::TimeDelta new_vsync_interval); 218 base::TimeDelta new_vsync_interval);
219 219
220 // Tracing 220 // Tracing
221 void AsValueInto(base::trace_event::TracedValue* dict) const override; 221 void AsValueInto(base::trace_event::TracedValue* dict) const override;
222 222
223 // TimeSourceClient 223 // DelayBasedTimeSourceClient
224 void OnMissedTick() override;
224 void OnTimerTick() override; 225 void OnTimerTick() override;
225 226
226 protected: 227 protected:
227 explicit SyntheticBeginFrameSource( 228 explicit SyntheticBeginFrameSource(
229 base::SingleThreadTaskRunner* task_runner,
228 scoped_ptr<DelayBasedTimeSource> time_source); 230 scoped_ptr<DelayBasedTimeSource> time_source);
229 231
230 BeginFrameArgs CreateBeginFrameArgs(base::TimeTicks frame_time, 232 BeginFrameArgs CreateBeginFrameArgs(base::TimeTicks frame_time,
231 BeginFrameArgs::BeginFrameArgsType type); 233 BeginFrameArgs::BeginFrameArgsType type);
232 234
233 // BeginFrameSourceBase 235 // BeginFrameSourceBase
234 void OnNeedsBeginFramesChange(bool needs_begin_frames) override; 236 void OnNeedsBeginFramesChange(bool needs_begin_frames) override;
235 237
238 base::SingleThreadTaskRunner* task_runner_;
236 scoped_ptr<DelayBasedTimeSource> time_source_; 239 scoped_ptr<DelayBasedTimeSource> time_source_;
237 240
238 private: 241 private:
242 base::WeakPtrFactory<SyntheticBeginFrameSource> weak_factory_;
243
239 DISALLOW_COPY_AND_ASSIGN(SyntheticBeginFrameSource); 244 DISALLOW_COPY_AND_ASSIGN(SyntheticBeginFrameSource);
240 }; 245 };
241 246
242 // A "virtual" frame source which lets you switch between multiple other frame 247 // A "virtual" frame source which lets you switch between multiple other frame
243 // sources while making sure the BeginFrameArgs stays increasing (possibly 248 // sources while making sure the BeginFrameArgs stays increasing (possibly
244 // enforcing minimum boundry between BeginFrameArgs messages). 249 // enforcing minimum boundry between BeginFrameArgs messages).
245 class CC_EXPORT BeginFrameSourceMultiplexer : public BeginFrameSourceBase, 250 class CC_EXPORT BeginFrameSourceMultiplexer : public BeginFrameSourceBase,
246 public BeginFrameObserver { 251 public BeginFrameObserver {
247 public: 252 public:
248 static scoped_ptr<BeginFrameSourceMultiplexer> Create(); 253 static scoped_ptr<BeginFrameSourceMultiplexer> Create();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 BeginFrameSource* active_source_; 288 BeginFrameSource* active_source_;
284 std::set<BeginFrameSource*> source_list_; 289 std::set<BeginFrameSource*> source_list_;
285 290
286 private: 291 private:
287 DISALLOW_COPY_AND_ASSIGN(BeginFrameSourceMultiplexer); 292 DISALLOW_COPY_AND_ASSIGN(BeginFrameSourceMultiplexer);
288 }; 293 };
289 294
290 } // namespace cc 295 } // namespace cc
291 296
292 #endif // CC_SCHEDULER_BEGIN_FRAME_SOURCE_H_ 297 #endif // CC_SCHEDULER_BEGIN_FRAME_SOURCE_H_
OLDNEW
« no previous file with comments | « no previous file | cc/scheduler/begin_frame_source.cc » ('j') | cc/scheduler/begin_frame_source.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698