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

Side by Side Diff: cc/layers/layer_impl_unittest.cc

Issue 2452483002: Move GpuMemoryBufferManager and SharedBitmapManager to CompositorFrameSink (Closed)
Patch Set: rebase Created 4 years, 1 month 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
« no previous file with comments | « cc/layers/heads_up_display_layer_impl_unittest.cc ('k') | cc/layers/layer_iterator_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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_compositor_frame_sink.h"
14 #include "cc/test/fake_impl_task_runner_provider.h" 14 #include "cc/test/fake_impl_task_runner_provider.h"
15 #include "cc/test/fake_layer_tree_host_impl.h" 15 #include "cc/test/fake_layer_tree_host_impl.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"
18 #include "cc/test/test_task_graph_runner.h" 17 #include "cc/test/test_task_graph_runner.h"
19 #include "cc/trees/layer_tree_impl.h" 18 #include "cc/trees/layer_tree_impl.h"
20 #include "cc/trees/single_thread_proxy.h" 19 #include "cc/trees/single_thread_proxy.h"
21 #include "cc/trees/tree_synchronizer.h" 20 #include "cc/trees/tree_synchronizer.h"
22 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
23 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
24 #include "third_party/skia/include/effects/SkBlurImageFilter.h" 23 #include "third_party/skia/include/effects/SkBlurImageFilter.h"
25 24
26 namespace cc { 25 namespace cc {
27 namespace { 26 namespace {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 } 116 }
118 117
119 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) { 118 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) {
120 // 119 //
121 // This test checks that layerPropertyChanged() has the correct behavior. 120 // This test checks that layerPropertyChanged() has the correct behavior.
122 // 121 //
123 122
124 // The constructor on this will fake that we are on the correct thread. 123 // The constructor on this will fake that we are on the correct thread.
125 // Create a simple LayerImpl tree: 124 // Create a simple LayerImpl tree:
126 FakeImplTaskRunnerProvider task_runner_provider; 125 FakeImplTaskRunnerProvider task_runner_provider;
127 TestSharedBitmapManager shared_bitmap_manager;
128 TestTaskGraphRunner task_graph_runner; 126 TestTaskGraphRunner task_graph_runner;
129 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = 127 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
130 FakeCompositorFrameSink::Create3d(); 128 FakeCompositorFrameSink::Create3d();
131 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, 129 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner);
132 &task_graph_runner);
133 host_impl.SetVisible(true); 130 host_impl.SetVisible(true);
134 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get())); 131 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get()));
135 std::unique_ptr<LayerImpl> root_clip_ptr = 132 std::unique_ptr<LayerImpl> root_clip_ptr =
136 LayerImpl::Create(host_impl.active_tree(), 1); 133 LayerImpl::Create(host_impl.active_tree(), 1);
137 LayerImpl* root_clip = root_clip_ptr.get(); 134 LayerImpl* root_clip = root_clip_ptr.get();
138 std::unique_ptr<LayerImpl> root_ptr = 135 std::unique_ptr<LayerImpl> root_ptr =
139 LayerImpl::Create(host_impl.active_tree(), 2); 136 LayerImpl::Create(host_impl.active_tree(), 2);
140 LayerImpl* root = root_ptr.get(); 137 LayerImpl* root = root_ptr.get();
141 root_clip_ptr->test_properties()->AddChild(std::move(root_ptr)); 138 root_clip_ptr->test_properties()->AddChild(std::move(root_ptr));
142 host_impl.active_tree()->SetRootLayerForTesting(std::move(root_clip_ptr)); 139 host_impl.active_tree()->SetRootLayerForTesting(std::move(root_clip_ptr));
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 234 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
238 root->SetPosition(arbitrary_point_f)); 235 root->SetPosition(arbitrary_point_f));
239 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1)); 236 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1));
240 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true)); 237 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true));
241 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true)); 238 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true));
242 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size)); 239 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(bounds_size));
243 } 240 }
244 241
245 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { 242 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) {
246 FakeImplTaskRunnerProvider task_runner_provider; 243 FakeImplTaskRunnerProvider task_runner_provider;
247 TestSharedBitmapManager shared_bitmap_manager;
248 TestTaskGraphRunner task_graph_runner; 244 TestTaskGraphRunner task_graph_runner;
249 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = 245 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
250 FakeCompositorFrameSink::Create3d(); 246 FakeCompositorFrameSink::Create3d();
251 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, 247 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner);
252 &task_graph_runner);
253 host_impl.SetVisible(true); 248 host_impl.SetVisible(true);
254 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get())); 249 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get()));
255 host_impl.active_tree()->SetRootLayerForTesting( 250 host_impl.active_tree()->SetRootLayerForTesting(
256 LayerImpl::Create(host_impl.active_tree(), 1)); 251 LayerImpl::Create(host_impl.active_tree(), 1));
257 LayerImpl* root = host_impl.active_tree()->root_layer_for_testing(); 252 LayerImpl* root = host_impl.active_tree()->root_layer_for_testing();
258 root->SetHasRenderSurface(true); 253 root->SetHasRenderSurface(true);
259 std::unique_ptr<LayerImpl> layer_ptr = 254 std::unique_ptr<LayerImpl> layer_ptr =
260 LayerImpl::Create(host_impl.active_tree(), 2); 255 LayerImpl::Create(host_impl.active_tree(), 2);
261 LayerImpl* layer = layer_ptr.get(); 256 LayerImpl* layer = layer_ptr.get();
262 root->test_properties()->AddChild(std::move(layer_ptr)); 257 root->test_properties()->AddChild(std::move(layer_ptr));
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 362 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
368 layer->SetBackgroundColor(arbitrary_color)); 363 layer->SetBackgroundColor(arbitrary_color));
369 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(arbitrary_size)); 364 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(arbitrary_size));
370 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetElementId(ElementId(2, 0))); 365 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetElementId(ElementId(2, 0)));
371 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 366 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
372 layer->SetMutableProperties(MutableProperty::kTransform)); 367 layer->SetMutableProperties(MutableProperty::kTransform));
373 } 368 }
374 369
375 TEST(LayerImplTest, SafeOpaqueBackgroundColor) { 370 TEST(LayerImplTest, SafeOpaqueBackgroundColor) {
376 FakeImplTaskRunnerProvider task_runner_provider; 371 FakeImplTaskRunnerProvider task_runner_provider;
377 TestSharedBitmapManager shared_bitmap_manager;
378 TestTaskGraphRunner task_graph_runner; 372 TestTaskGraphRunner task_graph_runner;
379 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = 373 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
380 FakeCompositorFrameSink::Create3d(); 374 FakeCompositorFrameSink::Create3d();
381 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, 375 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner);
382 &task_graph_runner);
383 host_impl.SetVisible(true); 376 host_impl.SetVisible(true);
384 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get())); 377 EXPECT_TRUE(host_impl.InitializeRenderer(compositor_frame_sink.get()));
385 host_impl.active_tree()->SetRootLayerForTesting( 378 host_impl.active_tree()->SetRootLayerForTesting(
386 LayerImpl::Create(host_impl.active_tree(), 1)); 379 LayerImpl::Create(host_impl.active_tree(), 1));
387 LayerImpl* layer = host_impl.active_tree()->root_layer_for_testing(); 380 LayerImpl* layer = host_impl.active_tree()->root_layer_for_testing();
388 381
389 for (int contents_opaque = 0; contents_opaque < 2; ++contents_opaque) { 382 for (int contents_opaque = 0; contents_opaque < 2; ++contents_opaque) {
390 for (int layer_opaque = 0; layer_opaque < 2; ++layer_opaque) { 383 for (int layer_opaque = 0; layer_opaque < 2; ++layer_opaque) {
391 for (int host_opaque = 0; host_opaque < 2; ++host_opaque) { 384 for (int host_opaque = 0; host_opaque < 2; ++host_opaque) {
392 layer->SetContentsOpaque(!!contents_opaque); 385 layer->SetContentsOpaque(!!contents_opaque);
(...skipping 17 matching lines...) Expand all
410 } 403 }
411 } 404 }
412 } 405 }
413 } 406 }
414 407
415 class LayerImplScrollTest : public testing::Test { 408 class LayerImplScrollTest : public testing::Test {
416 public: 409 public:
417 LayerImplScrollTest() 410 LayerImplScrollTest()
418 : host_impl_(settings(), 411 : host_impl_(settings(),
419 &task_runner_provider_, 412 &task_runner_provider_,
420 &shared_bitmap_manager_,
421 &task_graph_runner_), 413 &task_graph_runner_),
422 root_id_(7) { 414 root_id_(7) {
423 host_impl_.active_tree()->SetRootLayerForTesting( 415 host_impl_.active_tree()->SetRootLayerForTesting(
424 LayerImpl::Create(host_impl_.active_tree(), root_id_)); 416 LayerImpl::Create(host_impl_.active_tree(), root_id_));
425 host_impl_.active_tree() 417 host_impl_.active_tree()
426 ->root_layer_for_testing() 418 ->root_layer_for_testing()
427 ->test_properties() 419 ->test_properties()
428 ->AddChild(LayerImpl::Create(host_impl_.active_tree(), root_id_ + 1)); 420 ->AddChild(LayerImpl::Create(host_impl_.active_tree(), root_id_ + 1));
429 layer()->SetScrollClipLayer(root_id_); 421 layer()->SetScrollClipLayer(root_id_);
430 // Set the max scroll offset by noting that the root layer has bounds (1,1), 422 // Set the max scroll offset by noting that the root layer has bounds (1,1),
(...skipping 22 matching lines...) Expand all
453 LayerTreeImpl* tree() { return host_impl_.active_tree(); } 445 LayerTreeImpl* tree() { return host_impl_.active_tree(); }
454 446
455 LayerTreeSettings settings() { 447 LayerTreeSettings settings() {
456 LayerTreeSettings settings; 448 LayerTreeSettings settings;
457 settings.verify_clip_tree_calculations = true; 449 settings.verify_clip_tree_calculations = true;
458 return settings; 450 return settings;
459 } 451 }
460 452
461 private: 453 private:
462 FakeImplTaskRunnerProvider task_runner_provider_; 454 FakeImplTaskRunnerProvider task_runner_provider_;
463 TestSharedBitmapManager shared_bitmap_manager_;
464 TestTaskGraphRunner task_graph_runner_; 455 TestTaskGraphRunner task_graph_runner_;
465 FakeLayerTreeHostImpl host_impl_; 456 FakeLayerTreeHostImpl host_impl_;
466 int root_id_; 457 int root_id_;
467 }; 458 };
468 459
469 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) { 460 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) {
470 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll 461 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll
471 // offset is bounded by the range [0, max scroll offset]. 462 // offset is bounded by the range [0, max scroll offset].
472 463
473 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->CurrentScrollOffset()); 464 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->CurrentScrollOffset());
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 583
593 pending_layer->PushPropertiesTo(layer()); 584 pending_layer->PushPropertiesTo(layer());
594 585
595 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset()); 586 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset());
596 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(), 587 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(),
597 pending_layer->CurrentScrollOffset()); 588 pending_layer->CurrentScrollOffset());
598 } 589 }
599 590
600 } // namespace 591 } // namespace
601 } // namespace cc 592 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/heads_up_display_layer_impl_unittest.cc ('k') | cc/layers/layer_iterator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698