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

Side by Side Diff: cc/trees/layer_tree_host_common_unittest.cc

Issue 2053983003: cc : Move LayerImpl::parent to test properties (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 years, 6 months 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/trees/damage_tracker_unittest.cc ('k') | cc/trees/layer_tree_host_impl_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/trees/layer_tree_host_common.h" 5 #include "cc/trees/layer_tree_host_common.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 LayerImpl::Create(host_impl.active_tree(), 3)); 340 LayerImpl::Create(host_impl.active_tree(), 3));
341 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), 341 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(),
342 gfx::PointF(), gfx::Size(3, 4), true, false, 342 gfx::PointF(), gfx::Size(3, 4), true, false,
343 false); 343 false);
344 root->AddChild(std::move(clip_layer_scoped_ptr)); 344 root->AddChild(std::move(clip_layer_scoped_ptr));
345 root->SetHasRenderSurface(true); 345 root->SetHasRenderSurface(true);
346 LayerImpl* root_layer = root.get(); 346 LayerImpl* root_layer = root.get();
347 host_impl.active_tree()->SetRootLayer(std::move(root)); 347 host_impl.active_tree()->SetRootLayer(std::move(root));
348 348
349 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale, 349 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale,
350 scroll_layer->parent()); 350 scroll_layer->test_properties()->parent);
351 gfx::Transform expected_transform = identity_matrix; 351 gfx::Transform expected_transform = identity_matrix;
352 gfx::PointF sub_layer_screen_position = kScrollLayerPosition - kScrollDelta; 352 gfx::PointF sub_layer_screen_position = kScrollLayerPosition - kScrollDelta;
353 expected_transform.Translate(MathUtil::Round(sub_layer_screen_position.x() * 353 expected_transform.Translate(MathUtil::Round(sub_layer_screen_position.x() *
354 page_scale * kDeviceScale), 354 page_scale * kDeviceScale),
355 MathUtil::Round(sub_layer_screen_position.y() * 355 MathUtil::Round(sub_layer_screen_position.y() *
356 page_scale * kDeviceScale)); 356 page_scale * kDeviceScale));
357 expected_transform.Scale(page_scale * kDeviceScale, 357 expected_transform.Scale(page_scale * kDeviceScale,
358 page_scale * kDeviceScale); 358 page_scale * kDeviceScale);
359 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, 359 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform,
360 sublayer->DrawTransform()); 360 sublayer->DrawTransform());
361 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, 361 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform,
362 sublayer->ScreenSpaceTransform()); 362 sublayer->ScreenSpaceTransform());
363 363
364 gfx::Transform arbitrary_translate; 364 gfx::Transform arbitrary_translate;
365 const float kTranslateX = 10.6f; 365 const float kTranslateX = 10.6f;
366 const float kTranslateY = 20.6f; 366 const float kTranslateY = 20.6f;
367 arbitrary_translate.Translate(kTranslateX, kTranslateY); 367 arbitrary_translate.Translate(kTranslateX, kTranslateY);
368 SetLayerPropertiesForTesting(scroll_layer, arbitrary_translate, 368 SetLayerPropertiesForTesting(scroll_layer, arbitrary_translate,
369 gfx::Point3F(), gfx::PointF(), gfx::Size(10, 20), 369 gfx::Point3F(), gfx::PointF(), gfx::Size(10, 20),
370 true, false, false); 370 true, false, false);
371 root_layer->layer_tree_impl()->property_trees()->needs_rebuild = true; 371 root_layer->layer_tree_impl()->property_trees()->needs_rebuild = true;
372 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale, 372 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale,
373 scroll_layer->parent()); 373 scroll_layer->test_properties()->parent);
374 expected_transform.MakeIdentity(); 374 expected_transform.MakeIdentity();
375 expected_transform.Translate( 375 expected_transform.Translate(
376 MathUtil::Round(kTranslateX * page_scale * kDeviceScale + 376 MathUtil::Round(kTranslateX * page_scale * kDeviceScale +
377 sub_layer_screen_position.x() * page_scale * 377 sub_layer_screen_position.x() * page_scale *
378 kDeviceScale), 378 kDeviceScale),
379 MathUtil::Round(kTranslateY * page_scale * kDeviceScale + 379 MathUtil::Round(kTranslateY * page_scale * kDeviceScale +
380 sub_layer_screen_position.y() * page_scale * 380 sub_layer_screen_position.y() * page_scale *
381 kDeviceScale)); 381 kDeviceScale));
382 expected_transform.Scale(page_scale * kDeviceScale, 382 expected_transform.Scale(page_scale * kDeviceScale,
383 page_scale * kDeviceScale); 383 page_scale * kDeviceScale);
384 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, 384 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform,
385 sublayer->DrawTransform()); 385 sublayer->DrawTransform());
386 386
387 // Test that page scale is updated even when we don't rebuild property trees. 387 // Test that page scale is updated even when we don't rebuild property trees.
388 page_scale = 1.888f; 388 page_scale = 1.888f;
389 root_layer->layer_tree_impl()->SetViewportLayersFromIds( 389 root_layer->layer_tree_impl()->SetViewportLayersFromIds(
390 Layer::INVALID_ID, scroll_layer->parent()->id(), Layer::INVALID_ID, 390 Layer::INVALID_ID, scroll_layer->test_properties()->parent->id(),
391 Layer::INVALID_ID); 391 Layer::INVALID_ID, Layer::INVALID_ID);
392 root_layer->layer_tree_impl()->SetPageScaleOnActiveTree(page_scale); 392 root_layer->layer_tree_impl()->SetPageScaleOnActiveTree(page_scale);
393 EXPECT_FALSE(root_layer->layer_tree_impl()->property_trees()->needs_rebuild); 393 EXPECT_FALSE(root_layer->layer_tree_impl()->property_trees()->needs_rebuild);
394 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale, 394 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale,
395 scroll_layer->parent()); 395 scroll_layer->test_properties()->parent);
396 396
397 expected_transform.MakeIdentity(); 397 expected_transform.MakeIdentity();
398 expected_transform.Translate( 398 expected_transform.Translate(
399 MathUtil::Round(kTranslateX * page_scale * kDeviceScale + 399 MathUtil::Round(kTranslateX * page_scale * kDeviceScale +
400 sub_layer_screen_position.x() * page_scale * 400 sub_layer_screen_position.x() * page_scale *
401 kDeviceScale), 401 kDeviceScale),
402 MathUtil::Round(kTranslateY * page_scale * kDeviceScale + 402 MathUtil::Round(kTranslateY * page_scale * kDeviceScale +
403 sub_layer_screen_position.y() * page_scale * 403 sub_layer_screen_position.y() * page_scale *
404 kDeviceScale)); 404 kDeviceScale));
405 expected_transform.Scale(page_scale * kDeviceScale, 405 expected_transform.Scale(page_scale * kDeviceScale,
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 gfx::Point3F(2.5f, 0.f, 0.f), gfx::PointF(), 806 gfx::Point3F(2.5f, 0.f, 0.f), gfx::PointF(),
807 gfx::Size(10, 10), true, false, false); 807 gfx::Size(10, 10), true, false, false);
808 SetLayerPropertiesForTesting(replica_of_rs1.get(), replica_layer_transform, 808 SetLayerPropertiesForTesting(replica_of_rs1.get(), replica_layer_transform,
809 gfx::Point3F(2.5f, 0.f, 0.f), gfx::PointF(), 809 gfx::Point3F(2.5f, 0.f, 0.f), gfx::PointF(),
810 gfx::Size(), true, false, false); 810 gfx::Size(), true, false, false);
811 SetLayerPropertiesForTesting(replica_of_rs2.get(), replica_layer_transform, 811 SetLayerPropertiesForTesting(replica_of_rs2.get(), replica_layer_transform,
812 gfx::Point3F(2.5f, 0.f, 0.f), gfx::PointF(), 812 gfx::Point3F(2.5f, 0.f, 0.f), gfx::PointF(),
813 gfx::Size(), true, false, false); 813 gfx::Size(), true, false, false);
814 814
815 // We need to set parent on replica layers for property tree building. 815 // We need to set parent on replica layers for property tree building.
816 replica_of_rs1->SetParent(render_surface1); 816 replica_of_rs1->test_properties()->parent = render_surface1;
817 replica_of_rs2->SetParent(render_surface2); 817 replica_of_rs2->test_properties()->parent = render_surface2;
818 render_surface1->test_properties()->SetReplicaLayer( 818 render_surface1->test_properties()->SetReplicaLayer(
819 std::move(replica_of_rs1)); 819 std::move(replica_of_rs1));
820 render_surface2->test_properties()->SetReplicaLayer( 820 render_surface2->test_properties()->SetReplicaLayer(
821 std::move(replica_of_rs2)); 821 std::move(replica_of_rs2));
822 ExecuteCalculateDrawProperties(root); 822 ExecuteCalculateDrawProperties(root);
823 823
824 // Only layers that are associated with render surfaces should have an actual 824 // Only layers that are associated with render surfaces should have an actual
825 // RenderSurface() value. 825 // RenderSurface() value.
826 ASSERT_TRUE(root->render_surface()); 826 ASSERT_TRUE(root->render_surface());
827 ASSERT_FALSE(child_of_root->render_surface()); 827 ASSERT_FALSE(child_of_root->render_surface());
(...skipping 4097 matching lines...) Expand 10 before | Expand all | Expand 10 after
4925 4925
4926 gfx::Transform replica_transform; 4926 gfx::Transform replica_transform;
4927 replica_transform.Scale(1.0, -1.0); 4927 replica_transform.Scale(1.0, -1.0);
4928 4928
4929 std::unique_ptr<LayerImpl> replica = 4929 std::unique_ptr<LayerImpl> replica =
4930 LayerImpl::Create(host_impl()->active_tree(), 7); 4930 LayerImpl::Create(host_impl()->active_tree(), 7);
4931 SetLayerPropertiesForTesting(replica.get(), replica_transform, gfx::Point3F(), 4931 SetLayerPropertiesForTesting(replica.get(), replica_transform, gfx::Point3F(),
4932 gfx::PointF(2.f, 2.f), gfx::Size(10, 10), false, 4932 gfx::PointF(2.f, 2.f), gfx::Size(10, 10), false,
4933 true, false); 4933 true, false);
4934 // We need to set parent on replica layer for property tree building. 4934 // We need to set parent on replica layer for property tree building.
4935 replica->SetParent(child); 4935 replica->test_properties()->parent = child;
4936 child->test_properties()->SetReplicaLayer(std::move(replica)); 4936 child->test_properties()->SetReplicaLayer(std::move(replica));
4937 4937
4938 // This layer should end up in the same surface as child, with the same draw 4938 // This layer should end up in the same surface as child, with the same draw
4939 // and screen space transforms. 4939 // and screen space transforms.
4940 LayerImpl* duplicate_child_non_owner = AddChild<LayerImpl>(child); 4940 LayerImpl* duplicate_child_non_owner = AddChild<LayerImpl>(child);
4941 duplicate_child_non_owner->SetDrawsContent(true); 4941 duplicate_child_non_owner->SetDrawsContent(true);
4942 SetLayerPropertiesForTesting(duplicate_child_non_owner, identity_matrix, 4942 SetLayerPropertiesForTesting(duplicate_child_non_owner, identity_matrix,
4943 gfx::Point3F(), gfx::PointF(), gfx::Size(10, 10), 4943 gfx::Point3F(), gfx::PointF(), gfx::Size(10, 10),
4944 false, true, false); 4944 false, true, false);
4945 4945
(...skipping 4774 matching lines...) Expand 10 before | Expand all | Expand 10 after
9720 EXPECT_EQ(gfx::Rect(20, 20), mask->visible_layer_rect()); 9720 EXPECT_EQ(gfx::Rect(20, 20), mask->visible_layer_rect());
9721 } 9721 }
9722 9722
9723 TEST_F(LayerTreeHostCommonTest, ReplicaMaskLayerDrawProperties) { 9723 TEST_F(LayerTreeHostCommonTest, ReplicaMaskLayerDrawProperties) {
9724 // Tests that a replica mask layer's draw properties are computed correctly. 9724 // Tests that a replica mask layer's draw properties are computed correctly.
9725 LayerImpl* root = root_layer(); 9725 LayerImpl* root = root_layer();
9726 LayerImpl* child = AddChild<LayerImpl>(root); 9726 LayerImpl* child = AddChild<LayerImpl>(root);
9727 child->test_properties()->SetReplicaLayer( 9727 child->test_properties()->SetReplicaLayer(
9728 LayerImpl::Create(root->layer_tree_impl(), 100)); 9728 LayerImpl::Create(root->layer_tree_impl(), 100));
9729 LayerImpl* replica = child->test_properties()->replica_layer; 9729 LayerImpl* replica = child->test_properties()->replica_layer;
9730 replica->SetParent(child); 9730 replica->test_properties()->parent = child;
9731 replica->test_properties()->SetMaskLayer( 9731 replica->test_properties()->SetMaskLayer(
9732 LayerImpl::Create(root->layer_tree_impl(), 200)); 9732 LayerImpl::Create(root->layer_tree_impl(), 200));
9733 LayerImpl* replica_mask = replica->test_properties()->mask_layer; 9733 LayerImpl* replica_mask = replica->test_properties()->mask_layer;
9734 9734
9735 const gfx::Transform identity_matrix; 9735 const gfx::Transform identity_matrix;
9736 gfx::Transform transform; 9736 gfx::Transform transform;
9737 transform.Translate(10, 10); 9737 transform.Translate(10, 10);
9738 9738
9739 gfx::PointF replica_position(3.f, 3.f); 9739 gfx::PointF replica_position(3.f, 3.f);
9740 9740
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
10261 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); 10261 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index());
10262 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); 10262 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index());
10263 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); 10263 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index());
10264 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); 10264 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index());
10265 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); 10265 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index());
10266 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); 10266 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index());
10267 } 10267 }
10268 10268
10269 } // namespace 10269 } // namespace
10270 } // namespace cc 10270 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/damage_tracker_unittest.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698