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

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

Issue 2639723002: [NOT FOR REVIEW]
Patch Set: . Created 3 years, 11 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/tiles/tile_manager_unittest.cc ('k') | cc/trees/draw_property_utils.h » ('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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/layers/layer_impl.h" 10 #include "cc/layers/layer_impl.h"
11 #include "cc/output/filter_operation.h" 11 #include "cc/output/filter_operation.h"
12 #include "cc/output/filter_operations.h" 12 #include "cc/output/filter_operations.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->render_surface()); 40 ASSERT_TRUE(root->render_surface());
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->render_surface()) 45 if (layer->render_surface())
49 layer->render_surface()->damage_tracker()->DidDrawDamagedArea(); 46 layer->render_surface()->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]->render_surface(); 67 render_surface_layer_list[index]->render_surface();
75 target_surface->damage_tracker()->UpdateDamageTrackingState( 68 target_surface->damage_tracker()->UpdateDamageTrackingState(
(...skipping 1359 matching lines...) Expand 10 before | Expand all | Expand 10 after
1435 // The child layer covers (0, 0, i, i) of the viewport, 1428 // The child layer covers (0, 0, i, i) of the viewport,
1436 // but has a huge negative position. 1429 // but has a huge negative position.
1437 child->SetPosition(gfx::PointF()); 1430 child->SetPosition(gfx::PointF());
1438 child->SetBounds(gfx::Size(kBigNumber + i, kBigNumber + i)); 1431 child->SetBounds(gfx::Size(kBigNumber + i, kBigNumber + i));
1439 child->test_properties()->transform = transform; 1432 child->test_properties()->transform = transform;
1440 root->layer_tree_impl()->property_trees()->needs_rebuild = true; 1433 root->layer_tree_impl()->property_trees()->needs_rebuild = true;
1441 float device_scale_factor = 1.f; 1434 float device_scale_factor = 1.f;
1442 // Visible rects computed from combining clips in target space and root 1435 // Visible rects computed from combining clips in target space and root
1443 // space don't match because of the loss in floating point accuracy. So, we 1436 // space don't match because of the loss in floating point accuracy. So, we
1444 // skip verify_clip_tree_calculations. 1437 // skip verify_clip_tree_calculations.
1445 bool skip_verify_visible_rect_calculations = true; 1438 EmulateDrawingOneFrame(root, device_scale_factor);
1446 EmulateDrawingOneFrame(root, device_scale_factor,
1447 skip_verify_visible_rect_calculations);
1448 1439
1449 // The expected damage should cover the visible part of the child layer, 1440 // The expected damage should cover the visible part of the child layer,
1450 // which is (0, 0, i, i) in the viewport. 1441 // which is (0, 0, i, i) in the viewport.
1451 gfx::Rect root_damage_rect; 1442 gfx::Rect root_damage_rect;
1452 EXPECT_TRUE(root->render_surface()->damage_tracker()->GetDamageRectIfValid( 1443 EXPECT_TRUE(root->render_surface()->damage_tracker()->GetDamageRectIfValid(
1453 &root_damage_rect)); 1444 &root_damage_rect));
1454 gfx::Rect damage_we_care_about = gfx::Rect(i, i); 1445 gfx::Rect damage_we_care_about = gfx::Rect(i, i);
1455 EXPECT_LE(damage_we_care_about.right(), root_damage_rect.right()); 1446 EXPECT_LE(damage_we_care_about.right(), root_damage_rect.right());
1456 EXPECT_LE(damage_we_care_about.bottom(), root_damage_rect.bottom()); 1447 EXPECT_LE(damage_we_care_about.bottom(), root_damage_rect.bottom());
1457 } 1448 }
1458 } 1449 }
1459 1450
1460 TEST_F(DamageTrackerTest, DamageRectTooBig) { 1451 TEST_F(DamageTrackerTest, DamageRectTooBig) {
1461 LayerImpl* root = CreateAndSetUpTestTreeWithOneSurface(2); 1452 LayerImpl* root = CreateAndSetUpTestTreeWithOneSurface(2);
1462 LayerImpl* child1 = root->test_properties()->children[0]; 1453 LayerImpl* child1 = root->test_properties()->children[0];
1463 LayerImpl* child2 = root->test_properties()->children[1]; 1454 LayerImpl* child2 = root->test_properties()->children[1];
1464 1455
1465 // Really far left. 1456 // Really far left.
1466 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0)); 1457 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0));
1467 child1->SetBounds(gfx::Size(1, 1)); 1458 child1->SetBounds(gfx::Size(1, 1));
1468 1459
1469 // Really far right. 1460 // Really far right.
1470 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0)); 1461 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0));
1471 child2->SetBounds(gfx::Size(1, 1)); 1462 child2->SetBounds(gfx::Size(1, 1));
1472 1463
1473 root->layer_tree_impl()->property_trees()->needs_rebuild = true; 1464 root->layer_tree_impl()->property_trees()->needs_rebuild = true;
1474 float device_scale_factor = 1.f; 1465 float device_scale_factor = 1.f;
1475 bool skip_verify_visible_rect_calculations = true; 1466 EmulateDrawingOneFrame(root, device_scale_factor);
1476 EmulateDrawingOneFrame(root, device_scale_factor,
1477 skip_verify_visible_rect_calculations);
1478 1467
1479 // The expected damage would be too large to store in a gfx::Rect, so we 1468 // The expected damage would be too large to store in a gfx::Rect, so we
1480 // should damage everything (ie, we don't have a valid rect). 1469 // should damage everything (ie, we don't have a valid rect).
1481 gfx::Rect damage_rect; 1470 gfx::Rect damage_rect;
1482 EXPECT_FALSE(root->render_surface()->damage_tracker()->GetDamageRectIfValid( 1471 EXPECT_FALSE(root->render_surface()->damage_tracker()->GetDamageRectIfValid(
1483 &damage_rect)); 1472 &damage_rect));
1484 EXPECT_EQ(root->render_surface()->content_rect(), 1473 EXPECT_EQ(root->render_surface()->content_rect(),
1485 root->render_surface()->GetDamageRect()); 1474 root->render_surface()->GetDamageRect());
1486 } 1475 }
1487 1476
(...skipping 10 matching lines...) Expand all
1498 // Really far left. 1487 // Really far left.
1499 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0)); 1488 child1->SetPosition(gfx::PointF(std::numeric_limits<int>::min() + 100, 0));
1500 child1->SetBounds(gfx::Size(1, 1)); 1489 child1->SetBounds(gfx::Size(1, 1));
1501 1490
1502 // Really far right. 1491 // Really far right.
1503 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0)); 1492 child2->SetPosition(gfx::PointF(std::numeric_limits<int>::max() - 100, 0));
1504 child2->SetBounds(gfx::Size(1, 1)); 1493 child2->SetBounds(gfx::Size(1, 1));
1505 1494
1506 root->layer_tree_impl()->property_trees()->needs_rebuild = true; 1495 root->layer_tree_impl()->property_trees()->needs_rebuild = true;
1507 float device_scale_factor = 1.f; 1496 float device_scale_factor = 1.f;
1508 bool skip_verify_visible_rect_calculations = true; 1497 EmulateDrawingOneFrame(root, device_scale_factor);
1509 EmulateDrawingOneFrame(root, device_scale_factor,
1510 skip_verify_visible_rect_calculations);
1511 1498
1512 // The expected damage would be too large to store in a gfx::Rect, so we 1499 // The expected damage would be too large to store in a gfx::Rect, so we
1513 // should damage everything (ie, we don't have a valid rect). 1500 // should damage everything (ie, we don't have a valid rect).
1514 gfx::Rect damage_rect; 1501 gfx::Rect damage_rect;
1515 EXPECT_FALSE(root->render_surface()->damage_tracker()->GetDamageRectIfValid( 1502 EXPECT_FALSE(root->render_surface()->damage_tracker()->GetDamageRectIfValid(
1516 &damage_rect)); 1503 &damage_rect));
1517 EXPECT_EQ(root->render_surface()->content_rect(), 1504 EXPECT_EQ(root->render_surface()->content_rect(),
1518 root->render_surface()->GetDamageRect()); 1505 root->render_surface()->GetDamageRect());
1519 } 1506 }
1520 1507
(...skipping 10 matching lines...) Expand all
1531 grandchild1->SetDrawsContent(true); 1518 grandchild1->SetDrawsContent(true);
1532 1519
1533 // Really far right. 1520 // Really far right.
1534 grandchild2->SetPosition( 1521 grandchild2->SetPosition(
1535 gfx::PointF(std::numeric_limits<int>::max() - 500, 0)); 1522 gfx::PointF(std::numeric_limits<int>::max() - 500, 0));
1536 grandchild2->SetBounds(gfx::Size(1, 1)); 1523 grandchild2->SetBounds(gfx::Size(1, 1));
1537 grandchild2->SetDrawsContent(true); 1524 grandchild2->SetDrawsContent(true);
1538 1525
1539 root->layer_tree_impl()->property_trees()->needs_rebuild = true; 1526 root->layer_tree_impl()->property_trees()->needs_rebuild = true;
1540 float device_scale_factor = 1.f; 1527 float device_scale_factor = 1.f;
1541 bool skip_verify_visible_rect_calculations = true;
1542 LayerImplList render_surface_layer_list; 1528 LayerImplList render_surface_layer_list;
1543 ExecuteCalculateDrawProperties(root, device_scale_factor, 1529 ExecuteCalculateDrawProperties(root, device_scale_factor,
1544 skip_verify_visible_rect_calculations,
1545 &render_surface_layer_list); 1530 &render_surface_layer_list);
1546 1531
1547 auto* surface = child1->render_surface(); 1532 auto* surface = child1->render_surface();
1548 surface->damage_tracker()->UpdateDamageTrackingState( 1533 surface->damage_tracker()->UpdateDamageTrackingState(
1549 surface->layer_list(), surface, false, surface->content_rect(), 1534 surface->layer_list(), surface, false, surface->content_rect(),
1550 surface->MaskLayer(), surface->Filters()); 1535 surface->MaskLayer(), surface->Filters());
1551 surface = root->render_surface(); 1536 surface = root->render_surface();
1552 surface->damage_tracker()->UpdateDamageTrackingState( 1537 surface->damage_tracker()->UpdateDamageTrackingState(
1553 surface->layer_list(), surface, false, surface->content_rect(), 1538 surface->layer_list(), surface, false, surface->content_rect(),
1554 surface->MaskLayer(), surface->Filters()); 1539 surface->MaskLayer(), surface->Filters());
(...skipping 17 matching lines...) Expand all
1572 1557
1573 // Add new damage, without changing properties, which goes down a different 1558 // Add new damage, without changing properties, which goes down a different
1574 // path in the damage tracker. 1559 // path in the damage tracker.
1575 root->layer_tree_impl()->ResetAllChangeTracking(); 1560 root->layer_tree_impl()->ResetAllChangeTracking();
1576 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds())); 1561 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds()));
1577 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds())); 1562 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds()));
1578 1563
1579 // Recompute all damage / properties. 1564 // Recompute all damage / properties.
1580 render_surface_layer_list.clear(); 1565 render_surface_layer_list.clear();
1581 ExecuteCalculateDrawProperties(root, device_scale_factor, 1566 ExecuteCalculateDrawProperties(root, device_scale_factor,
1582 skip_verify_visible_rect_calculations,
1583 &render_surface_layer_list); 1567 &render_surface_layer_list);
1584 surface = child1->render_surface(); 1568 surface = child1->render_surface();
1585 surface->damage_tracker()->UpdateDamageTrackingState( 1569 surface->damage_tracker()->UpdateDamageTrackingState(
1586 surface->layer_list(), surface, false, surface->content_rect(), 1570 surface->layer_list(), surface, false, surface->content_rect(),
1587 surface->MaskLayer(), surface->Filters()); 1571 surface->MaskLayer(), surface->Filters());
1588 surface = root->render_surface(); 1572 surface = root->render_surface();
1589 surface->damage_tracker()->UpdateDamageTrackingState( 1573 surface->damage_tracker()->UpdateDamageTrackingState(
1590 surface->layer_list(), surface, false, surface->content_rect(), 1574 surface->layer_list(), surface, false, surface->content_rect(),
1591 surface->MaskLayer(), surface->Filters()); 1575 surface->MaskLayer(), surface->Filters());
1592 1576
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1626 grandchild1->SetDrawsContent(true); 1610 grandchild1->SetDrawsContent(true);
1627 1611
1628 // Really far right. 1612 // Really far right.
1629 grandchild2->SetPosition( 1613 grandchild2->SetPosition(
1630 gfx::PointF(std::numeric_limits<int>::max() - 500, 0)); 1614 gfx::PointF(std::numeric_limits<int>::max() - 500, 0));
1631 grandchild2->SetBounds(gfx::Size(1, 1)); 1615 grandchild2->SetBounds(gfx::Size(1, 1));
1632 grandchild2->SetDrawsContent(true); 1616 grandchild2->SetDrawsContent(true);
1633 1617
1634 root->layer_tree_impl()->property_trees()->needs_rebuild = true; 1618 root->layer_tree_impl()->property_trees()->needs_rebuild = true;
1635 float device_scale_factor = 1.f; 1619 float device_scale_factor = 1.f;
1636 bool skip_verify_visible_rect_calculations = true;
1637 LayerImplList render_surface_layer_list; 1620 LayerImplList render_surface_layer_list;
1638 ExecuteCalculateDrawProperties(root, device_scale_factor, 1621 ExecuteCalculateDrawProperties(root, device_scale_factor,
1639 skip_verify_visible_rect_calculations,
1640 &render_surface_layer_list); 1622 &render_surface_layer_list);
1641 1623
1642 auto* surface = child1->render_surface(); 1624 auto* surface = child1->render_surface();
1643 surface->damage_tracker()->UpdateDamageTrackingState( 1625 surface->damage_tracker()->UpdateDamageTrackingState(
1644 surface->layer_list(), surface, false, surface->content_rect(), 1626 surface->layer_list(), surface, false, surface->content_rect(),
1645 surface->MaskLayer(), surface->Filters()); 1627 surface->MaskLayer(), surface->Filters());
1646 surface = root->render_surface(); 1628 surface = root->render_surface();
1647 surface->damage_tracker()->UpdateDamageTrackingState( 1629 surface->damage_tracker()->UpdateDamageTrackingState(
1648 surface->layer_list(), surface, false, surface->content_rect(), 1630 surface->layer_list(), surface, false, surface->content_rect(),
1649 surface->MaskLayer(), surface->Filters()); 1631 surface->MaskLayer(), surface->Filters());
(...skipping 17 matching lines...) Expand all
1667 1649
1668 // Add new damage, without changing properties, which goes down a different 1650 // Add new damage, without changing properties, which goes down a different
1669 // path in the damage tracker. 1651 // path in the damage tracker.
1670 root->layer_tree_impl()->ResetAllChangeTracking(); 1652 root->layer_tree_impl()->ResetAllChangeTracking();
1671 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds())); 1653 grandchild1->AddDamageRect(gfx::Rect(grandchild1->bounds()));
1672 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds())); 1654 grandchild2->AddDamageRect(gfx::Rect(grandchild1->bounds()));
1673 1655
1674 // Recompute all damage / properties. 1656 // Recompute all damage / properties.
1675 render_surface_layer_list.clear(); 1657 render_surface_layer_list.clear();
1676 ExecuteCalculateDrawProperties(root, device_scale_factor, 1658 ExecuteCalculateDrawProperties(root, device_scale_factor,
1677 skip_verify_visible_rect_calculations,
1678 &render_surface_layer_list); 1659 &render_surface_layer_list);
1679 surface = child1->render_surface(); 1660 surface = child1->render_surface();
1680 surface->damage_tracker()->UpdateDamageTrackingState( 1661 surface->damage_tracker()->UpdateDamageTrackingState(
1681 surface->layer_list(), surface, false, surface->content_rect(), 1662 surface->layer_list(), surface, false, surface->content_rect(),
1682 surface->MaskLayer(), surface->Filters()); 1663 surface->MaskLayer(), surface->Filters());
1683 surface = root->render_surface(); 1664 surface = root->render_surface();
1684 surface->damage_tracker()->UpdateDamageTrackingState( 1665 surface->damage_tracker()->UpdateDamageTrackingState(
1685 surface->layer_list(), surface, false, surface->content_rect(), 1666 surface->layer_list(), surface, false, surface->content_rect(),
1686 surface->MaskLayer(), surface->Filters()); 1667 surface->MaskLayer(), surface->Filters());
1687 1668
1688 // Child1 should still not have a valid rect, since the union of the damage of 1669 // Child1 should still not have a valid rect, since the union of the damage of
1689 // its children is not representable by a single rect. 1670 // its children is not representable by a single rect.
1690 EXPECT_FALSE(child1->render_surface()->damage_tracker()->GetDamageRectIfValid( 1671 EXPECT_FALSE(child1->render_surface()->damage_tracker()->GetDamageRectIfValid(
1691 &damage_rect)); 1672 &damage_rect));
1692 EXPECT_EQ(child1->render_surface()->content_rect(), 1673 EXPECT_EQ(child1->render_surface()->content_rect(),
1693 child1->render_surface()->GetDamageRect()); 1674 child1->render_surface()->GetDamageRect());
1694 1675
1695 // Root should have valid damage and contain both its content rect and the 1676 // Root should have valid damage and contain both its content rect and the
1696 // drawable content rect of child1. 1677 // drawable content rect of child1.
1697 ASSERT_TRUE(root->render_surface()->damage_tracker()->GetDamageRectIfValid( 1678 ASSERT_TRUE(root->render_surface()->damage_tracker()->GetDamageRectIfValid(
1698 &damage_rect)); 1679 &damage_rect));
1699 EXPECT_TRUE(damage_rect.Contains(root->render_surface()->content_rect())); 1680 EXPECT_TRUE(damage_rect.Contains(root->render_surface()->content_rect()));
1700 EXPECT_TRUE(damage_rect.Contains( 1681 EXPECT_TRUE(damage_rect.Contains(
1701 gfx::ToEnclosingRect(child1->render_surface()->DrawableContentRect()))); 1682 gfx::ToEnclosingRect(child1->render_surface()->DrawableContentRect())));
1702 EXPECT_EQ(damage_rect, root->render_surface()->GetDamageRect()); 1683 EXPECT_EQ(damage_rect, root->render_surface()->GetDamageRect());
1703 } 1684 }
1704 1685
1705 } // namespace 1686 } // namespace
1706 } // namespace cc 1687 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/tile_manager_unittest.cc ('k') | cc/trees/draw_property_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698