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

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

Issue 2655233006: cc : Clean up cc clip tree (Closed)
Patch Set: rebase Created 3 years, 9 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/trees/clip_node.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/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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « cc/trees/clip_node.cc ('k') | cc/trees/draw_property_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698