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

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

Issue 1180073015: cc: Remove LayerImpl::SetContentBounds() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rm-setcontentbounds: . Created 5 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/test/layer_tree_host_common_test.cc ('k') | cc/trees/layer_tree_host_common_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/damage_tracker.h" 5 #include "cc/trees/damage_tracker.h"
6 6
7 #include "cc/base/math_util.h" 7 #include "cc/base/math_util.h"
8 #include "cc/layers/layer_impl.h" 8 #include "cc/layers/layer_impl.h"
9 #include "cc/output/filter_operation.h" 9 #include "cc/output/filter_operation.h"
10 #include "cc/output/filter_operations.h" 10 #include "cc/output/filter_operations.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 : host_impl_(&proxy_, &shared_bitmap_manager_, &task_graph_runner_) {} 82 : host_impl_(&proxy_, &shared_bitmap_manager_, &task_graph_runner_) {}
83 83
84 scoped_ptr<LayerImpl> CreateTestTreeWithOneSurface() { 84 scoped_ptr<LayerImpl> CreateTestTreeWithOneSurface() {
85 scoped_ptr<LayerImpl> root = 85 scoped_ptr<LayerImpl> root =
86 LayerImpl::Create(host_impl_.active_tree(), 1); 86 LayerImpl::Create(host_impl_.active_tree(), 1);
87 scoped_ptr<LayerImpl> child = 87 scoped_ptr<LayerImpl> child =
88 LayerImpl::Create(host_impl_.active_tree(), 2); 88 LayerImpl::Create(host_impl_.active_tree(), 2);
89 89
90 root->SetPosition(gfx::PointF()); 90 root->SetPosition(gfx::PointF());
91 root->SetBounds(gfx::Size(500, 500)); 91 root->SetBounds(gfx::Size(500, 500));
92 root->SetContentBounds(gfx::Size(500, 500));
93 root->SetDrawsContent(true); 92 root->SetDrawsContent(true);
94 root->SetHasRenderSurface(true); 93 root->SetHasRenderSurface(true);
95 root->render_surface()->SetContentRect(gfx::Rect(0, 0, 500, 500)); 94 root->render_surface()->SetContentRect(gfx::Rect(0, 0, 500, 500));
96 95
97 child->SetPosition(gfx::PointF(100.f, 100.f)); 96 child->SetPosition(gfx::PointF(100.f, 100.f));
98 child->SetBounds(gfx::Size(30, 30)); 97 child->SetBounds(gfx::Size(30, 30));
99 child->SetContentBounds(gfx::Size(30, 30));
100 child->SetDrawsContent(true); 98 child->SetDrawsContent(true);
101 root->AddChild(child.Pass()); 99 root->AddChild(child.Pass());
102 100
103 return root.Pass(); 101 return root.Pass();
104 } 102 }
105 103
106 scoped_ptr<LayerImpl> CreateTestTreeWithTwoSurfaces() { 104 scoped_ptr<LayerImpl> CreateTestTreeWithTwoSurfaces() {
107 // This test tree has two render surfaces: one for the root, and one for 105 // This test tree has two render surfaces: one for the root, and one for
108 // child1. Additionally, the root has a second child layer, and child1 has 106 // child1. Additionally, the root has a second child layer, and child1 has
109 // two children of its own. 107 // two children of its own.
110 108
111 scoped_ptr<LayerImpl> root = 109 scoped_ptr<LayerImpl> root =
112 LayerImpl::Create(host_impl_.active_tree(), 1); 110 LayerImpl::Create(host_impl_.active_tree(), 1);
113 scoped_ptr<LayerImpl> child1 = 111 scoped_ptr<LayerImpl> child1 =
114 LayerImpl::Create(host_impl_.active_tree(), 2); 112 LayerImpl::Create(host_impl_.active_tree(), 2);
115 scoped_ptr<LayerImpl> child2 = 113 scoped_ptr<LayerImpl> child2 =
116 LayerImpl::Create(host_impl_.active_tree(), 3); 114 LayerImpl::Create(host_impl_.active_tree(), 3);
117 scoped_ptr<LayerImpl> grand_child1 = 115 scoped_ptr<LayerImpl> grand_child1 =
118 LayerImpl::Create(host_impl_.active_tree(), 4); 116 LayerImpl::Create(host_impl_.active_tree(), 4);
119 scoped_ptr<LayerImpl> grand_child2 = 117 scoped_ptr<LayerImpl> grand_child2 =
120 LayerImpl::Create(host_impl_.active_tree(), 5); 118 LayerImpl::Create(host_impl_.active_tree(), 5);
121 119
122 root->SetPosition(gfx::PointF()); 120 root->SetPosition(gfx::PointF());
123 root->SetBounds(gfx::Size(500, 500)); 121 root->SetBounds(gfx::Size(500, 500));
124 root->SetContentBounds(gfx::Size(500, 500));
125 root->SetDrawsContent(true); 122 root->SetDrawsContent(true);
126 root->SetHasRenderSurface(true); 123 root->SetHasRenderSurface(true);
127 root->render_surface()->SetContentRect(gfx::Rect(0, 0, 500, 500)); 124 root->render_surface()->SetContentRect(gfx::Rect(0, 0, 500, 500));
128 125
129 child1->SetPosition(gfx::PointF(100.f, 100.f)); 126 child1->SetPosition(gfx::PointF(100.f, 100.f));
130 child1->SetBounds(gfx::Size(30, 30)); 127 child1->SetBounds(gfx::Size(30, 30));
131 child1->SetContentBounds(gfx::Size(30, 30));
132 // With a child that draws_content, opacity will cause the layer to create 128 // With a child that draws_content, opacity will cause the layer to create
133 // its own RenderSurface. This layer does not draw, but is intended to 129 // its own RenderSurface. This layer does not draw, but is intended to
134 // create its own RenderSurface. 130 // create its own RenderSurface.
135 child1->SetDrawsContent(false); 131 child1->SetDrawsContent(false);
136 child1->SetHasRenderSurface(true); 132 child1->SetHasRenderSurface(true);
137 133
138 child2->SetPosition(gfx::PointF(11.f, 11.f)); 134 child2->SetPosition(gfx::PointF(11.f, 11.f));
139 child2->SetBounds(gfx::Size(18, 18)); 135 child2->SetBounds(gfx::Size(18, 18));
140 child2->SetContentBounds(gfx::Size(18, 18));
141 child2->SetDrawsContent(true); 136 child2->SetDrawsContent(true);
142 137
143 grand_child1->SetPosition(gfx::PointF(200.f, 200.f)); 138 grand_child1->SetPosition(gfx::PointF(200.f, 200.f));
144 grand_child1->SetBounds(gfx::Size(6, 8)); 139 grand_child1->SetBounds(gfx::Size(6, 8));
145 grand_child1->SetContentBounds(gfx::Size(6, 8));
146 grand_child1->SetDrawsContent(true); 140 grand_child1->SetDrawsContent(true);
147 141
148 grand_child2->SetPosition(gfx::PointF(190.f, 190.f)); 142 grand_child2->SetPosition(gfx::PointF(190.f, 190.f));
149 grand_child2->SetBounds(gfx::Size(6, 8)); 143 grand_child2->SetBounds(gfx::Size(6, 8));
150 grand_child2->SetContentBounds(gfx::Size(6, 8));
151 grand_child2->SetDrawsContent(true); 144 grand_child2->SetDrawsContent(true);
152 145
153 child1->AddChild(grand_child1.Pass()); 146 child1->AddChild(grand_child1.Pass());
154 child1->AddChild(grand_child2.Pass()); 147 child1->AddChild(grand_child2.Pass());
155 root->AddChild(child1.Pass()); 148 root->AddChild(child1.Pass());
156 root->AddChild(child2.Pass()); 149 root->AddChild(child2.Pass());
157 150
158 return root.Pass(); 151 return root.Pass();
159 } 152 }
160 153
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 458
466 gfx::Transform transform; 459 gfx::Transform transform;
467 transform.Translate3d(500.0, 500.0, 0.0); 460 transform.Translate3d(500.0, 500.0, 0.0);
468 transform.ApplyPerspectiveDepth(1.0); 461 transform.ApplyPerspectiveDepth(1.0);
469 transform.RotateAboutYAxis(45.0); 462 transform.RotateAboutYAxis(45.0);
470 transform.Translate3d(-50.0, -50.0, 0.0); 463 transform.Translate3d(-50.0, -50.0, 0.0);
471 464
472 // Set up the child 465 // Set up the child
473 child->SetPosition(gfx::PointF(0.f, 0.f)); 466 child->SetPosition(gfx::PointF(0.f, 0.f));
474 child->SetBounds(gfx::Size(100, 100)); 467 child->SetBounds(gfx::Size(100, 100));
475 child->SetContentBounds(gfx::Size(100, 100));
476 child->SetTransform(transform); 468 child->SetTransform(transform);
477 EmulateDrawingOneFrame(root.get()); 469 EmulateDrawingOneFrame(root.get());
478 470
479 // Sanity check that the child layer's bounds would actually get clipped by 471 // Sanity check that the child layer's bounds would actually get clipped by
480 // w < 0, otherwise this test is not actually testing the intended scenario. 472 // w < 0, otherwise this test is not actually testing the intended scenario.
481 gfx::QuadF test_quad(gfx::RectF(gfx::PointF(), gfx::SizeF(100.f, 100.f))); 473 gfx::QuadF test_quad(gfx::RectF(gfx::PointF(), gfx::SizeF(100.f, 100.f)));
482 bool clipped = false; 474 bool clipped = false;
483 MathUtil::MapQuad(transform, test_quad, &clipped); 475 MathUtil::MapQuad(transform, test_quad, &clipped);
484 EXPECT_TRUE(clipped); 476 EXPECT_TRUE(clipped);
485 477
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 LayerImpl* child1 = root->children()[0]; 695 LayerImpl* child1 = root->children()[0];
704 696
705 // CASE 1: Adding a new layer should cause the appropriate damage. 697 // CASE 1: Adding a new layer should cause the appropriate damage.
706 // 698 //
707 ClearDamageForAllSurfaces(root.get()); 699 ClearDamageForAllSurfaces(root.get());
708 { 700 {
709 scoped_ptr<LayerImpl> child2 = 701 scoped_ptr<LayerImpl> child2 =
710 LayerImpl::Create(host_impl_.active_tree(), 3); 702 LayerImpl::Create(host_impl_.active_tree(), 3);
711 child2->SetPosition(gfx::PointF(400.f, 380.f)); 703 child2->SetPosition(gfx::PointF(400.f, 380.f));
712 child2->SetBounds(gfx::Size(6, 8)); 704 child2->SetBounds(gfx::Size(6, 8));
713 child2->SetContentBounds(gfx::Size(6, 8));
714 child2->SetDrawsContent(true); 705 child2->SetDrawsContent(true);
715 root->AddChild(child2.Pass()); 706 root->AddChild(child2.Pass());
716 } 707 }
717 EmulateDrawingOneFrame(root.get()); 708 EmulateDrawingOneFrame(root.get());
718 709
719 // Sanity check - all 3 layers should be on the same render surface; render 710 // Sanity check - all 3 layers should be on the same render surface; render
720 // surfaces are tested elsewhere. 711 // surfaces are tested elsewhere.
721 ASSERT_EQ(3u, root->render_surface()->layer_list().size()); 712 ASSERT_EQ(3u, root->render_surface()->layer_list().size());
722 713
723 gfx::Rect root_damage_rect = 714 gfx::Rect root_damage_rect =
(...skipping 28 matching lines...) Expand all
752 // damage of its own, it should still indeed damage the target surface. 743 // damage of its own, it should still indeed damage the target surface.
753 744
754 scoped_ptr<LayerImpl> root = CreateAndSetUpTestTreeWithOneSurface(); 745 scoped_ptr<LayerImpl> root = CreateAndSetUpTestTreeWithOneSurface();
755 746
756 ClearDamageForAllSurfaces(root.get()); 747 ClearDamageForAllSurfaces(root.get());
757 { 748 {
758 scoped_ptr<LayerImpl> child2 = 749 scoped_ptr<LayerImpl> child2 =
759 LayerImpl::Create(host_impl_.active_tree(), 3); 750 LayerImpl::Create(host_impl_.active_tree(), 3);
760 child2->SetPosition(gfx::PointF(400.f, 380.f)); 751 child2->SetPosition(gfx::PointF(400.f, 380.f));
761 child2->SetBounds(gfx::Size(6, 8)); 752 child2->SetBounds(gfx::Size(6, 8));
762 child2->SetContentBounds(gfx::Size(6, 8));
763 child2->SetDrawsContent(true); 753 child2->SetDrawsContent(true);
764 child2->ResetAllChangeTrackingForSubtree(); 754 child2->ResetAllChangeTrackingForSubtree();
765 // Sanity check the initial conditions of the test, if these asserts 755 // Sanity check the initial conditions of the test, if these asserts
766 // trigger, it means the test no longer actually covers the intended 756 // trigger, it means the test no longer actually covers the intended
767 // scenario. 757 // scenario.
768 ASSERT_FALSE(child2->LayerPropertyChanged()); 758 ASSERT_FALSE(child2->LayerPropertyChanged());
769 ASSERT_TRUE(child2->update_rect().IsEmpty()); 759 ASSERT_TRUE(child2->update_rect().IsEmpty());
770 root->AddChild(child2.Pass()); 760 root->AddChild(child2.Pass());
771 } 761 }
772 EmulateDrawingOneFrame(root.get()); 762 EmulateDrawingOneFrame(root.get());
(...skipping 12 matching lines...) Expand all
785 LayerImpl* child1 = root->children()[0]; 775 LayerImpl* child1 = root->children()[0];
786 776
787 // In this test we don't want the above tree manipulation to be considered 777 // In this test we don't want the above tree manipulation to be considered
788 // part of the same frame. 778 // part of the same frame.
789 ClearDamageForAllSurfaces(root.get()); 779 ClearDamageForAllSurfaces(root.get());
790 { 780 {
791 scoped_ptr<LayerImpl> child2 = 781 scoped_ptr<LayerImpl> child2 =
792 LayerImpl::Create(host_impl_.active_tree(), 3); 782 LayerImpl::Create(host_impl_.active_tree(), 3);
793 child2->SetPosition(gfx::PointF(400.f, 380.f)); 783 child2->SetPosition(gfx::PointF(400.f, 380.f));
794 child2->SetBounds(gfx::Size(6, 8)); 784 child2->SetBounds(gfx::Size(6, 8));
795 child2->SetContentBounds(gfx::Size(6, 8));
796 child2->SetDrawsContent(true); 785 child2->SetDrawsContent(true);
797 root->AddChild(child2.Pass()); 786 root->AddChild(child2.Pass());
798 } 787 }
799 LayerImpl* child2 = root->children()[1]; 788 LayerImpl* child2 = root->children()[1];
800 EmulateDrawingOneFrame(root.get()); 789 EmulateDrawingOneFrame(root.get());
801 790
802 // Damaging two layers simultaneously should cause combined damage. 791 // Damaging two layers simultaneously should cause combined damage.
803 // - child1 update rect in surface space: gfx::Rect(100, 100, 1, 2); 792 // - child1 update rect in surface space: gfx::Rect(100, 100, 1, 2);
804 // - child2 update rect in surface space: gfx::Rect(400, 380, 3, 4); 793 // - child2 update rect in surface space: gfx::Rect(400, 380, 3, 4);
805 ClearDamageForAllSurfaces(root.get()); 794 ClearDamageForAllSurfaces(root.get());
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 1024
1036 // For this test case, we modify grand_child2, and add grand_child3 to extend 1025 // For this test case, we modify grand_child2, and add grand_child3 to extend
1037 // the bounds of child1's surface. This way, we can test reflection changes 1026 // the bounds of child1's surface. This way, we can test reflection changes
1038 // without changing content_bounds of the surface. 1027 // without changing content_bounds of the surface.
1039 grand_child2->SetPosition(gfx::PointF(180.f, 180.f)); 1028 grand_child2->SetPosition(gfx::PointF(180.f, 180.f));
1040 { 1029 {
1041 scoped_ptr<LayerImpl> grand_child3 = 1030 scoped_ptr<LayerImpl> grand_child3 =
1042 LayerImpl::Create(host_impl_.active_tree(), 6); 1031 LayerImpl::Create(host_impl_.active_tree(), 6);
1043 grand_child3->SetPosition(gfx::PointF(240.f, 240.f)); 1032 grand_child3->SetPosition(gfx::PointF(240.f, 240.f));
1044 grand_child3->SetBounds(gfx::Size(10, 10)); 1033 grand_child3->SetBounds(gfx::Size(10, 10));
1045 grand_child3->SetContentBounds(gfx::Size(10, 10));
1046 grand_child3->SetDrawsContent(true); 1034 grand_child3->SetDrawsContent(true);
1047 child1->AddChild(grand_child3.Pass()); 1035 child1->AddChild(grand_child3.Pass());
1048 } 1036 }
1049 child1->SetOpacity(0.5f); 1037 child1->SetOpacity(0.5f);
1050 EmulateDrawingOneFrame(root.get()); 1038 EmulateDrawingOneFrame(root.get());
1051 1039
1052 // CASE 1: adding a reflection about the left edge of grand_child1. 1040 // CASE 1: adding a reflection about the left edge of grand_child1.
1053 // 1041 //
1054 ClearDamageForAllSurfaces(root.get()); 1042 ClearDamageForAllSurfaces(root.get());
1055 { 1043 {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 // layers should damage the entire corresponding surface. 1125 // layers should damage the entire corresponding surface.
1138 1126
1139 ClearDamageForAllSurfaces(root.get()); 1127 ClearDamageForAllSurfaces(root.get());
1140 1128
1141 // Set up the mask layer. 1129 // Set up the mask layer.
1142 { 1130 {
1143 scoped_ptr<LayerImpl> mask_layer = 1131 scoped_ptr<LayerImpl> mask_layer =
1144 LayerImpl::Create(host_impl_.active_tree(), 3); 1132 LayerImpl::Create(host_impl_.active_tree(), 3);
1145 mask_layer->SetPosition(child->position()); 1133 mask_layer->SetPosition(child->position());
1146 mask_layer->SetBounds(child->bounds()); 1134 mask_layer->SetBounds(child->bounds());
1147 mask_layer->SetContentBounds(child->bounds());
1148 child->SetMaskLayer(mask_layer.Pass()); 1135 child->SetMaskLayer(mask_layer.Pass());
1149 child->SetHasRenderSurface(true); 1136 child->SetHasRenderSurface(true);
1150 } 1137 }
1151 LayerImpl* mask_layer = child->mask_layer(); 1138 LayerImpl* mask_layer = child->mask_layer();
1152 1139
1153 // Add opacity and a grand_child so that the render surface persists even 1140 // Add opacity and a grand_child so that the render surface persists even
1154 // after we remove the mask. 1141 // after we remove the mask.
1155 { 1142 {
1156 scoped_ptr<LayerImpl> grand_child = 1143 scoped_ptr<LayerImpl> grand_child =
1157 LayerImpl::Create(host_impl_.active_tree(), 4); 1144 LayerImpl::Create(host_impl_.active_tree(), 4);
1158 grand_child->SetPosition(gfx::PointF(2.f, 2.f)); 1145 grand_child->SetPosition(gfx::PointF(2.f, 2.f));
1159 grand_child->SetBounds(gfx::Size(2, 2)); 1146 grand_child->SetBounds(gfx::Size(2, 2));
1160 grand_child->SetContentBounds(gfx::Size(2, 2));
1161 grand_child->SetDrawsContent(true); 1147 grand_child->SetDrawsContent(true);
1162 child->AddChild(grand_child.Pass()); 1148 child->AddChild(grand_child.Pass());
1163 } 1149 }
1164 EmulateDrawingOneFrame(root.get()); 1150 EmulateDrawingOneFrame(root.get());
1165 1151
1166 // CASE 1: the update_rect on a mask layer should damage the entire target 1152 // CASE 1: the update_rect on a mask layer should damage the entire target
1167 // surface. 1153 // surface.
1168 ClearDamageForAllSurfaces(root.get()); 1154 ClearDamageForAllSurfaces(root.get());
1169 mask_layer->SetUpdateRect(gfx::Rect(1, 2, 3, 4)); 1155 mask_layer->SetUpdateRect(gfx::Rect(1, 2, 3, 4));
1170 EmulateDrawingOneFrame(root.get()); 1156 EmulateDrawingOneFrame(root.get());
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 grand_child1->SetHasRenderSurface(true); 1225 grand_child1->SetHasRenderSurface(true);
1240 } 1226 }
1241 LayerImpl* grand_child1_replica = grand_child1->replica_layer(); 1227 LayerImpl* grand_child1_replica = grand_child1->replica_layer();
1242 1228
1243 // Set up the mask layer on the replica layer 1229 // Set up the mask layer on the replica layer
1244 { 1230 {
1245 scoped_ptr<LayerImpl> replica_mask_layer = 1231 scoped_ptr<LayerImpl> replica_mask_layer =
1246 LayerImpl::Create(host_impl_.active_tree(), 7); 1232 LayerImpl::Create(host_impl_.active_tree(), 7);
1247 replica_mask_layer->SetPosition(gfx::PointF()); 1233 replica_mask_layer->SetPosition(gfx::PointF());
1248 replica_mask_layer->SetBounds(grand_child1->bounds()); 1234 replica_mask_layer->SetBounds(grand_child1->bounds());
1249 replica_mask_layer->SetContentBounds(grand_child1->bounds());
1250 grand_child1_replica->SetMaskLayer(replica_mask_layer.Pass()); 1235 grand_child1_replica->SetMaskLayer(replica_mask_layer.Pass());
1251 } 1236 }
1252 LayerImpl* replica_mask_layer = grand_child1_replica->mask_layer(); 1237 LayerImpl* replica_mask_layer = grand_child1_replica->mask_layer();
1253 1238
1254 EmulateDrawingOneFrame(root.get()); 1239 EmulateDrawingOneFrame(root.get());
1255 1240
1256 // Sanity check that the appropriate render surfaces were created 1241 // Sanity check that the appropriate render surfaces were created
1257 ASSERT_TRUE(grand_child1->render_surface()); 1242 ASSERT_TRUE(grand_child1->render_surface());
1258 1243
1259 // CASE 1: a property change on the mask should damage only the reflected 1244 // CASE 1: a property change on the mask should damage only the reflected
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 } 1303 }
1319 LayerImpl* grand_child1_replica = grand_child1->replica_layer(); 1304 LayerImpl* grand_child1_replica = grand_child1->replica_layer();
1320 1305
1321 // Set up the mask layer on the replica layer 1306 // Set up the mask layer on the replica layer
1322 { 1307 {
1323 scoped_ptr<LayerImpl> replica_mask_layer = 1308 scoped_ptr<LayerImpl> replica_mask_layer =
1324 LayerImpl::Create(host_impl_.active_tree(), 7); 1309 LayerImpl::Create(host_impl_.active_tree(), 7);
1325 replica_mask_layer->SetPosition(gfx::PointF()); 1310 replica_mask_layer->SetPosition(gfx::PointF());
1326 // Note: this is not the transform origin being tested. 1311 // Note: this is not the transform origin being tested.
1327 replica_mask_layer->SetBounds(grand_child1->bounds()); 1312 replica_mask_layer->SetBounds(grand_child1->bounds());
1328 replica_mask_layer->SetContentBounds(grand_child1->bounds());
1329 grand_child1_replica->SetMaskLayer(replica_mask_layer.Pass()); 1313 grand_child1_replica->SetMaskLayer(replica_mask_layer.Pass());
1330 } 1314 }
1331 LayerImpl* replica_mask_layer = grand_child1_replica->mask_layer(); 1315 LayerImpl* replica_mask_layer = grand_child1_replica->mask_layer();
1332 1316
1333 EmulateDrawingOneFrame(root.get()); 1317 EmulateDrawingOneFrame(root.get());
1334 1318
1335 // Sanity check that the appropriate render surfaces were created 1319 // Sanity check that the appropriate render surfaces were created
1336 ASSERT_TRUE(grand_child1->render_surface()); 1320 ASSERT_TRUE(grand_child1->render_surface());
1337 1321
1338 // A property change on the replica_mask should damage the reflected region on 1322 // A property change on the replica_mask should damage the reflected region on
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1452 scoped_ptr<LayerImpl> root = CreateTestTreeWithOneSurface(); 1436 scoped_ptr<LayerImpl> root = CreateTestTreeWithOneSurface();
1453 LayerImpl* child = root->children()[0]; 1437 LayerImpl* child = root->children()[0];
1454 1438
1455 gfx::Transform transform; 1439 gfx::Transform transform;
1456 transform.Translate(-kBigNumber, -kBigNumber); 1440 transform.Translate(-kBigNumber, -kBigNumber);
1457 1441
1458 // The child layer covers (0, 0, i, i) of the viewport, 1442 // The child layer covers (0, 0, i, i) of the viewport,
1459 // but has a huge negative position. 1443 // but has a huge negative position.
1460 child->SetPosition(gfx::PointF()); 1444 child->SetPosition(gfx::PointF());
1461 child->SetBounds(gfx::Size(kBigNumber + i, kBigNumber + i)); 1445 child->SetBounds(gfx::Size(kBigNumber + i, kBigNumber + i));
1462 child->SetContentBounds(gfx::Size(kBigNumber + i, kBigNumber + i));
1463 child->SetTransform(transform); 1446 child->SetTransform(transform);
1464 EmulateDrawingOneFrame(root.get()); 1447 EmulateDrawingOneFrame(root.get());
1465 1448
1466 // The expected damage should cover the visible part of the child layer, 1449 // The expected damage should cover the visible part of the child layer,
1467 // which is (0, 0, i, i) in the viewport. 1450 // which is (0, 0, i, i) in the viewport.
1468 gfx::Rect root_damage_rect = 1451 gfx::Rect root_damage_rect =
1469 root->render_surface()->damage_tracker()->current_damage_rect(); 1452 root->render_surface()->damage_tracker()->current_damage_rect();
1470 gfx::Rect damage_we_care_about = gfx::Rect(i, i); 1453 gfx::Rect damage_we_care_about = gfx::Rect(i, i);
1471 EXPECT_LE(damage_we_care_about.right(), root_damage_rect.right()); 1454 EXPECT_LE(damage_we_care_about.right(), root_damage_rect.right());
1472 EXPECT_LE(damage_we_care_about.bottom(), root_damage_rect.bottom()); 1455 EXPECT_LE(damage_we_care_about.bottom(), root_damage_rect.bottom());
1473 } 1456 }
1474 } 1457 }
1475 1458
1476 } // namespace 1459 } // namespace
1477 } // namespace cc 1460 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_host_common_test.cc ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698