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 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 : test_hooks_(test_hooks) {} | 671 : test_hooks_(test_hooks) {} |
672 | 672 |
673 TestHooks* test_hooks_; | 673 TestHooks* test_hooks_; |
674 }; | 674 }; |
675 | 675 |
676 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. | 676 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. |
677 class LayerTreeHostForTesting : public LayerTreeHost { | 677 class LayerTreeHostForTesting : public LayerTreeHost { |
678 public: | 678 public: |
679 static scoped_ptr<LayerTreeHostForTesting> Create( | 679 static scoped_ptr<LayerTreeHostForTesting> Create( |
680 TestHooks* test_hooks, | 680 TestHooks* test_hooks, |
| 681 CompositorMode mode, |
681 LayerTreeHostClientForTesting* client, | 682 LayerTreeHostClientForTesting* client, |
682 SharedBitmapManager* shared_bitmap_manager, | 683 SharedBitmapManager* shared_bitmap_manager, |
683 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 684 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
684 TaskGraphRunner* task_graph_runner, | 685 TaskGraphRunner* task_graph_runner, |
685 const LayerTreeSettings& settings, | 686 const LayerTreeSettings& settings, |
686 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 687 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
687 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 688 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
688 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 689 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
689 LayerTreeHost::InitParams params; | 690 LayerTreeHost::InitParams params; |
690 params.client = client; | 691 params.client = client; |
691 params.shared_bitmap_manager = shared_bitmap_manager; | 692 params.shared_bitmap_manager = shared_bitmap_manager; |
692 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; | 693 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; |
693 params.task_graph_runner = task_graph_runner; | 694 params.task_graph_runner = task_graph_runner; |
694 params.settings = &settings; | 695 params.settings = &settings; |
695 scoped_ptr<LayerTreeHostForTesting> layer_tree_host( | 696 scoped_ptr<LayerTreeHostForTesting> layer_tree_host( |
696 new LayerTreeHostForTesting(test_hooks, ¶ms)); | 697 new LayerTreeHostForTesting(test_hooks, ¶ms, mode)); |
697 scoped_ptr<TaskRunnerProvider> task_runner_provider = | 698 scoped_ptr<TaskRunnerProvider> task_runner_provider = |
698 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); | 699 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); |
699 scoped_ptr<Proxy> proxy; | 700 scoped_ptr<Proxy> proxy; |
700 if (impl_task_runner.get()) { | 701 if (mode == CompositorMode::Threaded) { |
| 702 DCHECK(impl_task_runner.get()); |
701 proxy = ThreadProxyForTest::Create( | 703 proxy = ThreadProxyForTest::Create( |
702 test_hooks, layer_tree_host.get(), task_runner_provider.get(), | 704 test_hooks, layer_tree_host.get(), task_runner_provider.get(), |
703 std::move(external_begin_frame_source)); | 705 std::move(external_begin_frame_source)); |
704 } else { | 706 } else { |
705 proxy = SingleThreadProxyForTest::Create( | 707 proxy = SingleThreadProxyForTest::Create( |
706 test_hooks, layer_tree_host.get(), client, task_runner_provider.get(), | 708 test_hooks, layer_tree_host.get(), client, task_runner_provider.get(), |
707 std::move(external_begin_frame_source)); | 709 std::move(external_begin_frame_source)); |
708 } | 710 } |
709 layer_tree_host->InitializeForTesting(std::move(task_runner_provider), | 711 layer_tree_host->InitializeForTesting(std::move(task_runner_provider), |
710 std::move(proxy)); | 712 std::move(proxy)); |
(...skipping 17 matching lines...) Expand all Loading... |
728 void SetNeedsUpdateLayers() override { | 730 void SetNeedsUpdateLayers() override { |
729 if (!test_started_) | 731 if (!test_started_) |
730 return; | 732 return; |
731 LayerTreeHost::SetNeedsUpdateLayers(); | 733 LayerTreeHost::SetNeedsUpdateLayers(); |
732 } | 734 } |
733 | 735 |
734 void set_test_started(bool started) { test_started_ = started; } | 736 void set_test_started(bool started) { test_started_ = started; } |
735 | 737 |
736 private: | 738 private: |
737 LayerTreeHostForTesting(TestHooks* test_hooks, | 739 LayerTreeHostForTesting(TestHooks* test_hooks, |
738 LayerTreeHost::InitParams* params) | 740 LayerTreeHost::InitParams* params, |
739 : LayerTreeHost(params), test_hooks_(test_hooks), test_started_(false) {} | 741 CompositorMode mode) |
| 742 : LayerTreeHost(params, mode), |
| 743 test_hooks_(test_hooks), |
| 744 test_started_(false) {} |
740 | 745 |
741 TestHooks* test_hooks_; | 746 TestHooks* test_hooks_; |
742 bool test_started_; | 747 bool test_started_; |
743 }; | 748 }; |
744 | 749 |
745 LayerTreeTest::LayerTreeTest() | 750 LayerTreeTest::LayerTreeTest() |
746 : output_surface_(nullptr), | 751 : output_surface_(nullptr), |
747 external_begin_frame_source_(nullptr), | 752 external_begin_frame_source_(nullptr), |
748 beginning_(false), | 753 beginning_(false), |
749 end_when_begin_returns_(false), | 754 end_when_begin_returns_(false), |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
908 client_ = LayerTreeHostClientForTesting::Create(this); | 913 client_ = LayerTreeHostClientForTesting::Create(this); |
909 | 914 |
910 scoped_ptr<FakeExternalBeginFrameSource> external_begin_frame_source; | 915 scoped_ptr<FakeExternalBeginFrameSource> external_begin_frame_source; |
911 if (settings_.use_external_begin_frame_source) { | 916 if (settings_.use_external_begin_frame_source) { |
912 external_begin_frame_source.reset(new FakeExternalBeginFrameSource( | 917 external_begin_frame_source.reset(new FakeExternalBeginFrameSource( |
913 settings_.renderer_settings.refresh_rate)); | 918 settings_.renderer_settings.refresh_rate)); |
914 external_begin_frame_source_ = external_begin_frame_source.get(); | 919 external_begin_frame_source_ = external_begin_frame_source.get(); |
915 } | 920 } |
916 | 921 |
917 DCHECK(!impl_thread_ || impl_thread_->task_runner().get()); | 922 DCHECK(!impl_thread_ || impl_thread_->task_runner().get()); |
| 923 CompositorMode mode = |
| 924 impl_thread_ ? CompositorMode::Threaded : CompositorMode::SingleThreaded; |
918 layer_tree_host_ = LayerTreeHostForTesting::Create( | 925 layer_tree_host_ = LayerTreeHostForTesting::Create( |
919 this, client_.get(), shared_bitmap_manager_.get(), | 926 this, mode, client_.get(), shared_bitmap_manager_.get(), |
920 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), settings_, | 927 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), settings_, |
921 base::ThreadTaskRunnerHandle::Get(), | 928 base::ThreadTaskRunnerHandle::Get(), |
922 impl_thread_ ? impl_thread_->task_runner() : NULL, | 929 impl_thread_ ? impl_thread_->task_runner() : NULL, |
923 std::move(external_begin_frame_source)); | 930 std::move(external_begin_frame_source)); |
924 ASSERT_TRUE(layer_tree_host_); | 931 ASSERT_TRUE(layer_tree_host_); |
925 | 932 |
926 started_ = true; | 933 started_ = true; |
927 beginning_ = true; | 934 beginning_ = true; |
928 SetupTree(); | 935 SetupTree(); |
929 WillBeginTest(); | 936 WillBeginTest(); |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 // layer tree host when the task_runner_provider does not exist, often for | 1156 // layer tree host when the task_runner_provider does not exist, often for |
1150 // checking settings after a test has completed. For example, | 1157 // checking settings after a test has completed. For example, |
1151 // LTHPixelResourceTest::RunPixelResourceTest. See elsewhere in this file for | 1158 // LTHPixelResourceTest::RunPixelResourceTest. See elsewhere in this file for |
1152 // other examples. | 1159 // other examples. |
1153 DCHECK(!task_runner_provider() || task_runner_provider()->IsMainThread() || | 1160 DCHECK(!task_runner_provider() || task_runner_provider()->IsMainThread() || |
1154 task_runner_provider()->IsMainThreadBlocked()); | 1161 task_runner_provider()->IsMainThreadBlocked()); |
1155 return layer_tree_host_.get(); | 1162 return layer_tree_host_.get(); |
1156 } | 1163 } |
1157 | 1164 |
1158 } // namespace cc | 1165 } // namespace cc |
OLD | NEW |