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 |