| Index: cc/trees/damage_tracker_unittest.cc
|
| diff --git a/cc/trees/damage_tracker_unittest.cc b/cc/trees/damage_tracker_unittest.cc
|
| index d9f58158fe71d0db8ec0d641ce6cfef67f2bdd74..f907bb7f3e7307357b27c69a1e5a3d6f12dd3919 100644
|
| --- a/cc/trees/damage_tracker_unittest.cc
|
| +++ b/cc/trees/damage_tracker_unittest.cc
|
| @@ -576,13 +576,14 @@ TEST_F(DamageTrackerTest, VerifyDamageForImageFilter) {
|
| root->render_surface()->damage_tracker()->current_damage_rect();
|
| child_damage_rect =
|
| child->render_surface()->damage_tracker()->current_damage_rect();
|
| - EXPECT_EQ(gfx::Rect(100, 100, 30, 30).ToString(),
|
| - root_damage_rect.ToString());
|
| + EXPECT_EQ(gfx::Rect(100 - outset_left, 100 - outset_top,
|
| + 30 + outset_left + outset_right,
|
| + 30 + outset_top + outset_bottom),
|
| + root_damage_rect);
|
| EXPECT_EQ(
|
| gfx::Rect(-outset_left, -outset_top, 30 + (outset_left + outset_right),
|
| - 30 + (outset_top + outset_bottom))
|
| - .ToString(),
|
| - child_damage_rect.ToString());
|
| + 30 + (outset_top + outset_bottom)),
|
| + child_damage_rect);
|
|
|
| // CASE 1: Setting the update rect should damage the whole surface (for now)
|
| ClearDamageForAllSurfaces(root);
|
| @@ -598,12 +599,70 @@ TEST_F(DamageTrackerTest, VerifyDamageForImageFilter) {
|
| int expect_width = 1 + outset_left + outset_right;
|
| int expect_height = 1 + outset_top + outset_bottom;
|
| EXPECT_EQ(gfx::Rect(100 - outset_left, 100 - outset_top, expect_width,
|
| - expect_height)
|
| - .ToString(),
|
| - root_damage_rect.ToString());
|
| - EXPECT_EQ(gfx::Rect(-outset_left, -outset_top, expect_width, expect_height)
|
| - .ToString(),
|
| - child_damage_rect.ToString());
|
| + expect_height),
|
| + root_damage_rect);
|
| + EXPECT_EQ(gfx::Rect(-outset_left, -outset_top, expect_width, expect_height),
|
| + child_damage_rect);
|
| +}
|
| +
|
| +TEST_F(DamageTrackerTest, VerifyDamageForTransformedImageFilter) {
|
| + LayerImpl* root = CreateAndSetUpTestTreeWithOneSurface();
|
| + LayerImpl* child = root->children()[0];
|
| + gfx::Rect root_damage_rect, child_damage_rect;
|
| +
|
| + // Allow us to set damage on child too.
|
| + child->SetDrawsContent(true);
|
| +
|
| + FilterOperations filters;
|
| + filters.Append(FilterOperation::CreateReferenceFilter(
|
| + SkBlurImageFilter::Make(2, 2, nullptr)));
|
| + int outset_top, outset_right, outset_bottom, outset_left;
|
| + filters.GetOutsets(&outset_top, &outset_right, &outset_bottom, &outset_left);
|
| +
|
| + // Setting the filter will damage the whole surface.
|
| + gfx::Transform transform;
|
| + transform.RotateAboutYAxis(60);
|
| + ClearDamageForAllSurfaces(root);
|
| + child->test_properties()->force_render_surface = true;
|
| + child->SetTransform(transform);
|
| + root->layer_tree_impl()->property_trees()->needs_rebuild = true;
|
| + EmulateDrawingOneFrame(root);
|
| + child->OnFilterAnimated(filters);
|
| + EmulateDrawingOneFrame(root);
|
| + root_damage_rect =
|
| + root->render_surface()->damage_tracker()->current_damage_rect();
|
| + child_damage_rect =
|
| + child->render_surface()->damage_tracker()->current_damage_rect();
|
| + int rotated_outset_left = outset_left / 2;
|
| + int expected_rotated_width = (30 + outset_left + outset_right) / 2;
|
| + gfx::Rect expected_root_damage(100 - rotated_outset_left, 100 - outset_top,
|
| + expected_rotated_width,
|
| + 30 + outset_top + outset_bottom);
|
| + expected_root_damage.Union(gfx::Rect(100, 100, 30, 30));
|
| + EXPECT_EQ(expected_root_damage, root_damage_rect);
|
| + EXPECT_EQ(
|
| + gfx::Rect(-outset_left, -outset_top, 30 + (outset_left + outset_right),
|
| + 30 + (outset_top + outset_bottom)),
|
| + child_damage_rect);
|
| +
|
| + // Setting the update rect should damage the whole surface (for now)
|
| + ClearDamageForAllSurfaces(root);
|
| + child->SetUpdateRect(gfx::Rect(30, 30));
|
| + root->layer_tree_impl()->property_trees()->needs_rebuild = true;
|
| + EmulateDrawingOneFrame(root);
|
| +
|
| + root_damage_rect =
|
| + root->render_surface()->damage_tracker()->current_damage_rect();
|
| + child_damage_rect =
|
| + child->render_surface()->damage_tracker()->current_damage_rect();
|
| +
|
| + int expect_width = 30 + outset_left + outset_right;
|
| + int expect_height = 30 + outset_top + outset_bottom;
|
| + EXPECT_EQ(gfx::Rect(100 - outset_left / 2, 100 - outset_top, expect_width / 2,
|
| + expect_height),
|
| + root_damage_rect);
|
| + EXPECT_EQ(gfx::Rect(-outset_left, -outset_top, expect_width, expect_height),
|
| + child_damage_rect);
|
| }
|
|
|
| TEST_F(DamageTrackerTest, VerifyDamageForBackgroundBlurredChild) {
|
|
|