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

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

Issue 2885233002: cc : Create effect nodes for non axis aligned clips (Closed)
Patch Set: rebase Created 3 years, 7 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 | « no previous file | cc/trees/property_tree_builder.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 1323 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 draws_content->SetBounds(gfx::Size(10, 10)); 1334 draws_content->SetBounds(gfx::Size(10, 10));
1335 draws_content->SetDrawsContent(true); 1335 draws_content->SetDrawsContent(true);
1336 1336
1337 ExecuteCalculateDrawProperties(root); 1337 ExecuteCalculateDrawProperties(root);
1338 EffectTree& effect_tree = 1338 EffectTree& effect_tree =
1339 root->layer_tree_impl()->property_trees()->effect_tree; 1339 root->layer_tree_impl()->property_trees()->effect_tree;
1340 EffectNode* node = effect_tree.Node(clips_subtree->effect_tree_index()); 1340 EffectNode* node = effect_tree.Node(clips_subtree->effect_tree_index());
1341 EXPECT_TRUE(node->has_render_surface); 1341 EXPECT_TRUE(node->has_render_surface);
1342 } 1342 }
1343 1343
1344 TEST_F(LayerTreeHostCommonTest, EffectNodesForNonAxisAlignedClips) {
1345 LayerImpl* root = root_layer_for_testing();
1346 LayerImpl* rotate_and_clip = AddChildToRoot<LayerImpl>();
1347 LayerImpl* only_clip = AddChild<LayerImpl>(rotate_and_clip);
1348 LayerImpl* rotate_and_clip2 = AddChild<LayerImpl>(only_clip);
1349
1350 gfx::Transform rotate;
1351 rotate.Rotate(2);
1352 root->SetBounds(gfx::Size(10, 10));
1353 rotate_and_clip->SetBounds(gfx::Size(10, 10));
1354 rotate_and_clip->test_properties()->transform = rotate;
1355 rotate_and_clip->SetMasksToBounds(true);
1356 only_clip->SetBounds(gfx::Size(10, 10));
1357 only_clip->SetMasksToBounds(true);
1358 rotate_and_clip2->SetBounds(gfx::Size(10, 10));
1359 rotate_and_clip2->test_properties()->transform = rotate;
1360 rotate_and_clip2->SetMasksToBounds(true);
1361
1362 ExecuteCalculateDrawProperties(root);
1363 // non-axis aligned clip should create an effect node
1364 EXPECT_NE(root->effect_tree_index(), rotate_and_clip->effect_tree_index());
1365 // Since only_clip's clip is in the same non-axis aligned space as
1366 // rotate_and_clip's clip, no new effect node should be created.
1367 EXPECT_EQ(rotate_and_clip->effect_tree_index(),
1368 only_clip->effect_tree_index());
1369 // rotate_and_clip2's clip and only_clip's clip are in different non-axis
1370 // aligned spaces. So, new effect node should be created.
1371 EXPECT_NE(rotate_and_clip2->effect_tree_index(),
1372 only_clip->effect_tree_index());
1373 }
1374
1344 TEST_F(LayerTreeHostCommonTest, 1375 TEST_F(LayerTreeHostCommonTest,
1345 RenderSurfaceListForRenderSurfaceWithClippedLayer) { 1376 RenderSurfaceListForRenderSurfaceWithClippedLayer) {
1346 LayerImpl* root = root_layer_for_testing(); 1377 LayerImpl* root = root_layer_for_testing();
1347 LayerImpl* render_surface1 = AddChildToRoot<LayerImpl>(); 1378 LayerImpl* render_surface1 = AddChildToRoot<LayerImpl>();
1348 LayerImpl* child = AddChild<LayerImpl>(render_surface1); 1379 LayerImpl* child = AddChild<LayerImpl>(render_surface1);
1349 1380
1350 root->SetBounds(gfx::Size(10, 10)); 1381 root->SetBounds(gfx::Size(10, 10));
1351 root->SetMasksToBounds(true); 1382 root->SetMasksToBounds(true);
1352 render_surface1->SetBounds(gfx::Size(10, 10)); 1383 render_surface1->SetBounds(gfx::Size(10, 10));
1353 render_surface1->test_properties()->force_render_surface = true; 1384 render_surface1->test_properties()->force_render_surface = true;
(...skipping 8824 matching lines...) Expand 10 before | Expand all | Expand 10 after
10178 10209
10179 // Check child layer draw properties. 10210 // Check child layer draw properties.
10180 EXPECT_EQ(gfx::Rect(10, 10), child->visible_layer_rect()); 10211 EXPECT_EQ(gfx::Rect(10, 10), child->visible_layer_rect());
10181 EXPECT_EQ(gfx::Transform(), child->DrawTransform()); 10212 EXPECT_EQ(gfx::Transform(), child->DrawTransform());
10182 EXPECT_EQ(gfx::Rect(10, 10), child->clip_rect()); 10213 EXPECT_EQ(gfx::Rect(10, 10), child->clip_rect());
10183 EXPECT_EQ(gfx::Rect(10, 10), child->drawable_content_rect()); 10214 EXPECT_EQ(gfx::Rect(10, 10), child->drawable_content_rect());
10184 } 10215 }
10185 10216
10186 } // namespace 10217 } // namespace
10187 } // namespace cc 10218 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/property_tree_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698