OLD | NEW |
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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "cc/base/filter_operation.h" | 9 #include "cc/base/filter_operation.h" |
10 #include "cc/base/filter_operations.h" | 10 #include "cc/base/filter_operations.h" |
11 #include "cc/base/math_util.h" | 11 #include "cc/base/math_util.h" |
12 #include "cc/layers/layer_impl.h" | 12 #include "cc/layers/layer_impl.h" |
13 #include "cc/test/fake_impl_task_runner_provider.h" | 13 #include "cc/test/fake_impl_task_runner_provider.h" |
14 #include "cc/test/fake_layer_tree_host_impl.h" | 14 #include "cc/test/fake_layer_tree_host_impl.h" |
15 #include "cc/test/geometry_test_utils.h" | 15 #include "cc/test/geometry_test_utils.h" |
16 #include "cc/test/test_task_graph_runner.h" | 16 #include "cc/test/test_task_graph_runner.h" |
17 #include "cc/trees/layer_tree_host_common.h" | 17 #include "cc/trees/layer_tree_host_common.h" |
18 #include "cc/trees/layer_tree_impl.h" | 18 #include "cc/trees/layer_tree_impl.h" |
19 #include "cc/trees/single_thread_proxy.h" | 19 #include "cc/trees/single_thread_proxy.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
21 #include "third_party/skia/include/effects/SkBlurImageFilter.h" | 21 #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
22 #include "ui/gfx/geometry/quad_f.h" | 22 #include "ui/gfx/geometry/quad_f.h" |
23 #include "ui/gfx/geometry/rect_conversions.h" | 23 #include "ui/gfx/geometry/rect_conversions.h" |
24 | 24 |
25 namespace cc { | 25 namespace cc { |
26 namespace { | 26 namespace { |
27 | 27 |
28 void ExecuteCalculateDrawProperties(LayerImpl* root, | 28 void ExecuteCalculateDrawProperties(LayerImpl* root, |
29 float device_scale_factor, | 29 float device_scale_factor, |
30 bool skip_verify_visible_rect_calculations, | |
31 LayerImplList* render_surface_layer_list) { | 30 LayerImplList* render_surface_layer_list) { |
32 // Sanity check: The test itself should create the root layer's render | 31 // Sanity check: The test itself should create the root layer's render |
33 // surface, so that the surface (and its damage tracker) can | 32 // surface, so that the surface (and its damage tracker) can |
34 // persist across multiple calls to this function. | 33 // persist across multiple calls to this function. |
35 ASSERT_FALSE(render_surface_layer_list->size()); | 34 ASSERT_FALSE(render_surface_layer_list->size()); |
36 | 35 |
37 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(root); | 36 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(root); |
38 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( | 37 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( |
39 root, root->bounds(), device_scale_factor, render_surface_layer_list); | 38 root, root->bounds(), device_scale_factor, render_surface_layer_list); |
40 if (skip_verify_visible_rect_calculations) | |
41 inputs.verify_visible_rect_calculations = false; | |
42 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); | 39 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); |
43 ASSERT_TRUE(root->GetRenderSurface()); | 40 ASSERT_TRUE(root->GetRenderSurface()); |
44 } | 41 } |
45 | 42 |
46 void ClearDamageForAllSurfaces(LayerImpl* root) { | 43 void ClearDamageForAllSurfaces(LayerImpl* root) { |
47 for (auto* layer : *root->layer_tree_impl()) { | 44 for (auto* layer : *root->layer_tree_impl()) { |
48 if (layer->GetRenderSurface()) | 45 if (layer->GetRenderSurface()) |
49 layer->GetRenderSurface()->damage_tracker()->DidDrawDamagedArea(); | 46 layer->GetRenderSurface()->damage_tracker()->DidDrawDamagedArea(); |
50 } | 47 } |
51 } | 48 } |
52 | 49 |
53 void EmulateDrawingOneFrame( | 50 void EmulateDrawingOneFrame(LayerImpl* root, float device_scale_factor = 1.f) { |
54 LayerImpl* root, | |
55 float device_scale_factor = 1.f, | |
56 bool skip_verify_visible_rect_calculations = false) { | |
57 // This emulates only steps that are relevant to testing the damage tracker: | 51 // This emulates only steps that are relevant to testing the damage tracker: |
58 // 1. computing the render passes and layerlists | 52 // 1. computing the render passes and layerlists |
59 // 2. updating all damage trackers in the correct order | 53 // 2. updating all damage trackers in the correct order |
60 // 3. resetting all update_rects and property_changed flags for all layers | 54 // 3. resetting all update_rects and property_changed flags for all layers |
61 // and surfaces. | 55 // and surfaces. |
62 | 56 |
63 LayerImplList render_surface_layer_list; | 57 LayerImplList render_surface_layer_list; |
64 ExecuteCalculateDrawProperties(root, device_scale_factor, | 58 ExecuteCalculateDrawProperties(root, device_scale_factor, |
65 skip_verify_visible_rect_calculations, | |
66 &render_surface_layer_list); | 59 &render_surface_layer_list); |
67 | 60 |
68 // Iterate back-to-front, so that damage correctly propagates from descendant | 61 // Iterate back-to-front, so that damage correctly propagates from descendant |
69 // surfaces to ancestors. | 62 // surfaces to ancestors. |
70 size_t render_surface_layer_list_size = render_surface_layer_list.size(); | 63 size_t render_surface_layer_list_size = render_surface_layer_list.size(); |
71 for (size_t i = 0; i < render_surface_layer_list_size; ++i) { | 64 for (size_t i = 0; i < render_surface_layer_list_size; ++i) { |
72 size_t index = render_surface_layer_list_size - 1 - i; | 65 size_t index = render_surface_layer_list_size - 1 - i; |
73 RenderSurfaceImpl* target_surface = | 66 RenderSurfaceImpl* target_surface = |
74 render_surface_layer_list[index]->GetRenderSurface(); | 67 render_surface_layer_list[index]->GetRenderSurface(); |
75 target_surface->damage_tracker()->UpdateDamageTrackingState( | 68 target_surface->damage_tracker()->UpdateDamageTrackingState( |
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1444 // The child layer covers (0, 0, i, i) of the viewport, | 1437 // The child layer covers (0, 0, i, i) of the viewport, |
1445 // but has a huge negative position. | 1438 // but has a huge negative position. |
1446 child->SetPosition(gfx::PointF()); | 1439 child->SetPosition(gfx::PointF()); |
1447 child->SetBounds(gfx::Size(kBigNumber + i, kBigNumber + i)); | 1440 child->SetBounds(gfx::Size(kBigNumber + i, kBigNumber + i)); |
1448 child->test_properties()->transform = transform; | 1441 child->test_properties()->transform = transform; |
1449 root->layer_tree_impl()->property_trees()->needs_rebuild = true; | 1442 root->layer_tree_impl()->property_trees()->needs_rebuild = true; |
1450 float device_scale_factor = 1.f; | 1443 float device_scale_factor = 1.f; |
1451 // Visible rects computed from combining clips in target space and root | 1444 // Visible rects computed from combining clips in target space and root |
1452 // space don't match because of the loss in floating point accuracy. So, we | 1445 // space don't match because of the loss in floating point accuracy. So, we |
1453 // skip verify_clip_tree_calculations. | 1446 // skip verify_clip_tree_calculations. |
1454 bool skip_verify_visible_rect_calculations = true; | 1447 EmulateDrawingOneFrame(root, device_scale_factor); |
1455 EmulateDrawingOneFrame(root, device_scale_factor, | |
1456 skip_verify_visible_rect_calculations); | |
1457 | 1448 |
1458 // 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, |
1459 // which is (0, 0, i, i) in the viewport. | 1450 // which is (0, 0, i, i) in the viewport. |
1460 gfx::Rect root_damage_rect; | 1451 gfx::Rect root_damage_rect; |
1461 EXPECT_TRUE( | 1452 EXPECT_TRUE( |
1462 root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( | 1453 root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( |
1463 &root_damage_rect)); | 1454 &root_damage_rect)); |
1464 gfx::Rect damage_we_care_about = gfx::Rect(i, i); | 1455 gfx::Rect damage_we_care_about = gfx::Rect(i, i); |
1465 EXPECT_LE(damage_we_care_about.right(), root_damage_rect.right()); | 1456 EXPECT_LE(damage_we_care_about.right(), root_damage_rect.right()); |
1466 EXPECT_LE(damage_we_care_about.bottom(), root_damage_rect.bottom()); | 1457 EXPECT_LE(damage_we_care_about.bottom(), root_damage_rect.bottom()); |
1467 } | 1458 } |
1468 } | 1459 } |
1469 | 1460 |
1470 TEST_F(DamageTrackerTest, DamageRectTooBig) { | 1461 TEST_F(DamageTrackerTest, DamageRectTooBig) { |
1471 LayerImpl* root = CreateAndSetUpTestTreeWithOneSurface(2); | 1462 LayerImpl* root = CreateAndSetUpTestTreeWithOneSurface(2); |
1472 LayerImpl* child1 = root->test_properties()->children[0]; | 1463 LayerImpl* child1 = root->test_properties()->children[0]; |
1473 LayerImpl* child2 = root->test_properties()->children[1]; | 1464 LayerImpl* child2 = root->test_properties()->children[1]; |
1474 | 1465 |
1475 // Really far left. | 1466 // Really far left. |
1476 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0)); | 1467 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0)); |
1477 child1->SetBounds(gfx::Size(1, 1)); | 1468 child1->SetBounds(gfx::Size(1, 1)); |
1478 | 1469 |
1479 // Really far right. | 1470 // Really far right. |
1480 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0)); | 1471 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0)); |
1481 child2->SetBounds(gfx::Size(1, 1)); | 1472 child2->SetBounds(gfx::Size(1, 1)); |
1482 | 1473 |
1483 root->layer_tree_impl()->property_trees()->needs_rebuild = true; | 1474 root->layer_tree_impl()->property_trees()->needs_rebuild = true; |
1484 float device_scale_factor = 1.f; | 1475 float device_scale_factor = 1.f; |
1485 bool skip_verify_visible_rect_calculations = true; | 1476 EmulateDrawingOneFrame(root, device_scale_factor); |
1486 EmulateDrawingOneFrame(root, device_scale_factor, | |
1487 skip_verify_visible_rect_calculations); | |
1488 | 1477 |
1489 // The expected damage would be too large to store in a gfx::Rect, so we | 1478 // The expected damage would be too large to store in a gfx::Rect, so we |
1490 // should damage everything (ie, we don't have a valid rect). | 1479 // should damage everything (ie, we don't have a valid rect). |
1491 gfx::Rect damage_rect; | 1480 gfx::Rect damage_rect; |
1492 EXPECT_FALSE(root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( | 1481 EXPECT_FALSE(root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( |
1493 &damage_rect)); | 1482 &damage_rect)); |
1494 EXPECT_EQ(root->GetRenderSurface()->content_rect(), | 1483 EXPECT_EQ(root->GetRenderSurface()->content_rect(), |
1495 root->GetRenderSurface()->GetDamageRect()); | 1484 root->GetRenderSurface()->GetDamageRect()); |
1496 } | 1485 } |
1497 | 1486 |
(...skipping 10 matching lines...) Expand all Loading... |
1508 // Really far left. | 1497 // Really far left. |
1509 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0)); | 1498 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0)); |
1510 child1->SetBounds(gfx::Size(1, 1)); | 1499 child1->SetBounds(gfx::Size(1, 1)); |
1511 | 1500 |
1512 // Really far right. | 1501 // Really far right. |
1513 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0)); | 1502 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0)); |
1514 child2->SetBounds(gfx::Size(1, 1)); | 1503 child2->SetBounds(gfx::Size(1, 1)); |
1515 | 1504 |
1516 root->layer_tree_impl()->property_trees()->needs_rebuild = true; | 1505 root->layer_tree_impl()->property_trees()->needs_rebuild = true; |
1517 float device_scale_factor = 1.f; | 1506 float device_scale_factor = 1.f; |
1518 bool skip_verify_visible_rect_calculations = true; | 1507 EmulateDrawingOneFrame(root, device_scale_factor); |
1519 EmulateDrawingOneFrame(root, device_scale_factor, | |
1520 skip_verify_visible_rect_calculations); | |
1521 | 1508 |
1522 // The expected damage would be too large to store in a gfx::Rect, so we | 1509 // The expected damage would be too large to store in a gfx::Rect, so we |
1523 // should damage everything (ie, we don't have a valid rect). | 1510 // should damage everything (ie, we don't have a valid rect). |
1524 gfx::Rect damage_rect; | 1511 gfx::Rect damage_rect; |
1525 EXPECT_FALSE(root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( | 1512 EXPECT_FALSE(root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( |
1526 &damage_rect)); | 1513 &damage_rect)); |
1527 EXPECT_EQ(root->GetRenderSurface()->content_rect(), | 1514 EXPECT_EQ(root->GetRenderSurface()->content_rect(), |
1528 root->GetRenderSurface()->GetDamageRect()); | 1515 root->GetRenderSurface()->GetDamageRect()); |
1529 } | 1516 } |
1530 | 1517 |
(...skipping 10 matching lines...) Expand all Loading... |
1541 grandchild1->SetDrawsContent(true); | 1528 grandchild1->SetDrawsContent(true); |
1542 | 1529 |
1543 // Really far right. | 1530 // Really far right. |
1544 grandchild2->SetPosition( | 1531 grandchild2->SetPosition( |
1545 gfx::PointF(std::numeric_limits<int>::max() - 500, 0)); | 1532 gfx::PointF(std::numeric_limits<int>::max() - 500, 0)); |
1546 grandchild2->SetBounds(gfx::Size(1, 1)); | 1533 grandchild2->SetBounds(gfx::Size(1, 1)); |
1547 grandchild2->SetDrawsContent(true); | 1534 grandchild2->SetDrawsContent(true); |
1548 | 1535 |
1549 root->layer_tree_impl()->property_trees()->needs_rebuild = true; | 1536 root->layer_tree_impl()->property_trees()->needs_rebuild = true; |
1550 float device_scale_factor = 1.f; | 1537 float device_scale_factor = 1.f; |
1551 bool skip_verify_visible_rect_calculations = true; | |
1552 LayerImplList render_surface_layer_list; | 1538 LayerImplList render_surface_layer_list; |
1553 ExecuteCalculateDrawProperties(root, device_scale_factor, | 1539 ExecuteCalculateDrawProperties(root, device_scale_factor, |
1554 skip_verify_visible_rect_calculations, | |
1555 &render_surface_layer_list); | 1540 &render_surface_layer_list); |
1556 | 1541 |
1557 auto* surface = child1->GetRenderSurface(); | 1542 auto* surface = child1->GetRenderSurface(); |
1558 surface->damage_tracker()->UpdateDamageTrackingState( | 1543 surface->damage_tracker()->UpdateDamageTrackingState( |
1559 surface->layer_list(), surface, false, surface->content_rect(), | 1544 surface->layer_list(), surface, false, surface->content_rect(), |
1560 surface->MaskLayer(), surface->Filters()); | 1545 surface->MaskLayer(), surface->Filters()); |
1561 surface = root->GetRenderSurface(); | 1546 surface = root->GetRenderSurface(); |
1562 surface->damage_tracker()->UpdateDamageTrackingState( | 1547 surface->damage_tracker()->UpdateDamageTrackingState( |
1563 surface->layer_list(), surface, false, surface->content_rect(), | 1548 surface->layer_list(), surface, false, surface->content_rect(), |
1564 surface->MaskLayer(), surface->Filters()); | 1549 surface->MaskLayer(), surface->Filters()); |
(...skipping 18 matching lines...) Expand all Loading... |
1583 | 1568 |
1584 // Add new damage, without changing properties, which goes down a different | 1569 // Add new damage, without changing properties, which goes down a different |
1585 // path in the damage tracker. | 1570 // path in the damage tracker. |
1586 root->layer_tree_impl()->ResetAllChangeTracking(); | 1571 root->layer_tree_impl()->ResetAllChangeTracking(); |
1587 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds())); | 1572 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds())); |
1588 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds())); | 1573 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds())); |
1589 | 1574 |
1590 // Recompute all damage / properties. | 1575 // Recompute all damage / properties. |
1591 render_surface_layer_list.clear(); | 1576 render_surface_layer_list.clear(); |
1592 ExecuteCalculateDrawProperties(root, device_scale_factor, | 1577 ExecuteCalculateDrawProperties(root, device_scale_factor, |
1593 skip_verify_visible_rect_calculations, | |
1594 &render_surface_layer_list); | 1578 &render_surface_layer_list); |
1595 surface = child1->GetRenderSurface(); | 1579 surface = child1->GetRenderSurface(); |
1596 surface->damage_tracker()->UpdateDamageTrackingState( | 1580 surface->damage_tracker()->UpdateDamageTrackingState( |
1597 surface->layer_list(), surface, false, surface->content_rect(), | 1581 surface->layer_list(), surface, false, surface->content_rect(), |
1598 surface->MaskLayer(), surface->Filters()); | 1582 surface->MaskLayer(), surface->Filters()); |
1599 surface = root->GetRenderSurface(); | 1583 surface = root->GetRenderSurface(); |
1600 surface->damage_tracker()->UpdateDamageTrackingState( | 1584 surface->damage_tracker()->UpdateDamageTrackingState( |
1601 surface->layer_list(), surface, false, surface->content_rect(), | 1585 surface->layer_list(), surface, false, surface->content_rect(), |
1602 surface->MaskLayer(), surface->Filters()); | 1586 surface->MaskLayer(), surface->Filters()); |
1603 | 1587 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1638 grandchild1->SetDrawsContent(true); | 1622 grandchild1->SetDrawsContent(true); |
1639 | 1623 |
1640 // Really far right. | 1624 // Really far right. |
1641 grandchild2->SetPosition( | 1625 grandchild2->SetPosition( |
1642 gfx::PointF(std::numeric_limits<int>::max() - 500, 0)); | 1626 gfx::PointF(std::numeric_limits<int>::max() - 500, 0)); |
1643 grandchild2->SetBounds(gfx::Size(1, 1)); | 1627 grandchild2->SetBounds(gfx::Size(1, 1)); |
1644 grandchild2->SetDrawsContent(true); | 1628 grandchild2->SetDrawsContent(true); |
1645 | 1629 |
1646 root->layer_tree_impl()->property_trees()->needs_rebuild = true; | 1630 root->layer_tree_impl()->property_trees()->needs_rebuild = true; |
1647 float device_scale_factor = 1.f; | 1631 float device_scale_factor = 1.f; |
1648 bool skip_verify_visible_rect_calculations = true; | |
1649 LayerImplList render_surface_layer_list; | 1632 LayerImplList render_surface_layer_list; |
1650 ExecuteCalculateDrawProperties(root, device_scale_factor, | 1633 ExecuteCalculateDrawProperties(root, device_scale_factor, |
1651 skip_verify_visible_rect_calculations, | |
1652 &render_surface_layer_list); | 1634 &render_surface_layer_list); |
1653 | 1635 |
1654 auto* surface = child1->GetRenderSurface(); | 1636 auto* surface = child1->GetRenderSurface(); |
1655 surface->damage_tracker()->UpdateDamageTrackingState( | 1637 surface->damage_tracker()->UpdateDamageTrackingState( |
1656 surface->layer_list(), surface, false, surface->content_rect(), | 1638 surface->layer_list(), surface, false, surface->content_rect(), |
1657 surface->MaskLayer(), surface->Filters()); | 1639 surface->MaskLayer(), surface->Filters()); |
1658 surface = root->GetRenderSurface(); | 1640 surface = root->GetRenderSurface(); |
1659 surface->damage_tracker()->UpdateDamageTrackingState( | 1641 surface->damage_tracker()->UpdateDamageTrackingState( |
1660 surface->layer_list(), surface, false, surface->content_rect(), | 1642 surface->layer_list(), surface, false, surface->content_rect(), |
1661 surface->MaskLayer(), surface->Filters()); | 1643 surface->MaskLayer(), surface->Filters()); |
(...skipping 18 matching lines...) Expand all Loading... |
1680 | 1662 |
1681 // Add new damage, without changing properties, which goes down a different | 1663 // Add new damage, without changing properties, which goes down a different |
1682 // path in the damage tracker. | 1664 // path in the damage tracker. |
1683 root->layer_tree_impl()->ResetAllChangeTracking(); | 1665 root->layer_tree_impl()->ResetAllChangeTracking(); |
1684 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds())); | 1666 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds())); |
1685 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds())); | 1667 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds())); |
1686 | 1668 |
1687 // Recompute all damage / properties. | 1669 // Recompute all damage / properties. |
1688 render_surface_layer_list.clear(); | 1670 render_surface_layer_list.clear(); |
1689 ExecuteCalculateDrawProperties(root, device_scale_factor, | 1671 ExecuteCalculateDrawProperties(root, device_scale_factor, |
1690 skip_verify_visible_rect_calculations, | |
1691 &render_surface_layer_list); | 1672 &render_surface_layer_list); |
1692 surface = child1->GetRenderSurface(); | 1673 surface = child1->GetRenderSurface(); |
1693 surface->damage_tracker()->UpdateDamageTrackingState( | 1674 surface->damage_tracker()->UpdateDamageTrackingState( |
1694 surface->layer_list(), surface, false, surface->content_rect(), | 1675 surface->layer_list(), surface, false, surface->content_rect(), |
1695 surface->MaskLayer(), surface->Filters()); | 1676 surface->MaskLayer(), surface->Filters()); |
1696 surface = root->GetRenderSurface(); | 1677 surface = root->GetRenderSurface(); |
1697 surface->damage_tracker()->UpdateDamageTrackingState( | 1678 surface->damage_tracker()->UpdateDamageTrackingState( |
1698 surface->layer_list(), surface, false, surface->content_rect(), | 1679 surface->layer_list(), surface, false, surface->content_rect(), |
1699 surface->MaskLayer(), surface->Filters()); | 1680 surface->MaskLayer(), surface->Filters()); |
1700 | 1681 |
(...skipping 10 matching lines...) Expand all Loading... |
1711 ASSERT_TRUE(root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( | 1692 ASSERT_TRUE(root->GetRenderSurface()->damage_tracker()->GetDamageRectIfValid( |
1712 &damage_rect)); | 1693 &damage_rect)); |
1713 EXPECT_TRUE(damage_rect.Contains(root->GetRenderSurface()->content_rect())); | 1694 EXPECT_TRUE(damage_rect.Contains(root->GetRenderSurface()->content_rect())); |
1714 EXPECT_TRUE(damage_rect.Contains( | 1695 EXPECT_TRUE(damage_rect.Contains( |
1715 gfx::ToEnclosingRect(child1->GetRenderSurface()->DrawableContentRect()))); | 1696 gfx::ToEnclosingRect(child1->GetRenderSurface()->DrawableContentRect()))); |
1716 EXPECT_EQ(damage_rect, root->GetRenderSurface()->GetDamageRect()); | 1697 EXPECT_EQ(damage_rect, root->GetRenderSurface()->GetDamageRect()); |
1717 } | 1698 } |
1718 | 1699 |
1719 } // namespace | 1700 } // namespace |
1720 } // namespace cc | 1701 } // namespace cc |
OLD | NEW |