Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/layer_tree_test.h" | 5 #include "cc/test/layer_tree_test.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "base/thread_task_runner_handle.h" | 10 #include "base/thread_task_runner_handle.h" |
| (...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 681 : test_hooks_(test_hooks) {} | 681 : test_hooks_(test_hooks) {} |
| 682 | 682 |
| 683 TestHooks* test_hooks_; | 683 TestHooks* test_hooks_; |
| 684 }; | 684 }; |
| 685 | 685 |
| 686 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. | 686 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. |
| 687 class LayerTreeHostForTesting : public LayerTreeHost { | 687 class LayerTreeHostForTesting : public LayerTreeHost { |
| 688 public: | 688 public: |
| 689 static scoped_ptr<LayerTreeHostForTesting> Create( | 689 static scoped_ptr<LayerTreeHostForTesting> Create( |
| 690 TestHooks* test_hooks, | 690 TestHooks* test_hooks, |
| 691 CompositorMode mode, | |
| 691 LayerTreeHostClientForTesting* client, | 692 LayerTreeHostClientForTesting* client, |
| 692 SharedBitmapManager* shared_bitmap_manager, | 693 SharedBitmapManager* shared_bitmap_manager, |
| 693 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 694 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 694 TaskGraphRunner* task_graph_runner, | 695 TaskGraphRunner* task_graph_runner, |
| 695 const LayerTreeSettings& settings, | 696 const LayerTreeSettings& settings, |
| 696 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 697 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 697 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 698 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
| 698 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 699 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
| 699 LayerTreeHost::InitParams params; | 700 LayerTreeHost::InitParams params; |
| 700 params.client = client; | 701 params.client = client; |
| 701 params.shared_bitmap_manager = shared_bitmap_manager; | 702 params.shared_bitmap_manager = shared_bitmap_manager; |
| 702 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; | 703 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; |
| 703 params.task_graph_runner = task_graph_runner; | 704 params.task_graph_runner = task_graph_runner; |
| 704 params.settings = &settings; | 705 params.settings = &settings; |
| 705 scoped_ptr<LayerTreeHostForTesting> layer_tree_host( | 706 scoped_ptr<LayerTreeHostForTesting> layer_tree_host( |
| 706 new LayerTreeHostForTesting(test_hooks, ¶ms)); | 707 new LayerTreeHostForTesting(test_hooks, ¶ms, mode)); |
| 707 scoped_ptr<TaskRunnerProvider> task_runner_provider = | 708 scoped_ptr<TaskRunnerProvider> task_runner_provider = |
| 708 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); | 709 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); |
| 709 scoped_ptr<Proxy> proxy; | 710 scoped_ptr<Proxy> proxy; |
| 710 if (impl_task_runner.get()) { | 711 if (mode == CompositorMode::Threaded) { |
| 712 DCHECK(impl_task_runner.get()); | |
| 711 proxy = ThreadProxyForTest::Create( | 713 proxy = ThreadProxyForTest::Create( |
| 712 test_hooks, layer_tree_host.get(), task_runner_provider.get(), | 714 test_hooks, layer_tree_host.get(), task_runner_provider.get(), |
| 713 std::move(external_begin_frame_source)); | 715 std::move(external_begin_frame_source)); |
| 714 } else { | 716 } else { |
| 715 proxy = SingleThreadProxyForTest::Create( | 717 proxy = SingleThreadProxyForTest::Create( |
| 716 test_hooks, layer_tree_host.get(), client, task_runner_provider.get(), | 718 test_hooks, layer_tree_host.get(), client, task_runner_provider.get(), |
| 717 std::move(external_begin_frame_source)); | 719 std::move(external_begin_frame_source)); |
| 718 } | 720 } |
| 719 layer_tree_host->InitializeForTesting(std::move(task_runner_provider), | 721 layer_tree_host->InitializeForTesting(std::move(task_runner_provider), |
| 720 std::move(proxy)); | 722 std::move(proxy)); |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 738 void SetNeedsUpdateLayers() override { | 740 void SetNeedsUpdateLayers() override { |
| 739 if (!test_started_) | 741 if (!test_started_) |
| 740 return; | 742 return; |
| 741 LayerTreeHost::SetNeedsUpdateLayers(); | 743 LayerTreeHost::SetNeedsUpdateLayers(); |
| 742 } | 744 } |
| 743 | 745 |
| 744 void set_test_started(bool started) { test_started_ = started; } | 746 void set_test_started(bool started) { test_started_ = started; } |
| 745 | 747 |
| 746 private: | 748 private: |
| 747 LayerTreeHostForTesting(TestHooks* test_hooks, | 749 LayerTreeHostForTesting(TestHooks* test_hooks, |
| 748 LayerTreeHost::InitParams* params) | 750 LayerTreeHost::InitParams* params, |
| 749 : LayerTreeHost(params), test_hooks_(test_hooks), test_started_(false) {} | 751 CompositorMode mode) |
| 752 : LayerTreeHost(params, mode), | |
| 753 test_hooks_(test_hooks), | |
| 754 test_started_(false) {} | |
| 750 | 755 |
| 751 TestHooks* test_hooks_; | 756 TestHooks* test_hooks_; |
| 752 bool test_started_; | 757 bool test_started_; |
| 753 }; | 758 }; |
| 754 | 759 |
| 755 LayerTreeTest::LayerTreeTest() | 760 LayerTreeTest::LayerTreeTest() |
| 756 : output_surface_(nullptr), | 761 : output_surface_(nullptr), |
| 757 external_begin_frame_source_(nullptr), | 762 external_begin_frame_source_(nullptr), |
| 758 beginning_(false), | 763 beginning_(false), |
| 759 end_when_begin_returns_(false), | 764 end_when_begin_returns_(false), |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 918 client_ = LayerTreeHostClientForTesting::Create(this); | 923 client_ = LayerTreeHostClientForTesting::Create(this); |
| 919 | 924 |
| 920 scoped_ptr<FakeExternalBeginFrameSource> external_begin_frame_source; | 925 scoped_ptr<FakeExternalBeginFrameSource> external_begin_frame_source; |
| 921 if (settings_.use_external_begin_frame_source) { | 926 if (settings_.use_external_begin_frame_source) { |
| 922 external_begin_frame_source.reset(new FakeExternalBeginFrameSource( | 927 external_begin_frame_source.reset(new FakeExternalBeginFrameSource( |
| 923 settings_.renderer_settings.refresh_rate)); | 928 settings_.renderer_settings.refresh_rate)); |
| 924 external_begin_frame_source_ = external_begin_frame_source.get(); | 929 external_begin_frame_source_ = external_begin_frame_source.get(); |
| 925 } | 930 } |
| 926 | 931 |
| 927 DCHECK(!impl_thread_ || impl_thread_->task_runner().get()); | 932 DCHECK(!impl_thread_ || impl_thread_->task_runner().get()); |
| 933 CompositorMode mode; | |
|
vmpstr
2015/12/07 18:50:08
you can just
CompositorMode mode = impl_thread ?
Khushal
2015/12/07 21:49:26
That makes sense. Done.
| |
| 934 if (impl_thread_) { | |
| 935 mode = CompositorMode::Threaded; | |
| 936 } else { | |
| 937 mode = CompositorMode::SingleThreaded; | |
| 938 } | |
| 928 layer_tree_host_ = LayerTreeHostForTesting::Create( | 939 layer_tree_host_ = LayerTreeHostForTesting::Create( |
| 929 this, client_.get(), shared_bitmap_manager_.get(), | 940 this, mode, client_.get(), shared_bitmap_manager_.get(), |
| 930 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), settings_, | 941 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), settings_, |
| 931 base::ThreadTaskRunnerHandle::Get(), | 942 base::ThreadTaskRunnerHandle::Get(), |
| 932 impl_thread_ ? impl_thread_->task_runner() : NULL, | 943 impl_thread_ ? impl_thread_->task_runner() : NULL, |
| 933 std::move(external_begin_frame_source)); | 944 std::move(external_begin_frame_source)); |
| 934 ASSERT_TRUE(layer_tree_host_); | 945 ASSERT_TRUE(layer_tree_host_); |
| 935 | 946 |
| 936 started_ = true; | 947 started_ = true; |
| 937 beginning_ = true; | 948 beginning_ = true; |
| 938 SetupTree(); | 949 SetupTree(); |
| 939 WillBeginTest(); | 950 WillBeginTest(); |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1155 // layer tree host when the task_runner_provider does not exist, often for | 1166 // layer tree host when the task_runner_provider does not exist, often for |
| 1156 // checking settings after a test has completed. For example, | 1167 // checking settings after a test has completed. For example, |
| 1157 // LTHPixelResourceTest::RunPixelResourceTest. See elsewhere in this file for | 1168 // LTHPixelResourceTest::RunPixelResourceTest. See elsewhere in this file for |
| 1158 // other examples. | 1169 // other examples. |
| 1159 DCHECK(!task_runner_provider() || task_runner_provider()->IsMainThread() || | 1170 DCHECK(!task_runner_provider() || task_runner_provider()->IsMainThread() || |
| 1160 task_runner_provider()->IsMainThreadBlocked()); | 1171 task_runner_provider()->IsMainThreadBlocked()); |
| 1161 return layer_tree_host_.get(); | 1172 return layer_tree_host_.get(); |
| 1162 } | 1173 } |
| 1163 | 1174 |
| 1164 } // namespace cc | 1175 } // namespace cc |
| OLD | NEW |