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

Side by Side Diff: cc/layers/picture_layer_impl_unittest.cc

Issue 196023015: Revert of cc: Replace recorded region with direct map lookup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/layers/picture_layer_unittest.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/layers/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "cc/layers/append_quads_data.h" 9 #include "cc/layers/append_quads_data.h"
10 #include "cc/layers/picture_layer.h" 10 #include "cc/layers/picture_layer.h"
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 const PictureLayerTiling* tiling = tilings->tiling_at(i); 475 const PictureLayerTiling* tiling = tilings->tiling_at(i);
476 476
477 for (PictureLayerTiling::CoverageIterator 477 for (PictureLayerTiling::CoverageIterator
478 iter(tiling, 478 iter(tiling,
479 tiling->contents_scale(), 479 tiling->contents_scale(),
480 tiling->ContentRect()); 480 tiling->ContentRect());
481 iter; 481 iter;
482 ++iter) { 482 ++iter) {
483 EXPECT_FALSE(iter.full_tile_geometry_rect().IsEmpty()); 483 EXPECT_FALSE(iter.full_tile_geometry_rect().IsEmpty());
484 // Ensure there is a recording for this tile. 484 // Ensure there is a recording for this tile.
485 bool in_pending = pending_pile->CanRaster(tiling->contents_scale(), 485 gfx::Rect layer_rect = gfx::ScaleToEnclosingRect(
486 iter.full_tile_geometry_rect()); 486 iter.full_tile_geometry_rect(), 1.f / tiling->contents_scale());
487 bool in_active = active_pile->CanRaster(tiling->contents_scale(), 487 layer_rect.Intersect(gfx::Rect(layer_bounds));
488 iter.full_tile_geometry_rect()); 488
489 bool in_pending = pending_pile->recorded_region().Contains(layer_rect);
490 bool in_active = active_pile->recorded_region().Contains(layer_rect);
489 491
490 if (in_pending && !in_active) 492 if (in_pending && !in_active)
491 EXPECT_EQ(pending_pile, iter->picture_pile()); 493 EXPECT_EQ(pending_pile, iter->picture_pile());
492 else if (in_active) 494 else if (in_active)
493 EXPECT_EQ(active_pile, iter->picture_pile()); 495 EXPECT_EQ(active_pile, iter->picture_pile());
494 else 496 else
495 EXPECT_FALSE(*iter); 497 EXPECT_FALSE(*iter);
496 } 498 }
497 } 499 }
498 } 500 }
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 } 620 }
619 621
620 TEST_F(PictureLayerImplTest, CreateTilingsEvenIfTwinHasNone) { 622 TEST_F(PictureLayerImplTest, CreateTilingsEvenIfTwinHasNone) {
621 // This test makes sure that if a layer can have tilings, then a commit makes 623 // This test makes sure that if a layer can have tilings, then a commit makes
622 // it not able to have tilings (empty size), and then a future commit that 624 // it not able to have tilings (empty size), and then a future commit that
623 // makes it valid again should be able to create tilings. 625 // makes it valid again should be able to create tilings.
624 gfx::Size tile_size(400, 400); 626 gfx::Size tile_size(400, 400);
625 gfx::Size layer_bounds(1300, 1900); 627 gfx::Size layer_bounds(1300, 1900);
626 628
627 scoped_refptr<FakePicturePileImpl> empty_pile = 629 scoped_refptr<FakePicturePileImpl> empty_pile =
628 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); 630 FakePicturePileImpl::CreateFilledPile(tile_size, gfx::Size(1000, 0));
629 scoped_refptr<FakePicturePileImpl> valid_pile = 631 scoped_refptr<FakePicturePileImpl> valid_pile =
630 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 632 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
631 633
632 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 634 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
633 EXPECT_LT(low_res_factor, 1.f); 635 EXPECT_LT(low_res_factor, 1.f);
634 636
635 float high_res_scale = 1.3f; 637 float high_res_scale = 1.3f;
636 float low_res_scale = high_res_scale * low_res_factor; 638 float low_res_scale = high_res_scale * low_res_factor;
637 float device_scale = 1.7f; 639 float device_scale = 1.7f;
638 float page_scale = 3.2f; 640 float page_scale = 3.2f;
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
1305 pending_layer_->MarkVisibleResourcesAsRequired(); 1307 pending_layer_->MarkVisibleResourcesAsRequired();
1306 AssertNoTilesRequired(pending_layer_->HighResTiling()); 1308 AssertNoTilesRequired(pending_layer_->HighResTiling());
1307 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1309 AssertNoTilesRequired(pending_layer_->LowResTiling());
1308 } 1310 }
1309 1311
1310 TEST_F(PictureLayerImplTest, NothingRequiredIfActiveMissingTiles) { 1312 TEST_F(PictureLayerImplTest, NothingRequiredIfActiveMissingTiles) {
1311 gfx::Size layer_bounds(400, 400); 1313 gfx::Size layer_bounds(400, 400);
1312 gfx::Size tile_size(100, 100); 1314 gfx::Size tile_size(100, 100);
1313 scoped_refptr<FakePicturePileImpl> pending_pile = 1315 scoped_refptr<FakePicturePileImpl> pending_pile =
1314 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1316 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1315 // This pile will create tilings, but has no recordings so will not create any 1317 // An arbitrary bogus outside the layer recording. Enough for the layer to
1316 // tiles. This is attempting to simulate scrolling past the end of recorded 1318 // think it can create tiles, but not in bounds so all tiles are null.
1317 // content on the active layer, where the recordings are so far away that 1319 Region active_recorded_region;
1318 // no tiles are created. 1320 active_recorded_region.Union(gfx::Rect(1000, 1000, 1, 1));
1319 scoped_refptr<FakePicturePileImpl> active_pile = 1321 scoped_refptr<FakePicturePileImpl> active_pile =
1320 FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings( 1322 FakePicturePileImpl::CreatePileWithRecordedRegion(
1321 tile_size, layer_bounds); 1323 tile_size, layer_bounds, active_recorded_region);
1322 SetupTrees(pending_pile, active_pile); 1324 SetupTrees(pending_pile, active_pile);
1323 pending_layer_->set_fixed_tile_size(tile_size); 1325 pending_layer_->set_fixed_tile_size(tile_size);
1324 active_layer_->set_fixed_tile_size(tile_size); 1326 active_layer_->set_fixed_tile_size(tile_size);
1325 1327
1326 CreateHighLowResAndSetAllTilesVisible(); 1328 CreateHighLowResAndSetAllTilesVisible();
1327 1329
1328 // Active layer has tilings, but no tiles due to missing recordings. 1330 // Active layer has tilings, but no tiles due to missing recordings.
1329 EXPECT_TRUE(active_layer_->CanHaveTilings()); 1331 EXPECT_TRUE(active_layer_->CanHaveTilings());
1330 EXPECT_EQ(active_layer_->tilings()->num_tilings(), 2u); 1332 EXPECT_EQ(active_layer_->tilings()->num_tilings(), 2u);
1331 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); 1333 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u);
1332 1334
1333 // Since the active layer has no tiles at all, the pending layer doesn't 1335 // Since the active layer has no tiles at all, the pending layer doesn't
1334 // need content in order to activate. 1336 // need content in order to activate. This is attempting to simulate
1337 // scrolling past the end of recorded content on the active layer.
1335 pending_layer_->MarkVisibleResourcesAsRequired(); 1338 pending_layer_->MarkVisibleResourcesAsRequired();
1336 AssertNoTilesRequired(pending_layer_->HighResTiling()); 1339 AssertNoTilesRequired(pending_layer_->HighResTiling());
1337 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1340 AssertNoTilesRequired(pending_layer_->LowResTiling());
1338 } 1341 }
1339 1342
1340 TEST_F(PictureLayerImplTest, HighResRequiredIfActiveCantHaveTiles) { 1343 TEST_F(PictureLayerImplTest, HighResRequiredIfActiveCantHaveTiles) {
1341 gfx::Size layer_bounds(400, 400); 1344 gfx::Size layer_bounds(400, 400);
1342 gfx::Size tile_size(100, 100); 1345 gfx::Size tile_size(100, 100);
1343 scoped_refptr<FakePicturePileImpl> pending_pile = 1346 scoped_refptr<FakePicturePileImpl> pending_pile =
1344 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1347 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 TestContextProvider::Create(), NULL)); 1547 TestContextProvider::Create(), NULL));
1545 1548
1546 // These will crash PictureLayerImpl if this is not true. 1549 // These will crash PictureLayerImpl if this is not true.
1547 ASSERT_TRUE(host_impl_.pending_tree()->needs_update_draw_properties()); 1550 ASSERT_TRUE(host_impl_.pending_tree()->needs_update_draw_properties());
1548 ASSERT_TRUE(host_impl_.active_tree()->needs_update_draw_properties()); 1551 ASSERT_TRUE(host_impl_.active_tree()->needs_update_draw_properties());
1549 host_impl_.active_tree()->UpdateDrawProperties(); 1552 host_impl_.active_tree()->UpdateDrawProperties();
1550 } 1553 }
1551 1554
1552 } // namespace 1555 } // namespace
1553 } // namespace cc 1556 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/layers/picture_layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698