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

Side by Side Diff: cc/test/layer_tree_test.cc

Issue 1464313007: cc: Introduce CompositorMode enum. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format fix Created 5 years 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
OLDNEW
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
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, &params)); 707 new LayerTreeHostForTesting(test_hooks, &params, 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698