| 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/layers/layer_impl.h" | 5 #include "cc/layers/layer_impl.h" |
| 6 | 6 |
| 7 #include "cc/animation/mutable_properties.h" | 7 #include "cc/animation/mutable_properties.h" |
| 8 #include "cc/layers/painted_scrollbar_layer_impl.h" | 8 #include "cc/layers/painted_scrollbar_layer_impl.h" |
| 9 #include "cc/layers/solid_color_scrollbar_layer_impl.h" | 9 #include "cc/layers/solid_color_scrollbar_layer_impl.h" |
| 10 #include "cc/output/filter_operation.h" | 10 #include "cc/output/filter_operation.h" |
| 11 #include "cc/output/filter_operations.h" | 11 #include "cc/output/filter_operations.h" |
| 12 #include "cc/test/animation_test_common.h" | 12 #include "cc/test/animation_test_common.h" |
| 13 #include "cc/test/fake_compositor_frame_sink.h" |
| 13 #include "cc/test/fake_impl_task_runner_provider.h" | 14 #include "cc/test/fake_impl_task_runner_provider.h" |
| 14 #include "cc/test/fake_layer_tree_host_impl.h" | 15 #include "cc/test/fake_layer_tree_host_impl.h" |
| 15 #include "cc/test/fake_output_surface.h" | |
| 16 #include "cc/test/geometry_test_utils.h" | 16 #include "cc/test/geometry_test_utils.h" |
| 17 #include "cc/test/test_shared_bitmap_manager.h" | 17 #include "cc/test/test_shared_bitmap_manager.h" |
| 18 #include "cc/test/test_task_graph_runner.h" | 18 #include "cc/test/test_task_graph_runner.h" |
| 19 #include "cc/trees/layer_tree_impl.h" | 19 #include "cc/trees/layer_tree_impl.h" |
| 20 #include "cc/trees/single_thread_proxy.h" | 20 #include "cc/trees/single_thread_proxy.h" |
| 21 #include "cc/trees/tree_synchronizer.h" | 21 #include "cc/trees/tree_synchronizer.h" |
| 22 #include "testing/gmock/include/gmock/gmock.h" | 22 #include "testing/gmock/include/gmock/gmock.h" |
| 23 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
| 24 #include "third_party/skia/include/effects/SkBlurImageFilter.h" | 24 #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
| 25 | 25 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) { | 119 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) { |
| 120 // | 120 // |
| 121 // This test checks that layerPropertyChanged() has the correct behavior. | 121 // This test checks that layerPropertyChanged() has the correct behavior. |
| 122 // | 122 // |
| 123 | 123 |
| 124 // The constructor on this will fake that we are on the correct thread. | 124 // The constructor on this will fake that we are on the correct thread. |
| 125 // Create a simple LayerImpl tree: | 125 // Create a simple LayerImpl tree: |
| 126 FakeImplTaskRunnerProvider task_runner_provider; | 126 FakeImplTaskRunnerProvider task_runner_provider; |
| 127 TestSharedBitmapManager shared_bitmap_manager; | 127 TestSharedBitmapManager shared_bitmap_manager; |
| 128 TestTaskGraphRunner task_graph_runner; | 128 TestTaskGraphRunner task_graph_runner; |
| 129 std::unique_ptr<OutputSurface> output_surface = | 129 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
| 130 FakeOutputSurface::CreateDelegating3d(); | 130 FakeCompositorFrameSink::Create3d(); |
| 131 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 131 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 132 &task_graph_runner); | 132 &task_graph_runner); |
| 133 host_impl.SetVisible(true); | 133 host_impl.SetVisible(true); |
| 134 EXPECT_TRUE(host_impl.InitializeRenderer(output_surface.get())); | 134 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get())); |
| 135 std::unique_ptr<LayerImpl> root_clip_ptr = | 135 std::unique_ptr<LayerImpl> root_clip_ptr = |
| 136 LayerImpl::Create(host_impl.active_tree(), 1); | 136 LayerImpl::Create(host_impl.active_tree(), 1); |
| 137 LayerImpl* root_clip = root_clip_ptr.get(); | 137 LayerImpl* root_clip = root_clip_ptr.get(); |
| 138 std::unique_ptr<LayerImpl> root_ptr = | 138 std::unique_ptr<LayerImpl> root_ptr = |
| 139 LayerImpl::Create(host_impl.active_tree(), 2); | 139 LayerImpl::Create(host_impl.active_tree(), 2); |
| 140 LayerImpl* root = root_ptr.get(); | 140 LayerImpl* root = root_ptr.get(); |
| 141 root_clip_ptr->test_properties()->AddChild(std::move(root_ptr)); | 141 root_clip_ptr->test_properties()->AddChild(std::move(root_ptr)); |
| 142 host_impl.active_tree()->SetRootLayerForTesting(std::move(root_clip_ptr)); | 142 host_impl.active_tree()->SetRootLayerForTesting(std::move(root_clip_ptr)); |
| 143 | 143 |
| 144 root->test_properties()->force_render_surface = true; | 144 root->test_properties()->force_render_surface = true; |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1)); | 239 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1)); |
| 240 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true)); | 240 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true)); |
| 241 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true)); | 241 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true)); |
| 242 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size)); | 242 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size)); |
| 243 } | 243 } |
| 244 | 244 |
| 245 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { | 245 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { |
| 246 FakeImplTaskRunnerProvider task_runner_provider; | 246 FakeImplTaskRunnerProvider task_runner_provider; |
| 247 TestSharedBitmapManager shared_bitmap_manager; | 247 TestSharedBitmapManager shared_bitmap_manager; |
| 248 TestTaskGraphRunner task_graph_runner; | 248 TestTaskGraphRunner task_graph_runner; |
| 249 std::unique_ptr<OutputSurface> output_surface = | 249 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
| 250 FakeOutputSurface::CreateDelegating3d(); | 250 FakeCompositorFrameSink::Create3d(); |
| 251 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 251 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 252 &task_graph_runner); | 252 &task_graph_runner); |
| 253 host_impl.SetVisible(true); | 253 host_impl.SetVisible(true); |
| 254 EXPECT_TRUE(host_impl.InitializeRenderer(output_surface.get())); | 254 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get())); |
| 255 host_impl.active_tree()->SetRootLayerForTesting( | 255 host_impl.active_tree()->SetRootLayerForTesting( |
| 256 LayerImpl::Create(host_impl.active_tree(), 1)); | 256 LayerImpl::Create(host_impl.active_tree(), 1)); |
| 257 LayerImpl* root = host_impl.active_tree()->root_layer_for_testing(); | 257 LayerImpl* root = host_impl.active_tree()->root_layer_for_testing(); |
| 258 root->SetHasRenderSurface(true); | 258 root->SetHasRenderSurface(true); |
| 259 std::unique_ptr<LayerImpl> layer_ptr = | 259 std::unique_ptr<LayerImpl> layer_ptr = |
| 260 LayerImpl::Create(host_impl.active_tree(), 2); | 260 LayerImpl::Create(host_impl.active_tree(), 2); |
| 261 LayerImpl* layer = layer_ptr.get(); | 261 LayerImpl* layer = layer_ptr.get(); |
| 262 root->test_properties()->AddChild(std::move(layer_ptr)); | 262 root->test_properties()->AddChild(std::move(layer_ptr)); |
| 263 layer->SetScrollClipLayer(root->id()); | 263 layer->SetScrollClipLayer(root->id()); |
| 264 std::unique_ptr<LayerImpl> layer2_ptr = | 264 std::unique_ptr<LayerImpl> layer2_ptr = |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(arbitrary_size)); | 370 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(arbitrary_size)); |
| 371 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetElementId(ElementId(2, 0))); | 371 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetElementId(ElementId(2, 0))); |
| 372 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( | 372 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( |
| 373 layer->SetMutableProperties(MutableProperty::kTransform)); | 373 layer->SetMutableProperties(MutableProperty::kTransform)); |
| 374 } | 374 } |
| 375 | 375 |
| 376 TEST(LayerImplTest, SafeOpaqueBackgroundColor) { | 376 TEST(LayerImplTest, SafeOpaqueBackgroundColor) { |
| 377 FakeImplTaskRunnerProvider task_runner_provider; | 377 FakeImplTaskRunnerProvider task_runner_provider; |
| 378 TestSharedBitmapManager shared_bitmap_manager; | 378 TestSharedBitmapManager shared_bitmap_manager; |
| 379 TestTaskGraphRunner task_graph_runner; | 379 TestTaskGraphRunner task_graph_runner; |
| 380 std::unique_ptr<OutputSurface> output_surface = | 380 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
| 381 FakeOutputSurface::CreateDelegating3d(); | 381 FakeCompositorFrameSink::Create3d(); |
| 382 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 382 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 383 &task_graph_runner); | 383 &task_graph_runner); |
| 384 host_impl.SetVisible(true); | 384 host_impl.SetVisible(true); |
| 385 EXPECT_TRUE(host_impl.InitializeRenderer(output_surface.get())); | 385 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get())); |
| 386 host_impl.active_tree()->SetRootLayerForTesting( | 386 host_impl.active_tree()->SetRootLayerForTesting( |
| 387 LayerImpl::Create(host_impl.active_tree(), 1)); | 387 LayerImpl::Create(host_impl.active_tree(), 1)); |
| 388 LayerImpl* layer = host_impl.active_tree()->root_layer_for_testing(); | 388 LayerImpl* layer = host_impl.active_tree()->root_layer_for_testing(); |
| 389 | 389 |
| 390 for (int contents_opaque = 0; contents_opaque < 2; ++contents_opaque) { | 390 for (int contents_opaque = 0; contents_opaque < 2; ++contents_opaque) { |
| 391 for (int layer_opaque = 0; layer_opaque < 2; ++layer_opaque) { | 391 for (int layer_opaque = 0; layer_opaque < 2; ++layer_opaque) { |
| 392 for (int host_opaque = 0; host_opaque < 2; ++host_opaque) { | 392 for (int host_opaque = 0; host_opaque < 2; ++host_opaque) { |
| 393 layer->SetContentsOpaque(!!contents_opaque); | 393 layer->SetContentsOpaque(!!contents_opaque); |
| 394 layer->SetBackgroundColor(layer_opaque ? SK_ColorRED | 394 layer->SetBackgroundColor(layer_opaque ? SK_ColorRED |
| 395 : SK_ColorTRANSPARENT); | 395 : SK_ColorTRANSPARENT); |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 | 594 |
| 595 pending_layer->PushPropertiesTo(layer()); | 595 pending_layer->PushPropertiesTo(layer()); |
| 596 | 596 |
| 597 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset()); | 597 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset()); |
| 598 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(), | 598 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(), |
| 599 pending_layer->CurrentScrollOffset()); | 599 pending_layer->CurrentScrollOffset()); |
| 600 } | 600 } |
| 601 | 601 |
| 602 } // namespace | 602 } // namespace |
| 603 } // namespace cc | 603 } // namespace cc |
| OLD | NEW |