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/test/fake_external_begin_frame_source.h" | 5 #include "cc/test/fake_external_begin_frame_source.h" |
6 | 6 |
7 #include "base/location.h" | 7 #include "base/location.h" |
8 #include "base/single_thread_task_runner.h" | 8 #include "base/single_thread_task_runner.h" |
9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
11 #include "cc/test/begin_frame_args_test.h" | 11 #include "cc/test/begin_frame_args_test.h" |
12 | 12 |
13 namespace cc { | 13 namespace cc { |
14 | 14 |
15 FakeExternalBeginFrameSource::FakeExternalBeginFrameSource(double refresh_rate) | 15 FakeExternalBeginFrameSource::FakeExternalBeginFrameSource(double refresh_rate) |
16 : milliseconds_per_frame_(1000.0 / refresh_rate), | 16 : milliseconds_per_frame_(1000.0 / refresh_rate), |
17 is_ready_(false), | |
18 weak_ptr_factory_(this) { | 17 weak_ptr_factory_(this) { |
19 DetachFromThread(); | 18 DetachFromThread(); |
20 } | 19 } |
21 | 20 |
22 FakeExternalBeginFrameSource::~FakeExternalBeginFrameSource() { | 21 FakeExternalBeginFrameSource::~FakeExternalBeginFrameSource() { |
23 DCHECK(CalledOnValidThread()); | 22 DCHECK(CalledOnValidThread()); |
24 } | 23 } |
25 | 24 |
26 void FakeExternalBeginFrameSource::SetClientReady() { | |
27 DCHECK(CalledOnValidThread()); | |
28 is_ready_ = true; | |
29 } | |
30 | |
31 void FakeExternalBeginFrameSource::OnNeedsBeginFramesChanged( | 25 void FakeExternalBeginFrameSource::OnNeedsBeginFramesChanged( |
32 bool needs_begin_frames) { | 26 bool needs_begin_frames) { |
33 DCHECK(CalledOnValidThread()); | 27 DCHECK(CalledOnValidThread()); |
34 if (needs_begin_frames) { | 28 if (needs_begin_frames) { |
35 PostTestOnBeginFrame(); | 29 PostTestOnBeginFrame(); |
36 } else { | 30 } else { |
37 begin_frame_task_.Cancel(); | 31 begin_frame_task_.Cancel(); |
38 } | 32 } |
39 } | 33 } |
40 | 34 |
41 void FakeExternalBeginFrameSource::TestOnBeginFrame() { | 35 void FakeExternalBeginFrameSource::TestOnBeginFrame() { |
42 DCHECK(CalledOnValidThread()); | 36 DCHECK(CalledOnValidThread()); |
43 CallOnBeginFrame(CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); | 37 CallOnBeginFrame(CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); |
44 PostTestOnBeginFrame(); | 38 PostTestOnBeginFrame(); |
45 } | 39 } |
46 | 40 |
47 void FakeExternalBeginFrameSource::PostTestOnBeginFrame() { | 41 void FakeExternalBeginFrameSource::PostTestOnBeginFrame() { |
48 begin_frame_task_.Reset( | 42 begin_frame_task_.Reset( |
49 base::Bind(&FakeExternalBeginFrameSource::TestOnBeginFrame, | 43 base::Bind(&FakeExternalBeginFrameSource::TestOnBeginFrame, |
50 weak_ptr_factory_.GetWeakPtr())); | 44 weak_ptr_factory_.GetWeakPtr())); |
51 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 45 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
52 FROM_HERE, begin_frame_task_.callback(), | 46 FROM_HERE, begin_frame_task_.callback(), |
53 base::TimeDelta::FromMilliseconds(milliseconds_per_frame_)); | 47 base::TimeDelta::FromMilliseconds(milliseconds_per_frame_)); |
54 } | 48 } |
55 | 49 |
56 } // namespace cc | 50 } // namespace cc |
OLD | NEW |