| OLD | NEW |
| 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 <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 active_layer_->AddTiling(2.3f); | 113 active_layer_->AddTiling(2.3f); |
| 114 active_layer_->AddTiling(1.0f); | 114 active_layer_->AddTiling(1.0f); |
| 115 active_layer_->AddTiling(0.5f); | 115 active_layer_->AddTiling(0.5f); |
| 116 for (size_t i = 0; i < active_layer_->tilings()->num_tilings(); ++i) | 116 for (size_t i = 0; i < active_layer_->tilings()->num_tilings(); ++i) |
| 117 active_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); | 117 active_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); |
| 118 pending_layer_->set_invalidation(invalidation); | 118 pending_layer_->set_invalidation(invalidation); |
| 119 for (size_t i = 0; i < pending_layer_->tilings()->num_tilings(); ++i) | 119 for (size_t i = 0; i < pending_layer_->tilings()->num_tilings(); ++i) |
| 120 pending_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); | 120 pending_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); |
| 121 } | 121 } |
| 122 | 122 |
| 123 void SetupPendingTree( | 123 void SetupPendingTree(scoped_refptr<PicturePileImpl> pile) { |
| 124 scoped_refptr<PicturePileImpl> pile) { | |
| 125 host_impl_.CreatePendingTree(); | 124 host_impl_.CreatePendingTree(); |
| 126 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); | 125 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); |
| 127 // Clear recycled tree. | 126 // Clear recycled tree. |
| 128 pending_tree->DetachLayerTree(); | 127 pending_tree->DetachLayerTree(); |
| 129 | 128 |
| 130 scoped_ptr<FakePictureLayerImpl> pending_layer = | 129 scoped_ptr<FakePictureLayerImpl> pending_layer = |
| 131 FakePictureLayerImpl::CreateWithPile(pending_tree, id_, pile); | 130 FakePictureLayerImpl::CreateWithPile(pending_tree, id_, pile); |
| 132 pending_layer->SetDrawsContent(true); | 131 pending_layer->SetDrawsContent(true); |
| 133 pending_tree->SetRootLayer(pending_layer.PassAs<LayerImpl>()); | 132 pending_tree->SetRootLayer(pending_layer.PassAs<LayerImpl>()); |
| 134 | 133 |
| 135 pending_layer_ = static_cast<FakePictureLayerImpl*>( | 134 pending_layer_ = static_cast<FakePictureLayerImpl*>( |
| 136 host_impl_.pending_tree()->LayerById(id_)); | 135 host_impl_.pending_tree()->LayerById(id_)); |
| 137 pending_layer_->DoPostCommitInitializationIfNeeded(); | 136 pending_layer_->DoPostCommitInitializationIfNeeded(); |
| 138 } | 137 } |
| 139 | 138 |
| 140 static void VerifyAllTilesExistAndHavePile( | 139 static void VerifyAllTilesExistAndHavePile( |
| 141 const PictureLayerTiling* tiling, | 140 const PictureLayerTiling* tiling, |
| 142 PicturePileImpl* pile) { | 141 PicturePileImpl* pile) { |
| 143 for (PictureLayerTiling::CoverageIterator | 142 for (PictureLayerTiling::CoverageIterator iter( |
| 144 iter(tiling, tiling->contents_scale(), tiling->ContentRect()); | 143 tiling, tiling->contents_scale(), tiling->TilingRect()); |
| 145 iter; | 144 iter; |
| 146 ++iter) { | 145 ++iter) { |
| 147 EXPECT_TRUE(*iter); | 146 EXPECT_TRUE(*iter); |
| 148 EXPECT_EQ(pile, iter->picture_pile()); | 147 EXPECT_EQ(pile, iter->picture_pile()); |
| 149 } | 148 } |
| 150 } | 149 } |
| 151 | 150 |
| 152 void SetContentsScaleOnBothLayers(float contents_scale, | 151 void SetContentsScaleOnBothLayers(float contents_scale, |
| 153 float device_scale_factor, | 152 float device_scale_factor, |
| 154 float page_scale_factor, | 153 float page_scale_factor, |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 Region invalidation(layer_invalidation); | 447 Region invalidation(layer_invalidation); |
| 449 AddDefaultTilingsWithInvalidation(invalidation); | 448 AddDefaultTilingsWithInvalidation(invalidation); |
| 450 | 449 |
| 451 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 450 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
| 452 EXPECT_GT(tilings->num_tilings(), 0u); | 451 EXPECT_GT(tilings->num_tilings(), 0u); |
| 453 for (size_t i = 0; i < tilings->num_tilings(); ++i) { | 452 for (size_t i = 0; i < tilings->num_tilings(); ++i) { |
| 454 const PictureLayerTiling* tiling = tilings->tiling_at(i); | 453 const PictureLayerTiling* tiling = tilings->tiling_at(i); |
| 455 gfx::Rect content_invalidation = gfx::ScaleToEnclosingRect( | 454 gfx::Rect content_invalidation = gfx::ScaleToEnclosingRect( |
| 456 layer_invalidation, | 455 layer_invalidation, |
| 457 tiling->contents_scale()); | 456 tiling->contents_scale()); |
| 458 for (PictureLayerTiling::CoverageIterator | 457 for (PictureLayerTiling::CoverageIterator iter( |
| 459 iter(tiling, | 458 tiling, tiling->contents_scale(), tiling->TilingRect()); |
| 460 tiling->contents_scale(), | |
| 461 tiling->ContentRect()); | |
| 462 iter; | 459 iter; |
| 463 ++iter) { | 460 ++iter) { |
| 464 EXPECT_TRUE(*iter); | 461 EXPECT_TRUE(*iter); |
| 465 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); | 462 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); |
| 466 if (iter.geometry_rect().Intersects(content_invalidation)) | 463 if (iter.geometry_rect().Intersects(content_invalidation)) |
| 467 EXPECT_EQ(pending_pile, iter->picture_pile()); | 464 EXPECT_EQ(pending_pile, iter->picture_pile()); |
| 468 else | 465 else |
| 469 EXPECT_EQ(active_pile, iter->picture_pile()); | 466 EXPECT_EQ(active_pile, iter->picture_pile()); |
| 470 } | 467 } |
| 471 } | 468 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 Region invalidation; | 508 Region invalidation; |
| 512 AddDefaultTilingsWithInvalidation(invalidation); | 509 AddDefaultTilingsWithInvalidation(invalidation); |
| 513 | 510 |
| 514 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 511 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
| 515 EXPECT_GT(tilings->num_tilings(), 0u); | 512 EXPECT_GT(tilings->num_tilings(), 0u); |
| 516 for (size_t i = 0; i < tilings->num_tilings(); ++i) { | 513 for (size_t i = 0; i < tilings->num_tilings(); ++i) { |
| 517 const PictureLayerTiling* tiling = tilings->tiling_at(i); | 514 const PictureLayerTiling* tiling = tilings->tiling_at(i); |
| 518 gfx::Rect active_content_bounds = gfx::ScaleToEnclosingRect( | 515 gfx::Rect active_content_bounds = gfx::ScaleToEnclosingRect( |
| 519 gfx::Rect(active_layer_bounds), | 516 gfx::Rect(active_layer_bounds), |
| 520 tiling->contents_scale()); | 517 tiling->contents_scale()); |
| 521 for (PictureLayerTiling::CoverageIterator | 518 for (PictureLayerTiling::CoverageIterator iter( |
| 522 iter(tiling, | 519 tiling, tiling->contents_scale(), tiling->TilingRect()); |
| 523 tiling->contents_scale(), | |
| 524 tiling->ContentRect()); | |
| 525 iter; | 520 iter; |
| 526 ++iter) { | 521 ++iter) { |
| 527 EXPECT_TRUE(*iter); | 522 EXPECT_TRUE(*iter); |
| 528 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); | 523 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); |
| 529 std::vector<Tile*> active_tiles = | 524 std::vector<Tile*> active_tiles = |
| 530 active_layer_->tilings()->tiling_at(i)->AllTilesForTesting(); | 525 active_layer_->tilings()->tiling_at(i)->AllTilesForTesting(); |
| 531 std::vector<Tile*> pending_tiles = tiling->AllTilesForTesting(); | 526 std::vector<Tile*> pending_tiles = tiling->AllTilesForTesting(); |
| 532 if (iter.geometry_rect().right() >= active_content_bounds.width() || | 527 if (iter.geometry_rect().right() >= active_content_bounds.width() || |
| 533 iter.geometry_rect().bottom() >= active_content_bounds.height() || | 528 iter.geometry_rect().bottom() >= active_content_bounds.height() || |
| 534 active_tiles[0]->content_rect().size() != | 529 active_tiles[0]->content_rect().size() != |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 | 562 |
| 568 SetupTrees(pending_pile, active_pile); | 563 SetupTrees(pending_pile, active_pile); |
| 569 Region invalidation; | 564 Region invalidation; |
| 570 AddDefaultTilingsWithInvalidation(invalidation); | 565 AddDefaultTilingsWithInvalidation(invalidation); |
| 571 | 566 |
| 572 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 567 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
| 573 EXPECT_GT(tilings->num_tilings(), 0u); | 568 EXPECT_GT(tilings->num_tilings(), 0u); |
| 574 for (size_t i = 0; i < tilings->num_tilings(); ++i) { | 569 for (size_t i = 0; i < tilings->num_tilings(); ++i) { |
| 575 const PictureLayerTiling* tiling = tilings->tiling_at(i); | 570 const PictureLayerTiling* tiling = tilings->tiling_at(i); |
| 576 | 571 |
| 577 for (PictureLayerTiling::CoverageIterator | 572 for (PictureLayerTiling::CoverageIterator iter( |
| 578 iter(tiling, | 573 tiling, tiling->contents_scale(), tiling->TilingRect()); |
| 579 tiling->contents_scale(), | |
| 580 tiling->ContentRect()); | |
| 581 iter; | 574 iter; |
| 582 ++iter) { | 575 ++iter) { |
| 583 EXPECT_FALSE(iter.full_tile_geometry_rect().IsEmpty()); | 576 EXPECT_FALSE(iter.full_tile_geometry_rect().IsEmpty()); |
| 584 // Ensure there is a recording for this tile. | 577 // Ensure there is a recording for this tile. |
| 585 bool in_pending = pending_pile->CanRaster(tiling->contents_scale(), | 578 bool in_pending = pending_pile->CanRaster(tiling->contents_scale(), |
| 586 iter.full_tile_geometry_rect()); | 579 iter.full_tile_geometry_rect()); |
| 587 bool in_active = active_pile->CanRaster(tiling->contents_scale(), | 580 bool in_active = active_pile->CanRaster(tiling->contents_scale(), |
| 588 iter.full_tile_geometry_rect()); | 581 iter.full_tile_geometry_rect()); |
| 589 | 582 |
| 590 if (in_pending && !in_active) | 583 if (in_pending && !in_active) |
| (...skipping 1572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2163 EXPECT_FLOAT_EQ(tile->contents_scale(), expected_scales[scale_index]); | 2156 EXPECT_FLOAT_EQ(tile->contents_scale(), expected_scales[scale_index]); |
| 2164 unique_tiles.insert(tile); | 2157 unique_tiles.insert(tile); |
| 2165 } | 2158 } |
| 2166 | 2159 |
| 2167 EXPECT_TRUE(reached_required); | 2160 EXPECT_TRUE(reached_required); |
| 2168 EXPECT_EQ(all_tiles_set.size(), unique_tiles.size()); | 2161 EXPECT_EQ(all_tiles_set.size(), unique_tiles.size()); |
| 2169 } | 2162 } |
| 2170 | 2163 |
| 2171 } // namespace | 2164 } // namespace |
| 2172 } // namespace cc | 2165 } // namespace cc |
| OLD | NEW |