| 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/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 TestHooks* test_hooks_; | 486 TestHooks* test_hooks_; |
| 487 }; | 487 }; |
| 488 | 488 |
| 489 class LayerTreeTestCompositorFrameSinkClient | 489 class LayerTreeTestCompositorFrameSinkClient |
| 490 : public TestCompositorFrameSinkClient { | 490 : public TestCompositorFrameSinkClient { |
| 491 public: | 491 public: |
| 492 explicit LayerTreeTestCompositorFrameSinkClient(TestHooks* hooks) | 492 explicit LayerTreeTestCompositorFrameSinkClient(TestHooks* hooks) |
| 493 : hooks_(hooks) {} | 493 : hooks_(hooks) {} |
| 494 | 494 |
| 495 // TestCompositorFrameSinkClient implementation. | 495 // TestCompositorFrameSinkClient implementation. |
| 496 std::unique_ptr<OutputSurface> CreateDisplayOutputSurface( |
| 497 scoped_refptr<ContextProvider> compositor_context_provider) override { |
| 498 return hooks_->CreateDisplayOutputSurfaceOnThread( |
| 499 std::move(compositor_context_provider)); |
| 500 } |
| 496 void DisplayReceivedCompositorFrame(const CompositorFrame& frame) override { | 501 void DisplayReceivedCompositorFrame(const CompositorFrame& frame) override { |
| 497 hooks_->DisplayReceivedCompositorFrameOnThread(frame); | 502 hooks_->DisplayReceivedCompositorFrameOnThread(frame); |
| 498 } | 503 } |
| 499 void DisplayWillDrawAndSwap(bool will_draw_and_swap, | 504 void DisplayWillDrawAndSwap(bool will_draw_and_swap, |
| 500 const RenderPassList& render_passes) override { | 505 const RenderPassList& render_passes) override { |
| 501 hooks_->DisplayWillDrawAndSwapOnThread(will_draw_and_swap, render_passes); | 506 hooks_->DisplayWillDrawAndSwapOnThread(will_draw_and_swap, render_passes); |
| 502 } | 507 } |
| 503 void DisplayDidDrawAndSwap() override { | 508 void DisplayDidDrawAndSwap() override { |
| 504 hooks_->DisplayDidDrawAndSwapOnThread(); | 509 hooks_->DisplayDidDrawAndSwapOnThread(); |
| 505 } | 510 } |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 865 | 870 |
| 866 void LayerTreeTest::RequestNewCompositorFrameSink() { | 871 void LayerTreeTest::RequestNewCompositorFrameSink() { |
| 867 scoped_refptr<TestContextProvider> shared_context_provider = | 872 scoped_refptr<TestContextProvider> shared_context_provider = |
| 868 TestContextProvider::Create(); | 873 TestContextProvider::Create(); |
| 869 scoped_refptr<TestContextProvider> worker_context_provider = | 874 scoped_refptr<TestContextProvider> worker_context_provider = |
| 870 TestContextProvider::CreateWorker(); | 875 TestContextProvider::CreateWorker(); |
| 871 | 876 |
| 872 auto compositor_frame_sink = CreateCompositorFrameSink( | 877 auto compositor_frame_sink = CreateCompositorFrameSink( |
| 873 std::move(shared_context_provider), std::move(worker_context_provider)); | 878 std::move(shared_context_provider), std::move(worker_context_provider)); |
| 874 compositor_frame_sink->SetClient(compositor_frame_sink_client_.get()); | 879 compositor_frame_sink->SetClient(compositor_frame_sink_client_.get()); |
| 875 | 880 layer_tree_host_->SetCompositorFrameSink(std::move(compositor_frame_sink)); |
| 876 layer_tree_host_->SetCompositorFrameSink(std::move(compositor_frame_sink)); | |
| 877 } | 881 } |
| 878 | 882 |
| 879 std::unique_ptr<TestCompositorFrameSink> | 883 std::unique_ptr<TestCompositorFrameSink> |
| 880 LayerTreeTest::CreateCompositorFrameSink( | 884 LayerTreeTest::CreateCompositorFrameSink( |
| 881 scoped_refptr<ContextProvider> compositor_context_provider, | 885 scoped_refptr<ContextProvider> compositor_context_provider, |
| 882 scoped_refptr<ContextProvider> worker_context_provider) { | 886 scoped_refptr<ContextProvider> worker_context_provider) { |
| 883 bool synchronous_composite = | 887 bool synchronous_composite = |
| 884 !HasImplThread() && | 888 !HasImplThread() && |
| 885 !layer_tree_host()->GetSettings().single_thread_proxy_scheduler; | 889 !layer_tree_host()->GetSettings().single_thread_proxy_scheduler; |
| 886 // Disable reclaim resources by default to act like the Display lives | 890 // Disable reclaim resources by default to act like the Display lives |
| 887 // out-of-process. | 891 // out-of-process. |
| 888 bool force_disable_reclaim_resources = true; | 892 bool force_disable_reclaim_resources = true; |
| 889 return base::MakeUnique<TestCompositorFrameSink>( | 893 return base::MakeUnique<TestCompositorFrameSink>( |
| 890 compositor_context_provider, std::move(worker_context_provider), | 894 compositor_context_provider, std::move(worker_context_provider), |
| 891 CreateDisplayOutputSurface(compositor_context_provider), | |
| 892 shared_bitmap_manager(), gpu_memory_buffer_manager(), | 895 shared_bitmap_manager(), gpu_memory_buffer_manager(), |
| 893 layer_tree_host()->GetSettings().renderer_settings, impl_task_runner_, | 896 layer_tree_host()->GetSettings().renderer_settings, impl_task_runner_, |
| 894 synchronous_composite, force_disable_reclaim_resources); | 897 synchronous_composite, force_disable_reclaim_resources); |
| 895 } | 898 } |
| 896 | 899 |
| 897 std::unique_ptr<OutputSurface> LayerTreeTest::CreateDisplayOutputSurface( | 900 std::unique_ptr<OutputSurface> |
| 901 LayerTreeTest::CreateDisplayOutputSurfaceOnThread( |
| 898 scoped_refptr<ContextProvider> compositor_context_provider) { | 902 scoped_refptr<ContextProvider> compositor_context_provider) { |
| 899 // By default the Display shares a context with the LayerTreeHostImpl. | 903 // By default the Display shares a context with the LayerTreeHostImpl. |
| 900 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); | 904 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); |
| 901 } | 905 } |
| 902 | 906 |
| 903 void LayerTreeTest::DestroyLayerTreeHost() { | 907 void LayerTreeTest::DestroyLayerTreeHost() { |
| 904 if (layer_tree_host_ && layer_tree_host_->GetLayerTree()->root_layer()) | 908 if (layer_tree_host_ && layer_tree_host_->GetLayerTree()->root_layer()) |
| 905 layer_tree_host_->GetLayerTree()->root_layer()->SetLayerTreeHost(NULL); | 909 layer_tree_host_->GetLayerTree()->root_layer()->SetLayerTreeHost(NULL); |
| 906 layer_tree_host_ = nullptr; | 910 layer_tree_host_ = nullptr; |
| 907 layer_tree_host_in_process_ = nullptr; | 911 layer_tree_host_in_process_ = nullptr; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 929 DCHECK(!IsRemoteTest()); | 933 DCHECK(!IsRemoteTest()); |
| 930 return layer_tree_host_in_process_; | 934 return layer_tree_host_in_process_; |
| 931 } | 935 } |
| 932 | 936 |
| 933 Proxy* LayerTreeTest::proxy() { | 937 Proxy* LayerTreeTest::proxy() { |
| 934 return layer_tree_host_in_process() ? layer_tree_host_in_process()->proxy() | 938 return layer_tree_host_in_process() ? layer_tree_host_in_process()->proxy() |
| 935 : NULL; | 939 : NULL; |
| 936 } | 940 } |
| 937 | 941 |
| 938 } // namespace cc | 942 } // namespace cc |
| OLD | NEW |