| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/location.h" | 7 #include "base/location.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "base/threading/thread_task_runner_handle.h" | 10 #include "base/threading/thread_task_runner_handle.h" |
| 11 #include "cc/layers/layer_iterator.h" | 11 #include "cc/layers/layer_iterator.h" |
| 12 #include "cc/output/copy_output_request.h" | 12 #include "cc/output/copy_output_request.h" |
| 13 #include "cc/output/copy_output_result.h" | 13 #include "cc/output/copy_output_result.h" |
| 14 #include "cc/output/direct_renderer.h" | 14 #include "cc/output/direct_renderer.h" |
| 15 #include "cc/surfaces/display.h" | 15 #include "cc/surfaces/display.h" |
| 16 #include "cc/test/fake_content_layer_client.h" | 16 #include "cc/test/fake_content_layer_client.h" |
| 17 #include "cc/test/fake_output_surface.h" | 17 #include "cc/test/fake_output_surface.h" |
| 18 #include "cc/test/fake_picture_layer.h" | 18 #include "cc/test/fake_picture_layer.h" |
| 19 #include "cc/test/layer_tree_test.h" | 19 #include "cc/test/layer_tree_test.h" |
| 20 #include "cc/test/test_delegating_output_surface.h" | 20 #include "cc/test/test_compositor_frame_sink.h" |
| 21 #include "cc/trees/layer_tree_impl.h" | 21 #include "cc/trees/layer_tree_impl.h" |
| 22 #include "gpu/GLES2/gl2extchromium.h" | 22 #include "gpu/GLES2/gl2extchromium.h" |
| 23 | 23 |
| 24 namespace cc { | 24 namespace cc { |
| 25 namespace { | 25 namespace { |
| 26 | 26 |
| 27 // These tests only use direct rendering, as there is no output to copy for | 27 // These tests only use direct rendering, as there is no output to copy for |
| 28 // delegated renderers. | 28 // delegated renderers. |
| 29 class LayerTreeHostCopyRequestTest : public LayerTreeTest {}; | 29 class LayerTreeHostCopyRequestTest : public LayerTreeTest {}; |
| 30 | 30 |
| (...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 | 456 |
| 457 copy_layer_ = FakePictureLayer::Create(&client_); | 457 copy_layer_ = FakePictureLayer::Create(&client_); |
| 458 copy_layer_->SetBounds(gfx::Size(10, 10)); | 458 copy_layer_->SetBounds(gfx::Size(10, 10)); |
| 459 parent_layer_->AddChild(copy_layer_); | 459 parent_layer_->AddChild(copy_layer_); |
| 460 | 460 |
| 461 layer_tree()->SetRootLayer(root_); | 461 layer_tree()->SetRootLayer(root_); |
| 462 LayerTreeHostCopyRequestTest::SetupTree(); | 462 LayerTreeHostCopyRequestTest::SetupTree(); |
| 463 client_.set_bounds(root_->bounds()); | 463 client_.set_bounds(root_->bounds()); |
| 464 } | 464 } |
| 465 | 465 |
| 466 std::unique_ptr<TestDelegatingOutputSurface> CreateDelegatingOutputSurface( | 466 std::unique_ptr<TestCompositorFrameSink> CreateCompositorFrameSink( |
| 467 scoped_refptr<ContextProvider> compositor_context_provider, | 467 scoped_refptr<ContextProvider> compositor_context_provider, |
| 468 scoped_refptr<ContextProvider> worker_context_provider) override { | 468 scoped_refptr<ContextProvider> worker_context_provider) override { |
| 469 auto surface = LayerTreeHostCopyRequestTest::CreateDelegatingOutputSurface( | 469 auto surface = LayerTreeHostCopyRequestTest::CreateCompositorFrameSink( |
| 470 std::move(compositor_context_provider), | 470 std::move(compositor_context_provider), |
| 471 std::move(worker_context_provider)); | 471 std::move(worker_context_provider)); |
| 472 display_ = surface->display(); | 472 display_ = surface->display(); |
| 473 return surface; | 473 return surface; |
| 474 } | 474 } |
| 475 | 475 |
| 476 void BeginTest() override { | 476 void BeginTest() override { |
| 477 PostSetNeedsCommitToMainThread(); | 477 PostSetNeedsCommitToMainThread(); |
| 478 | 478 |
| 479 copy_layer_->RequestCopyOfOutput( | 479 copy_layer_->RequestCopyOfOutput( |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 845 void InitializeSettings(LayerTreeSettings* settings) override { | 845 void InitializeSettings(LayerTreeSettings* settings) override { |
| 846 // Always allocate only a single texture at a time through ResourceProvider. | 846 // Always allocate only a single texture at a time through ResourceProvider. |
| 847 settings->renderer_settings.texture_id_allocation_chunk_size = 1; | 847 settings->renderer_settings.texture_id_allocation_chunk_size = 1; |
| 848 } | 848 } |
| 849 | 849 |
| 850 std::unique_ptr<OutputSurface> CreateDisplayOutputSurface( | 850 std::unique_ptr<OutputSurface> CreateDisplayOutputSurface( |
| 851 scoped_refptr<ContextProvider> compositor_context_provider) override { | 851 scoped_refptr<ContextProvider> compositor_context_provider) override { |
| 852 // These tests expect the LayerTreeHostImpl to share a context with | 852 // These tests expect the LayerTreeHostImpl to share a context with |
| 853 // the Display so that sync points are not needed and the texture counts | 853 // the Display so that sync points are not needed and the texture counts |
| 854 // are visible together. | 854 // are visible together. |
| 855 // Since this test does not override CreateDelegatingOutputSurface, the | 855 // Since this test does not override CreateCompositorFrameSink, the |
| 856 // |compositor_context_provider| will be a TestContextProvider. | 856 // |compositor_context_provider| will be a TestContextProvider. |
| 857 display_context_provider_ = | 857 display_context_provider_ = |
| 858 static_cast<TestContextProvider*>(compositor_context_provider.get()); | 858 static_cast<TestContextProvider*>(compositor_context_provider.get()); |
| 859 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); | 859 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); |
| 860 } | 860 } |
| 861 | 861 |
| 862 void SetupTree() override { | 862 void SetupTree() override { |
| 863 // The layers in this test have solid color content, so they don't | 863 // The layers in this test have solid color content, so they don't |
| 864 // actually allocate any textures, making counting easier. | 864 // actually allocate any textures, making counting easier. |
| 865 | 865 |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1284 int num_draws_; | 1284 int num_draws_; |
| 1285 bool copy_happened_; | 1285 bool copy_happened_; |
| 1286 bool draw_happened_; | 1286 bool draw_happened_; |
| 1287 }; | 1287 }; |
| 1288 | 1288 |
| 1289 SINGLE_AND_MULTI_THREAD_TEST_F( | 1289 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 1290 LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest); | 1290 LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest); |
| 1291 | 1291 |
| 1292 } // namespace | 1292 } // namespace |
| 1293 } // namespace cc | 1293 } // namespace cc |
| OLD | NEW |