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 <set> | 7 #include <set> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "cc/layers/append_quads_data.h" | 10 #include "cc/layers/append_quads_data.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
68 } | 68 } |
69 | 69 |
70 void SetupDefaultTrees(const gfx::Size& layer_bounds) { | 70 void SetupDefaultTrees(const gfx::Size& layer_bounds) { |
71 gfx::Size tile_size(100, 100); | 71 gfx::Size tile_size(100, 100); |
72 | 72 |
73 scoped_refptr<FakePicturePileImpl> pending_pile = | 73 scoped_refptr<FakePicturePileImpl> pending_pile = |
74 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 74 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
75 scoped_refptr<FakePicturePileImpl> active_pile = | 75 scoped_refptr<FakePicturePileImpl> active_pile = |
76 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 76 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
77 | 77 |
78 SetupTrees(pending_pile, active_pile); | 78 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
79 } | 79 } |
80 | 80 |
81 void ActivateTree() { | 81 void ActivateTree() { |
82 host_impl_.ActivatePendingTree(); | 82 host_impl_.ActivatePendingTree(); |
83 CHECK(!host_impl_.pending_tree()); | 83 CHECK(!host_impl_.pending_tree()); |
84 pending_layer_ = NULL; | 84 pending_layer_ = NULL; |
85 active_layer_ = static_cast<FakePictureLayerImpl*>( | 85 active_layer_ = static_cast<FakePictureLayerImpl*>( |
86 host_impl_.active_tree()->LayerById(id_)); | 86 host_impl_.active_tree()->LayerById(id_)); |
87 } | 87 } |
88 | 88 |
89 void SetupDefaultTreesWithFixedTileSize(const gfx::Size& layer_bounds, | 89 void SetupDefaultTreesWithFixedTileSize(const gfx::Size& layer_bounds, |
90 const gfx::Size& tile_size) { | 90 const gfx::Size& tile_size) { |
91 SetupDefaultTrees(layer_bounds); | 91 SetupDefaultTrees(layer_bounds); |
92 pending_layer_->set_fixed_tile_size(tile_size); | 92 pending_layer_->set_fixed_tile_size(tile_size); |
93 active_layer_->set_fixed_tile_size(tile_size); | 93 active_layer_->set_fixed_tile_size(tile_size); |
94 } | 94 } |
95 | 95 |
96 void SetupTrees( | 96 void SetupTrees( |
97 scoped_refptr<PicturePileImpl> pending_pile, | 97 scoped_refptr<PicturePileImpl> pending_pile, |
98 scoped_refptr<PicturePileImpl> active_pile) { | 98 scoped_refptr<PicturePileImpl> active_pile, |
99 SetupPendingTree(active_pile); | 99 const gfx::Size& pending_layer_bounds, |
100 const gfx::Size& active_layer_bounds) { | |
101 SetupPendingTree(active_pile, active_layer_bounds); | |
100 ActivateTree(); | 102 ActivateTree(); |
101 SetupPendingTree(pending_pile); | 103 SetupPendingTree(pending_pile, pending_layer_bounds); |
102 } | 104 } |
103 | 105 |
104 void CreateHighLowResAndSetAllTilesVisible() { | 106 void CreateHighLowResAndSetAllTilesVisible() { |
105 // Active layer must get updated first so pending layer can share from it. | 107 // Active layer must get updated first so pending layer can share from it. |
106 active_layer_->CreateDefaultTilingsAndTiles(); | 108 active_layer_->CreateDefaultTilingsAndTiles(); |
107 active_layer_->SetAllTilesVisible(); | 109 active_layer_->SetAllTilesVisible(); |
108 pending_layer_->CreateDefaultTilingsAndTiles(); | 110 pending_layer_->CreateDefaultTilingsAndTiles(); |
109 pending_layer_->SetAllTilesVisible(); | 111 pending_layer_->SetAllTilesVisible(); |
110 } | 112 } |
111 | 113 |
112 void AddDefaultTilingsWithInvalidation(const Region& invalidation) { | 114 void AddDefaultTilingsWithInvalidation(const Region& invalidation) { |
113 active_layer_->AddTiling(2.3f); | 115 active_layer_->AddTiling(2.3f); |
114 active_layer_->AddTiling(1.0f); | 116 active_layer_->AddTiling(1.0f); |
115 active_layer_->AddTiling(0.5f); | 117 active_layer_->AddTiling(0.5f); |
116 for (size_t i = 0; i < active_layer_->tilings()->num_tilings(); ++i) | 118 for (size_t i = 0; i < active_layer_->tilings()->num_tilings(); ++i) |
117 active_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); | 119 active_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); |
118 pending_layer_->set_invalidation(invalidation); | 120 pending_layer_->set_invalidation(invalidation); |
119 for (size_t i = 0; i < pending_layer_->tilings()->num_tilings(); ++i) | 121 for (size_t i = 0; i < pending_layer_->tilings()->num_tilings(); ++i) |
120 pending_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); | 122 pending_layer_->tilings()->tiling_at(i)->CreateAllTilesForTesting(); |
121 } | 123 } |
122 | 124 |
123 void SetupPendingTree( | 125 void SetupPendingTree( |
124 scoped_refptr<PicturePileImpl> pile) { | 126 scoped_refptr<PicturePileImpl> pile, const gfx::Size& layer_bounds) { |
125 host_impl_.CreatePendingTree(); | 127 host_impl_.CreatePendingTree(); |
126 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); | 128 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); |
127 // Clear recycled tree. | 129 // Clear recycled tree. |
128 pending_tree->DetachLayerTree(); | 130 pending_tree->DetachLayerTree(); |
129 | 131 |
130 scoped_ptr<FakePictureLayerImpl> pending_layer = | 132 scoped_ptr<FakePictureLayerImpl> pending_layer = |
131 FakePictureLayerImpl::CreateWithPile(pending_tree, id_, pile); | 133 FakePictureLayerImpl::CreateWithPile( |
134 pending_tree, id_, pile, layer_bounds); | |
enne (OOO)
2014/04/11 20:19:51
Maybe don't add another parameter here, and just m
ernstm
2014/04/11 23:43:51
Done. Added a separate CreateWithPartialPile for p
| |
132 pending_layer->SetDrawsContent(true); | 135 pending_layer->SetDrawsContent(true); |
133 pending_tree->SetRootLayer(pending_layer.PassAs<LayerImpl>()); | 136 pending_tree->SetRootLayer(pending_layer.PassAs<LayerImpl>()); |
134 | 137 |
135 pending_layer_ = static_cast<FakePictureLayerImpl*>( | 138 pending_layer_ = static_cast<FakePictureLayerImpl*>( |
136 host_impl_.pending_tree()->LayerById(id_)); | 139 host_impl_.pending_tree()->LayerById(id_)); |
137 pending_layer_->DoPostCommitInitializationIfNeeded(); | 140 pending_layer_->DoPostCommitInitializationIfNeeded(); |
138 } | 141 } |
139 | 142 |
140 static void VerifyAllTilesExistAndHavePile( | 143 static void VerifyAllTilesExistAndHavePile( |
141 const PictureLayerTiling* tiling, | 144 const PictureLayerTiling* tiling, |
142 PicturePileImpl* pile) { | 145 PicturePileImpl* pile) { |
143 for (PictureLayerTiling::CoverageIterator | 146 for (PictureLayerTiling::CoverageIterator |
144 iter(tiling, tiling->contents_scale(), tiling->ContentRect()); | 147 iter(tiling, tiling->contents_scale(), tiling->TilingRect()); |
145 iter; | 148 iter; |
146 ++iter) { | 149 ++iter) { |
147 EXPECT_TRUE(*iter); | 150 EXPECT_TRUE(*iter); |
148 EXPECT_EQ(pile, iter->picture_pile()); | 151 EXPECT_EQ(pile, iter->picture_pile()); |
149 } | 152 } |
150 } | 153 } |
151 | 154 |
152 void SetContentsScaleOnBothLayers(float contents_scale, | 155 void SetContentsScaleOnBothLayers(float contents_scale, |
153 float device_scale_factor, | 156 float device_scale_factor, |
154 float page_scale_factor, | 157 float page_scale_factor, |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
198 ImplSidePaintingSettings settings; | 201 ImplSidePaintingSettings settings; |
199 gfx::Size layer_size( | 202 gfx::Size layer_size( |
200 settings.default_tile_size.width() * 7 / 2, | 203 settings.default_tile_size.width() * 7 / 2, |
201 settings.default_tile_size.height() * 7 / 2); | 204 settings.default_tile_size.height() * 7 / 2); |
202 | 205 |
203 scoped_refptr<FakePicturePileImpl> pending_pile = | 206 scoped_refptr<FakePicturePileImpl> pending_pile = |
204 FakePicturePileImpl::CreateFilledPile(layer_size, layer_size); | 207 FakePicturePileImpl::CreateFilledPile(layer_size, layer_size); |
205 scoped_refptr<FakePicturePileImpl> active_pile = | 208 scoped_refptr<FakePicturePileImpl> active_pile = |
206 FakePicturePileImpl::CreateFilledPile(layer_size, layer_size); | 209 FakePicturePileImpl::CreateFilledPile(layer_size, layer_size); |
207 | 210 |
208 SetupTrees(pending_pile, active_pile); | 211 SetupTrees(pending_pile, active_pile, layer_size, layer_size); |
209 | 212 |
210 float result_scale_x, result_scale_y; | 213 float result_scale_x, result_scale_y; |
211 gfx::Size result_bounds; | 214 gfx::Size result_bounds; |
212 active_layer_->CalculateContentsScale( | 215 active_layer_->CalculateContentsScale( |
213 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); | 216 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); |
214 | 217 |
215 // Add 1x1 rects at the centers of each tile, then re-record pile contents | 218 // Add 1x1 rects at the centers of each tile, then re-record pile contents |
216 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); | 219 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
217 std::vector<Tile*> tiles = | 220 std::vector<Tile*> tiles = |
218 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting(); | 221 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting(); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
268 | 271 |
269 TEST_F(PictureLayerImplTest, CloneNoInvalidation) { | 272 TEST_F(PictureLayerImplTest, CloneNoInvalidation) { |
270 gfx::Size tile_size(100, 100); | 273 gfx::Size tile_size(100, 100); |
271 gfx::Size layer_bounds(400, 400); | 274 gfx::Size layer_bounds(400, 400); |
272 | 275 |
273 scoped_refptr<FakePicturePileImpl> pending_pile = | 276 scoped_refptr<FakePicturePileImpl> pending_pile = |
274 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 277 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
275 scoped_refptr<FakePicturePileImpl> active_pile = | 278 scoped_refptr<FakePicturePileImpl> active_pile = |
276 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 279 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
277 | 280 |
278 SetupTrees(pending_pile, active_pile); | 281 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
279 | 282 |
280 Region invalidation; | 283 Region invalidation; |
281 AddDefaultTilingsWithInvalidation(invalidation); | 284 AddDefaultTilingsWithInvalidation(invalidation); |
282 | 285 |
283 EXPECT_EQ(pending_layer_->tilings()->num_tilings(), | 286 EXPECT_EQ(pending_layer_->tilings()->num_tilings(), |
284 active_layer_->tilings()->num_tilings()); | 287 active_layer_->tilings()->num_tilings()); |
285 | 288 |
286 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 289 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
287 EXPECT_GT(tilings->num_tilings(), 0u); | 290 EXPECT_GT(tilings->num_tilings(), 0u); |
288 for (size_t i = 0; i < tilings->num_tilings(); ++i) | 291 for (size_t i = 0; i < tilings->num_tilings(); ++i) |
289 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get()); | 292 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get()); |
290 } | 293 } |
291 | 294 |
292 TEST_F(PictureLayerImplTest, TileManagerRegisterUnregister) { | 295 TEST_F(PictureLayerImplTest, TileManagerRegisterUnregister) { |
293 gfx::Size tile_size(100, 100); | 296 gfx::Size tile_size(100, 100); |
294 gfx::Size layer_bounds(400, 400); | 297 gfx::Size layer_bounds(400, 400); |
295 | 298 |
296 scoped_refptr<FakePicturePileImpl> pending_pile = | 299 scoped_refptr<FakePicturePileImpl> pending_pile = |
297 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 300 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
298 scoped_refptr<FakePicturePileImpl> active_pile = | 301 scoped_refptr<FakePicturePileImpl> active_pile = |
299 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 302 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
300 | 303 |
301 SetupTrees(pending_pile, active_pile); | 304 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
302 | 305 |
303 std::vector<TileManager::PairedPictureLayer> paired_layers; | 306 std::vector<TileManager::PairedPictureLayer> paired_layers; |
304 host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers); | 307 host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers); |
305 EXPECT_EQ(0u, paired_layers.size()); | 308 EXPECT_EQ(0u, paired_layers.size()); |
306 | 309 |
307 // Update tile priorities will force the layer to register itself. | 310 // Update tile priorities will force the layer to register itself. |
308 float dummy_contents_scale_x; | 311 float dummy_contents_scale_x; |
309 float dummy_contents_scale_y; | 312 float dummy_contents_scale_y; |
310 gfx::Size dummy_content_bounds; | 313 gfx::Size dummy_content_bounds; |
311 active_layer_->CalculateContentsScale(1.f, | 314 active_layer_->CalculateContentsScale(1.f, |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
370 host_impl_.SetCurrentFrameTimeTicks(time_ticks); | 373 host_impl_.SetCurrentFrameTimeTicks(time_ticks); |
371 | 374 |
372 gfx::Size tile_size(100, 100); | 375 gfx::Size tile_size(100, 100); |
373 gfx::Size layer_bounds(400, 400); | 376 gfx::Size layer_bounds(400, 400); |
374 | 377 |
375 scoped_refptr<FakePicturePileImpl> pending_pile = | 378 scoped_refptr<FakePicturePileImpl> pending_pile = |
376 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 379 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
377 scoped_refptr<FakePicturePileImpl> active_pile = | 380 scoped_refptr<FakePicturePileImpl> active_pile = |
378 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 381 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
379 | 382 |
380 SetupTrees(pending_pile, active_pile); | 383 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
381 | 384 |
382 Region invalidation; | 385 Region invalidation; |
383 AddDefaultTilingsWithInvalidation(invalidation); | 386 AddDefaultTilingsWithInvalidation(invalidation); |
384 float dummy_contents_scale_x; | 387 float dummy_contents_scale_x; |
385 float dummy_contents_scale_y; | 388 float dummy_contents_scale_y; |
386 gfx::Size dummy_content_bounds; | 389 gfx::Size dummy_content_bounds; |
387 active_layer_->CalculateContentsScale(1.f, | 390 active_layer_->CalculateContentsScale(1.f, |
388 1.f, | 391 1.f, |
389 1.f, | 392 1.f, |
390 false, | 393 false, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
424 TEST_F(PictureLayerImplTest, ClonePartialInvalidation) { | 427 TEST_F(PictureLayerImplTest, ClonePartialInvalidation) { |
425 gfx::Size tile_size(100, 100); | 428 gfx::Size tile_size(100, 100); |
426 gfx::Size layer_bounds(400, 400); | 429 gfx::Size layer_bounds(400, 400); |
427 gfx::Rect layer_invalidation(150, 200, 30, 180); | 430 gfx::Rect layer_invalidation(150, 200, 30, 180); |
428 | 431 |
429 scoped_refptr<FakePicturePileImpl> pending_pile = | 432 scoped_refptr<FakePicturePileImpl> pending_pile = |
430 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 433 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
431 scoped_refptr<FakePicturePileImpl> active_pile = | 434 scoped_refptr<FakePicturePileImpl> active_pile = |
432 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 435 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
433 | 436 |
434 SetupTrees(pending_pile, active_pile); | 437 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
435 | 438 |
436 Region invalidation(layer_invalidation); | 439 Region invalidation(layer_invalidation); |
437 AddDefaultTilingsWithInvalidation(invalidation); | 440 AddDefaultTilingsWithInvalidation(invalidation); |
438 | 441 |
439 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 442 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
440 EXPECT_GT(tilings->num_tilings(), 0u); | 443 EXPECT_GT(tilings->num_tilings(), 0u); |
441 for (size_t i = 0; i < tilings->num_tilings(); ++i) { | 444 for (size_t i = 0; i < tilings->num_tilings(); ++i) { |
442 const PictureLayerTiling* tiling = tilings->tiling_at(i); | 445 const PictureLayerTiling* tiling = tilings->tiling_at(i); |
443 gfx::Rect content_invalidation = gfx::ScaleToEnclosingRect( | 446 gfx::Rect content_invalidation = gfx::ScaleToEnclosingRect( |
444 layer_invalidation, | 447 layer_invalidation, |
445 tiling->contents_scale()); | 448 tiling->contents_scale()); |
446 for (PictureLayerTiling::CoverageIterator | 449 for (PictureLayerTiling::CoverageIterator |
447 iter(tiling, | 450 iter(tiling, |
448 tiling->contents_scale(), | 451 tiling->contents_scale(), |
449 tiling->ContentRect()); | 452 tiling->TilingRect()); |
450 iter; | 453 iter; |
451 ++iter) { | 454 ++iter) { |
452 EXPECT_TRUE(*iter); | 455 EXPECT_TRUE(*iter); |
453 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); | 456 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); |
454 if (iter.geometry_rect().Intersects(content_invalidation)) | 457 if (iter.geometry_rect().Intersects(content_invalidation)) |
455 EXPECT_EQ(pending_pile, iter->picture_pile()); | 458 EXPECT_EQ(pending_pile, iter->picture_pile()); |
456 else | 459 else |
457 EXPECT_EQ(active_pile, iter->picture_pile()); | 460 EXPECT_EQ(active_pile, iter->picture_pile()); |
458 } | 461 } |
459 } | 462 } |
460 } | 463 } |
461 | 464 |
462 TEST_F(PictureLayerImplTest, CloneFullInvalidation) { | 465 TEST_F(PictureLayerImplTest, CloneFullInvalidation) { |
463 gfx::Size tile_size(90, 80); | 466 gfx::Size tile_size(90, 80); |
464 gfx::Size layer_bounds(300, 500); | 467 gfx::Size layer_bounds(300, 500); |
465 | 468 |
466 scoped_refptr<FakePicturePileImpl> pending_pile = | 469 scoped_refptr<FakePicturePileImpl> pending_pile = |
467 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 470 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
468 scoped_refptr<FakePicturePileImpl> active_pile = | 471 scoped_refptr<FakePicturePileImpl> active_pile = |
469 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 472 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
470 | 473 |
471 SetupTrees(pending_pile, active_pile); | 474 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
472 | 475 |
473 Region invalidation((gfx::Rect(layer_bounds))); | 476 Region invalidation((gfx::Rect(layer_bounds))); |
474 AddDefaultTilingsWithInvalidation(invalidation); | 477 AddDefaultTilingsWithInvalidation(invalidation); |
475 | 478 |
476 EXPECT_EQ(pending_layer_->tilings()->num_tilings(), | 479 EXPECT_EQ(pending_layer_->tilings()->num_tilings(), |
477 active_layer_->tilings()->num_tilings()); | 480 active_layer_->tilings()->num_tilings()); |
478 | 481 |
479 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 482 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
480 EXPECT_GT(tilings->num_tilings(), 0u); | 483 EXPECT_GT(tilings->num_tilings(), 0u); |
481 for (size_t i = 0; i < tilings->num_tilings(); ++i) | 484 for (size_t i = 0; i < tilings->num_tilings(); ++i) |
482 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), pending_pile.get()); | 485 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), pending_pile.get()); |
483 } | 486 } |
484 | 487 |
485 TEST_F(PictureLayerImplTest, NoInvalidationBoundsChange) { | 488 TEST_F(PictureLayerImplTest, NoInvalidationBoundsChange) { |
486 gfx::Size tile_size(90, 80); | 489 gfx::Size tile_size(90, 80); |
487 gfx::Size active_layer_bounds(300, 500); | 490 gfx::Size active_layer_bounds(300, 500); |
488 gfx::Size pending_layer_bounds(400, 800); | 491 gfx::Size pending_layer_bounds(400, 800); |
489 | 492 |
490 scoped_refptr<FakePicturePileImpl> pending_pile = | 493 scoped_refptr<FakePicturePileImpl> pending_pile = |
491 FakePicturePileImpl::CreateFilledPile(tile_size, | 494 FakePicturePileImpl::CreateFilledPile(tile_size, |
492 pending_layer_bounds); | 495 pending_layer_bounds); |
493 scoped_refptr<FakePicturePileImpl> active_pile = | 496 scoped_refptr<FakePicturePileImpl> active_pile = |
494 FakePicturePileImpl::CreateFilledPile(tile_size, active_layer_bounds); | 497 FakePicturePileImpl::CreateFilledPile(tile_size, active_layer_bounds); |
495 | 498 |
496 SetupTrees(pending_pile, active_pile); | 499 SetupTrees(pending_pile, active_pile, |
500 active_layer_bounds, pending_layer_bounds); | |
497 pending_layer_->set_fixed_tile_size(gfx::Size(100, 100)); | 501 pending_layer_->set_fixed_tile_size(gfx::Size(100, 100)); |
498 | 502 |
499 Region invalidation; | 503 Region invalidation; |
500 AddDefaultTilingsWithInvalidation(invalidation); | 504 AddDefaultTilingsWithInvalidation(invalidation); |
501 | 505 |
502 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 506 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
503 EXPECT_GT(tilings->num_tilings(), 0u); | 507 EXPECT_GT(tilings->num_tilings(), 0u); |
504 for (size_t i = 0; i < tilings->num_tilings(); ++i) { | 508 for (size_t i = 0; i < tilings->num_tilings(); ++i) { |
505 const PictureLayerTiling* tiling = tilings->tiling_at(i); | 509 const PictureLayerTiling* tiling = tilings->tiling_at(i); |
506 gfx::Rect active_content_bounds = gfx::ScaleToEnclosingRect( | 510 gfx::Rect active_content_bounds = gfx::ScaleToEnclosingRect( |
507 gfx::Rect(active_layer_bounds), | 511 gfx::Rect(active_layer_bounds), |
508 tiling->contents_scale()); | 512 tiling->contents_scale()); |
509 for (PictureLayerTiling::CoverageIterator | 513 for (PictureLayerTiling::CoverageIterator |
510 iter(tiling, | 514 iter(tiling, |
511 tiling->contents_scale(), | 515 tiling->contents_scale(), |
512 tiling->ContentRect()); | 516 tiling->TilingRect()); |
513 iter; | 517 iter; |
514 ++iter) { | 518 ++iter) { |
515 EXPECT_TRUE(*iter); | 519 EXPECT_TRUE(*iter); |
516 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); | 520 EXPECT_FALSE(iter.geometry_rect().IsEmpty()); |
517 std::vector<Tile*> active_tiles = | 521 std::vector<Tile*> active_tiles = |
518 active_layer_->tilings()->tiling_at(i)->AllTilesForTesting(); | 522 active_layer_->tilings()->tiling_at(i)->AllTilesForTesting(); |
519 std::vector<Tile*> pending_tiles = tiling->AllTilesForTesting(); | 523 std::vector<Tile*> pending_tiles = tiling->AllTilesForTesting(); |
520 if (iter.geometry_rect().right() >= active_content_bounds.width() || | 524 if (iter.geometry_rect().right() >= active_content_bounds.width() || |
521 iter.geometry_rect().bottom() >= active_content_bounds.height() || | 525 iter.geometry_rect().bottom() >= active_content_bounds.height() || |
522 active_tiles[0]->content_rect().size() != | 526 active_tiles[0]->content_rect().size() != |
(...skipping 23 matching lines...) Expand all Loading... | |
546 pending_pile->AddRecordingAt(x, y); | 550 pending_pile->AddRecordingAt(x, y); |
547 active_pile->AddRecordingAt(x, y); | 551 active_pile->AddRecordingAt(x, y); |
548 } else { | 552 } else { |
549 hole_count++; | 553 hole_count++; |
550 if (hole_count % 2) | 554 if (hole_count % 2) |
551 pending_pile->AddRecordingAt(x, y); | 555 pending_pile->AddRecordingAt(x, y); |
552 } | 556 } |
553 } | 557 } |
554 } | 558 } |
555 | 559 |
556 SetupTrees(pending_pile, active_pile); | 560 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
557 Region invalidation; | 561 Region invalidation; |
558 AddDefaultTilingsWithInvalidation(invalidation); | 562 AddDefaultTilingsWithInvalidation(invalidation); |
559 | 563 |
560 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 564 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
561 EXPECT_GT(tilings->num_tilings(), 0u); | 565 EXPECT_GT(tilings->num_tilings(), 0u); |
562 for (size_t i = 0; i < tilings->num_tilings(); ++i) { | 566 for (size_t i = 0; i < tilings->num_tilings(); ++i) { |
563 const PictureLayerTiling* tiling = tilings->tiling_at(i); | 567 const PictureLayerTiling* tiling = tilings->tiling_at(i); |
564 | 568 |
565 for (PictureLayerTiling::CoverageIterator | 569 for (PictureLayerTiling::CoverageIterator |
566 iter(tiling, | 570 iter(tiling, |
567 tiling->contents_scale(), | 571 tiling->contents_scale(), |
568 tiling->ContentRect()); | 572 tiling->TilingRect()); |
569 iter; | 573 iter; |
570 ++iter) { | 574 ++iter) { |
571 EXPECT_FALSE(iter.full_tile_geometry_rect().IsEmpty()); | 575 EXPECT_FALSE(iter.full_tile_geometry_rect().IsEmpty()); |
572 // Ensure there is a recording for this tile. | 576 // Ensure there is a recording for this tile. |
573 bool in_pending = pending_pile->CanRaster(tiling->contents_scale(), | 577 bool in_pending = pending_pile->CanRaster(tiling->contents_scale(), |
574 iter.full_tile_geometry_rect()); | 578 iter.full_tile_geometry_rect()); |
575 bool in_active = active_pile->CanRaster(tiling->contents_scale(), | 579 bool in_active = active_pile->CanRaster(tiling->contents_scale(), |
576 iter.full_tile_geometry_rect()); | 580 iter.full_tile_geometry_rect()); |
577 | 581 |
578 if (in_pending && !in_active) | 582 if (in_pending && !in_active) |
(...skipping 11 matching lines...) Expand all Loading... | |
590 gfx::Size layer_bounds(1300, 1900); | 594 gfx::Size layer_bounds(1300, 1900); |
591 | 595 |
592 scoped_refptr<FakePicturePileImpl> pending_pile = | 596 scoped_refptr<FakePicturePileImpl> pending_pile = |
593 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); | 597 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); |
594 scoped_refptr<FakePicturePileImpl> active_pile = | 598 scoped_refptr<FakePicturePileImpl> active_pile = |
595 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); | 599 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); |
596 | 600 |
597 float result_scale_x, result_scale_y; | 601 float result_scale_x, result_scale_y; |
598 gfx::Size result_bounds; | 602 gfx::Size result_bounds; |
599 | 603 |
600 SetupTrees(pending_pile, active_pile); | 604 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
601 | 605 |
602 pending_layer_->CalculateContentsScale( | 606 pending_layer_->CalculateContentsScale( |
603 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); | 607 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); |
604 | 608 |
605 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 609 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
606 } | 610 } |
607 | 611 |
608 TEST_F(PictureLayerImplTest, ManageTilingsCreatesTilings) { | 612 TEST_F(PictureLayerImplTest, ManageTilingsCreatesTilings) { |
609 gfx::Size tile_size(400, 400); | 613 gfx::Size tile_size(400, 400); |
610 gfx::Size layer_bounds(1300, 1900); | 614 gfx::Size layer_bounds(1300, 1900); |
611 | 615 |
612 scoped_refptr<FakePicturePileImpl> pending_pile = | 616 scoped_refptr<FakePicturePileImpl> pending_pile = |
613 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 617 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
614 scoped_refptr<FakePicturePileImpl> active_pile = | 618 scoped_refptr<FakePicturePileImpl> active_pile = |
615 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 619 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
616 | 620 |
617 float result_scale_x, result_scale_y; | 621 float result_scale_x, result_scale_y; |
618 gfx::Size result_bounds; | 622 gfx::Size result_bounds; |
619 | 623 |
620 SetupTrees(pending_pile, active_pile); | 624 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
621 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 625 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
622 | 626 |
623 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; | 627 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; |
624 EXPECT_LT(low_res_factor, 1.f); | 628 EXPECT_LT(low_res_factor, 1.f); |
625 | 629 |
626 pending_layer_->CalculateContentsScale(1.3f, // ideal contents scale | 630 pending_layer_->CalculateContentsScale(1.3f, // ideal contents scale |
627 1.7f, // device scale | 631 1.7f, // device scale |
628 3.2f, // page cale | 632 3.2f, // page cale |
629 false, | 633 false, |
630 &result_scale_x, | 634 &result_scale_x, |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
720 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; | 724 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; |
721 EXPECT_LT(low_res_factor, 1.f); | 725 EXPECT_LT(low_res_factor, 1.f); |
722 | 726 |
723 float high_res_scale = 1.3f; | 727 float high_res_scale = 1.3f; |
724 float low_res_scale = high_res_scale * low_res_factor; | 728 float low_res_scale = high_res_scale * low_res_factor; |
725 float device_scale = 1.7f; | 729 float device_scale = 1.7f; |
726 float page_scale = 3.2f; | 730 float page_scale = 3.2f; |
727 float result_scale_x, result_scale_y; | 731 float result_scale_x, result_scale_y; |
728 gfx::Size result_bounds; | 732 gfx::Size result_bounds; |
729 | 733 |
730 SetupPendingTree(valid_pile); | 734 SetupPendingTree(valid_pile, layer_bounds); |
731 pending_layer_->CalculateContentsScale(high_res_scale, | 735 pending_layer_->CalculateContentsScale(high_res_scale, |
732 device_scale, | 736 device_scale, |
733 page_scale, | 737 page_scale, |
734 false, | 738 false, |
735 &result_scale_x, | 739 &result_scale_x, |
736 &result_scale_y, | 740 &result_scale_y, |
737 &result_bounds); | 741 &result_bounds); |
738 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); | 742 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
739 EXPECT_FLOAT_EQ(high_res_scale, | 743 EXPECT_FLOAT_EQ(high_res_scale, |
740 pending_layer_->HighResTiling()->contents_scale()); | 744 pending_layer_->HighResTiling()->contents_scale()); |
741 EXPECT_FLOAT_EQ(low_res_scale, | 745 EXPECT_FLOAT_EQ(low_res_scale, |
742 pending_layer_->LowResTiling()->contents_scale()); | 746 pending_layer_->LowResTiling()->contents_scale()); |
743 | 747 |
744 ActivateTree(); | 748 ActivateTree(); |
745 SetupPendingTree(empty_pile); | 749 SetupPendingTree(empty_pile, layer_bounds); |
746 pending_layer_->CalculateContentsScale(high_res_scale, | 750 pending_layer_->CalculateContentsScale(high_res_scale, |
747 device_scale, | 751 device_scale, |
748 page_scale, | 752 page_scale, |
749 false, | 753 false, |
750 &result_scale_x, | 754 &result_scale_x, |
751 &result_scale_y, | 755 &result_scale_y, |
752 &result_bounds); | 756 &result_bounds); |
753 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); | 757 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); |
754 ASSERT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 758 ASSERT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
755 | 759 |
756 ActivateTree(); | 760 ActivateTree(); |
757 active_layer_->CalculateContentsScale(high_res_scale, | 761 active_layer_->CalculateContentsScale(high_res_scale, |
758 device_scale, | 762 device_scale, |
759 page_scale, | 763 page_scale, |
760 false, | 764 false, |
761 &result_scale_x, | 765 &result_scale_x, |
762 &result_scale_y, | 766 &result_scale_y, |
763 &result_bounds); | 767 &result_bounds); |
764 ASSERT_EQ(0u, active_layer_->tilings()->num_tilings()); | 768 ASSERT_EQ(0u, active_layer_->tilings()->num_tilings()); |
765 | 769 |
766 SetupPendingTree(valid_pile); | 770 SetupPendingTree(valid_pile, layer_bounds); |
767 pending_layer_->CalculateContentsScale(high_res_scale, | 771 pending_layer_->CalculateContentsScale(high_res_scale, |
768 device_scale, | 772 device_scale, |
769 page_scale, | 773 page_scale, |
770 false, | 774 false, |
771 &result_scale_x, | 775 &result_scale_x, |
772 &result_scale_y, | 776 &result_scale_y, |
773 &result_bounds); | 777 &result_bounds); |
774 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); | 778 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
775 ASSERT_EQ(0u, active_layer_->tilings()->num_tilings()); | 779 ASSERT_EQ(0u, active_layer_->tilings()->num_tilings()); |
776 EXPECT_FLOAT_EQ(high_res_scale, | 780 EXPECT_FLOAT_EQ(high_res_scale, |
777 pending_layer_->HighResTiling()->contents_scale()); | 781 pending_layer_->HighResTiling()->contents_scale()); |
778 EXPECT_FLOAT_EQ(low_res_scale, | 782 EXPECT_FLOAT_EQ(low_res_scale, |
779 pending_layer_->LowResTiling()->contents_scale()); | 783 pending_layer_->LowResTiling()->contents_scale()); |
780 } | 784 } |
781 | 785 |
782 TEST_F(PictureLayerImplTest, ZoomOutCrash) { | 786 TEST_F(PictureLayerImplTest, ZoomOutCrash) { |
783 gfx::Size tile_size(400, 400); | 787 gfx::Size tile_size(400, 400); |
784 gfx::Size layer_bounds(1300, 1900); | 788 gfx::Size layer_bounds(1300, 1900); |
785 | 789 |
786 // Set up the high and low res tilings before pinch zoom. | 790 // Set up the high and low res tilings before pinch zoom. |
787 scoped_refptr<FakePicturePileImpl> pending_pile = | 791 scoped_refptr<FakePicturePileImpl> pending_pile = |
788 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 792 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
789 scoped_refptr<FakePicturePileImpl> active_pile = | 793 scoped_refptr<FakePicturePileImpl> active_pile = |
790 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 794 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
791 | 795 |
792 SetupTrees(pending_pile, active_pile); | 796 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
793 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); | 797 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); |
794 SetContentsScaleOnBothLayers(32.0f, 1.0f, 32.0f, false); | 798 SetContentsScaleOnBothLayers(32.0f, 1.0f, 32.0f, false); |
795 host_impl_.PinchGestureBegin(); | 799 host_impl_.PinchGestureBegin(); |
796 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, false); | 800 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, false); |
797 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, false); | 801 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, false); |
798 EXPECT_EQ(active_layer_->tilings()->NumHighResTilings(), 1); | 802 EXPECT_EQ(active_layer_->tilings()->NumHighResTilings(), 1); |
799 } | 803 } |
800 | 804 |
801 TEST_F(PictureLayerImplTest, PinchGestureTilings) { | 805 TEST_F(PictureLayerImplTest, PinchGestureTilings) { |
802 gfx::Size tile_size(400, 400); | 806 gfx::Size tile_size(400, 400); |
803 gfx::Size layer_bounds(1300, 1900); | 807 gfx::Size layer_bounds(1300, 1900); |
804 | 808 |
805 scoped_refptr<FakePicturePileImpl> pending_pile = | 809 scoped_refptr<FakePicturePileImpl> pending_pile = |
806 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 810 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
807 scoped_refptr<FakePicturePileImpl> active_pile = | 811 scoped_refptr<FakePicturePileImpl> active_pile = |
808 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 812 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
809 | 813 |
810 // Set up the high and low res tilings before pinch zoom. | 814 // Set up the high and low res tilings before pinch zoom. |
811 SetupTrees(pending_pile, active_pile); | 815 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
812 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); | 816 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); |
813 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, false); | 817 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, false); |
814 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; | 818 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; |
815 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings()); | 819 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings()); |
816 EXPECT_FLOAT_EQ( | 820 EXPECT_FLOAT_EQ( |
817 1.0f, | 821 1.0f, |
818 active_layer_->tilings()->tiling_at(0)->contents_scale()); | 822 active_layer_->tilings()->tiling_at(0)->contents_scale()); |
819 EXPECT_FLOAT_EQ( | 823 EXPECT_FLOAT_EQ( |
820 1.0f * low_res_factor, | 824 1.0f * low_res_factor, |
821 active_layer_->tilings()->tiling_at(1)->contents_scale()); | 825 active_layer_->tilings()->tiling_at(1)->contents_scale()); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
862 | 866 |
863 scoped_refptr<FakePicturePileImpl> pending_pile = | 867 scoped_refptr<FakePicturePileImpl> pending_pile = |
864 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 868 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
865 scoped_refptr<FakePicturePileImpl> active_pile = | 869 scoped_refptr<FakePicturePileImpl> active_pile = |
866 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 870 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
867 | 871 |
868 float result_scale_x, result_scale_y; | 872 float result_scale_x, result_scale_y; |
869 gfx::Size result_bounds; | 873 gfx::Size result_bounds; |
870 std::vector<PictureLayerTiling*> used_tilings; | 874 std::vector<PictureLayerTiling*> used_tilings; |
871 | 875 |
872 SetupTrees(pending_pile, active_pile); | 876 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
873 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 877 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
874 | 878 |
875 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; | 879 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; |
876 EXPECT_LT(low_res_factor, 1.f); | 880 EXPECT_LT(low_res_factor, 1.f); |
877 | 881 |
878 float device_scale = 1.7f; | 882 float device_scale = 1.7f; |
879 float page_scale = 3.2f; | 883 float page_scale = 3.2f; |
880 | 884 |
881 SetContentsScaleOnBothLayers(1.f, device_scale, page_scale, false); | 885 SetContentsScaleOnBothLayers(1.f, device_scale, page_scale, false); |
882 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); | 886 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1078 gfx::Size layer_bounds(1300, 1900); | 1082 gfx::Size layer_bounds(1300, 1900); |
1079 | 1083 |
1080 scoped_refptr<FakePicturePileImpl> pending_pile = | 1084 scoped_refptr<FakePicturePileImpl> pending_pile = |
1081 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1085 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1082 scoped_refptr<FakePicturePileImpl> active_pile = | 1086 scoped_refptr<FakePicturePileImpl> active_pile = |
1083 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1087 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1084 | 1088 |
1085 float result_scale_x, result_scale_y; | 1089 float result_scale_x, result_scale_y; |
1086 gfx::Size result_bounds; | 1090 gfx::Size result_bounds; |
1087 | 1091 |
1088 SetupTrees(pending_pile, active_pile); | 1092 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
1089 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 1093 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
1090 | 1094 |
1091 pending_layer_->CalculateContentsScale(1.3f, // ideal contents scale | 1095 pending_layer_->CalculateContentsScale(1.3f, // ideal contents scale |
1092 2.7f, // device scale | 1096 2.7f, // device scale |
1093 3.2f, // page cale | 1097 3.2f, // page cale |
1094 false, | 1098 false, |
1095 &result_scale_x, | 1099 &result_scale_x, |
1096 &result_scale_y, | 1100 &result_scale_y, |
1097 &result_bounds); | 1101 &result_bounds); |
1098 EXPECT_EQ(2u, pending_layer_->tilings()->num_tilings()); | 1102 EXPECT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
(...skipping 21 matching lines...) Expand all Loading... | |
1120 gfx::Size layer_bounds(5000, 5000); | 1124 gfx::Size layer_bounds(5000, 5000); |
1121 | 1125 |
1122 scoped_refptr<FakePicturePileImpl> pending_pile = | 1126 scoped_refptr<FakePicturePileImpl> pending_pile = |
1123 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1127 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1124 scoped_refptr<FakePicturePileImpl> active_pile = | 1128 scoped_refptr<FakePicturePileImpl> active_pile = |
1125 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1129 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1126 | 1130 |
1127 float result_scale_x, result_scale_y; | 1131 float result_scale_x, result_scale_y; |
1128 gfx::Size result_bounds; | 1132 gfx::Size result_bounds; |
1129 | 1133 |
1130 SetupTrees(pending_pile, active_pile); | 1134 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
1131 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 1135 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
1132 | 1136 |
1133 pending_layer_->CalculateContentsScale( | 1137 pending_layer_->CalculateContentsScale( |
1134 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); | 1138 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); |
1135 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); | 1139 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
1136 | 1140 |
1137 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); | 1141 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
1138 | 1142 |
1139 // The default value. | 1143 // The default value. |
1140 EXPECT_EQ(gfx::Size(256, 256).ToString(), | 1144 EXPECT_EQ(gfx::Size(256, 256).ToString(), |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1172 gfx::Size layer_bounds(500, 500); | 1176 gfx::Size layer_bounds(500, 500); |
1173 | 1177 |
1174 scoped_refptr<FakePicturePileImpl> pending_pile = | 1178 scoped_refptr<FakePicturePileImpl> pending_pile = |
1175 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1179 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1176 scoped_refptr<FakePicturePileImpl> active_pile = | 1180 scoped_refptr<FakePicturePileImpl> active_pile = |
1177 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1181 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1178 | 1182 |
1179 float result_scale_x, result_scale_y; | 1183 float result_scale_x, result_scale_y; |
1180 gfx::Size result_bounds; | 1184 gfx::Size result_bounds; |
1181 | 1185 |
1182 SetupTrees(pending_pile, active_pile); | 1186 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
1183 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 1187 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
1184 | 1188 |
1185 pending_layer_->CalculateContentsScale( | 1189 pending_layer_->CalculateContentsScale( |
1186 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); | 1190 1.f, 1.f, 1.f, false, &result_scale_x, &result_scale_y, &result_bounds); |
1187 ASSERT_LE(1u, pending_layer_->tilings()->num_tilings()); | 1191 ASSERT_LE(1u, pending_layer_->tilings()->num_tilings()); |
1188 | 1192 |
1189 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); | 1193 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
1190 | 1194 |
1191 // The default value. The layer is smaller than this. | 1195 // The default value. The layer is smaller than this. |
1192 EXPECT_EQ(gfx::Size(512, 512).ToString(), | 1196 EXPECT_EQ(gfx::Size(512, 512).ToString(), |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1227 MockQuadCuller quad_culler; | 1231 MockQuadCuller quad_culler; |
1228 | 1232 |
1229 gfx::Size tile_size(400, 400); | 1233 gfx::Size tile_size(400, 400); |
1230 gfx::Size layer_bounds(1300, 1900); | 1234 gfx::Size layer_bounds(1300, 1900); |
1231 | 1235 |
1232 scoped_refptr<FakePicturePileImpl> pending_pile = | 1236 scoped_refptr<FakePicturePileImpl> pending_pile = |
1233 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1237 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1234 scoped_refptr<FakePicturePileImpl> active_pile = | 1238 scoped_refptr<FakePicturePileImpl> active_pile = |
1235 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1239 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1236 | 1240 |
1237 SetupTrees(pending_pile, active_pile); | 1241 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
1238 | 1242 |
1239 active_layer_->SetContentBounds(layer_bounds); | 1243 active_layer_->SetContentBounds(layer_bounds); |
1240 active_layer_->draw_properties().visible_content_rect = | 1244 active_layer_->draw_properties().visible_content_rect = |
1241 gfx::Rect(layer_bounds); | 1245 gfx::Rect(layer_bounds); |
1242 | 1246 |
1243 gfx::Rect layer_invalidation(150, 200, 30, 180); | 1247 gfx::Rect layer_invalidation(150, 200, 30, 180); |
1244 Region invalidation(layer_invalidation); | 1248 Region invalidation(layer_invalidation); |
1245 AddDefaultTilingsWithInvalidation(invalidation); | 1249 AddDefaultTilingsWithInvalidation(invalidation); |
1246 | 1250 |
1247 AppendQuadsData data; | 1251 AppendQuadsData data; |
1248 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, NULL); | 1252 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, NULL); |
1249 active_layer_->AppendQuads(&quad_culler, &data); | 1253 active_layer_->AppendQuads(&quad_culler, &data); |
1250 active_layer_->DidDraw(NULL); | 1254 active_layer_->DidDraw(NULL); |
1251 | 1255 |
1252 ASSERT_EQ(1U, quad_culler.quad_list().size()); | 1256 ASSERT_EQ(1U, quad_culler.quad_list().size()); |
1253 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, quad_culler.quad_list()[0]->material); | 1257 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, quad_culler.quad_list()[0]->material); |
1254 } | 1258 } |
1255 | 1259 |
1256 TEST_F(PictureLayerImplTest, MarkRequiredNullTiles) { | 1260 TEST_F(PictureLayerImplTest, MarkRequiredNullTiles) { |
1257 gfx::Size tile_size(100, 100); | 1261 gfx::Size tile_size(100, 100); |
1258 gfx::Size layer_bounds(1000, 1000); | 1262 gfx::Size layer_bounds(1000, 1000); |
1259 | 1263 |
1260 scoped_refptr<FakePicturePileImpl> pending_pile = | 1264 scoped_refptr<FakePicturePileImpl> pending_pile = |
1261 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); | 1265 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); |
1262 // Layers with entirely empty piles can't get tilings. | 1266 // Layers with entirely empty piles can't get tilings. |
1263 pending_pile->AddRecordingAt(0, 0); | 1267 pending_pile->AddRecordingAt(0, 0); |
1264 | 1268 |
1265 SetupPendingTree(pending_pile); | 1269 SetupPendingTree(pending_pile, layer_bounds); |
1266 | 1270 |
1267 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 1271 ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
1268 pending_layer_->AddTiling(1.0f); | 1272 pending_layer_->AddTiling(1.0f); |
1269 pending_layer_->AddTiling(2.0f); | 1273 pending_layer_->AddTiling(2.0f); |
1270 | 1274 |
1271 // It should be safe to call this (and MarkVisibleResourcesAsRequired) | 1275 // It should be safe to call this (and MarkVisibleResourcesAsRequired) |
1272 // on a layer with no recordings. | 1276 // on a layer with no recordings. |
1273 host_impl_.pending_tree()->UpdateDrawProperties(); | 1277 host_impl_.pending_tree()->UpdateDrawProperties(); |
1274 pending_layer_->MarkVisibleResourcesAsRequired(); | 1278 pending_layer_->MarkVisibleResourcesAsRequired(); |
1275 } | 1279 } |
1276 | 1280 |
1277 TEST_F(PictureLayerImplTest, MarkRequiredOffscreenTiles) { | 1281 TEST_F(PictureLayerImplTest, MarkRequiredOffscreenTiles) { |
1278 gfx::Size tile_size(100, 100); | 1282 gfx::Size tile_size(100, 100); |
1279 gfx::Size layer_bounds(200, 200); | 1283 gfx::Size layer_bounds(200, 200); |
1280 | 1284 |
1281 scoped_refptr<FakePicturePileImpl> pending_pile = | 1285 scoped_refptr<FakePicturePileImpl> pending_pile = |
1282 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1286 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1283 SetupPendingTree(pending_pile); | 1287 SetupPendingTree(pending_pile, layer_bounds); |
1284 | 1288 |
1285 pending_layer_->set_fixed_tile_size(tile_size); | 1289 pending_layer_->set_fixed_tile_size(tile_size); |
1286 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 1290 ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
1287 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); | 1291 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); |
1288 host_impl_.pending_tree()->UpdateDrawProperties(); | 1292 host_impl_.pending_tree()->UpdateDrawProperties(); |
1289 EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION); | 1293 EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION); |
1290 | 1294 |
1291 pending_layer_->draw_properties().visible_content_rect = | 1295 pending_layer_->draw_properties().visible_content_rect = |
1292 gfx::Rect(0, 0, 100, 200); | 1296 gfx::Rect(0, 0, 100, 200); |
1293 | 1297 |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1400 gfx::Size tile_size(100, 100); | 1404 gfx::Size tile_size(100, 100); |
1401 scoped_refptr<FakePicturePileImpl> pending_pile = | 1405 scoped_refptr<FakePicturePileImpl> pending_pile = |
1402 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1406 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1403 // This pile will create tilings, but has no recordings so will not create any | 1407 // This pile will create tilings, but has no recordings so will not create any |
1404 // tiles. This is attempting to simulate scrolling past the end of recorded | 1408 // tiles. This is attempting to simulate scrolling past the end of recorded |
1405 // content on the active layer, where the recordings are so far away that | 1409 // content on the active layer, where the recordings are so far away that |
1406 // no tiles are created. | 1410 // no tiles are created. |
1407 scoped_refptr<FakePicturePileImpl> active_pile = | 1411 scoped_refptr<FakePicturePileImpl> active_pile = |
1408 FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings( | 1412 FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings( |
1409 tile_size, layer_bounds); | 1413 tile_size, layer_bounds); |
1410 SetupTrees(pending_pile, active_pile); | 1414 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
1411 pending_layer_->set_fixed_tile_size(tile_size); | 1415 pending_layer_->set_fixed_tile_size(tile_size); |
1412 active_layer_->set_fixed_tile_size(tile_size); | 1416 active_layer_->set_fixed_tile_size(tile_size); |
1413 | 1417 |
1414 CreateHighLowResAndSetAllTilesVisible(); | 1418 CreateHighLowResAndSetAllTilesVisible(); |
1415 | 1419 |
1416 // Active layer has tilings, but no tiles due to missing recordings. | 1420 // Active layer has tilings, but no tiles due to missing recordings. |
1417 EXPECT_TRUE(active_layer_->CanHaveTilings()); | 1421 EXPECT_TRUE(active_layer_->CanHaveTilings()); |
1418 EXPECT_EQ(active_layer_->tilings()->num_tilings(), 2u); | 1422 EXPECT_EQ(active_layer_->tilings()->num_tilings(), 2u); |
1419 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); | 1423 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); |
1420 | 1424 |
1421 // Since the active layer has no tiles at all, the pending layer doesn't | 1425 // Since the active layer has no tiles at all, the pending layer doesn't |
1422 // need content in order to activate. | 1426 // need content in order to activate. |
1423 pending_layer_->MarkVisibleResourcesAsRequired(); | 1427 pending_layer_->MarkVisibleResourcesAsRequired(); |
1424 AssertNoTilesRequired(pending_layer_->HighResTiling()); | 1428 AssertNoTilesRequired(pending_layer_->HighResTiling()); |
1425 AssertNoTilesRequired(pending_layer_->LowResTiling()); | 1429 AssertNoTilesRequired(pending_layer_->LowResTiling()); |
1426 } | 1430 } |
1427 | 1431 |
1428 TEST_F(PictureLayerImplTest, HighResRequiredIfActiveCantHaveTiles) { | 1432 TEST_F(PictureLayerImplTest, HighResRequiredIfActiveCantHaveTiles) { |
1429 gfx::Size layer_bounds(400, 400); | 1433 gfx::Size layer_bounds(400, 400); |
1430 gfx::Size tile_size(100, 100); | 1434 gfx::Size tile_size(100, 100); |
1431 scoped_refptr<FakePicturePileImpl> pending_pile = | 1435 scoped_refptr<FakePicturePileImpl> pending_pile = |
1432 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1436 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1433 scoped_refptr<FakePicturePileImpl> active_pile = | 1437 scoped_refptr<FakePicturePileImpl> active_pile = |
1434 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); | 1438 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); |
1435 SetupTrees(pending_pile, active_pile); | 1439 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
1436 pending_layer_->set_fixed_tile_size(tile_size); | 1440 pending_layer_->set_fixed_tile_size(tile_size); |
1437 active_layer_->set_fixed_tile_size(tile_size); | 1441 active_layer_->set_fixed_tile_size(tile_size); |
1438 | 1442 |
1439 CreateHighLowResAndSetAllTilesVisible(); | 1443 CreateHighLowResAndSetAllTilesVisible(); |
1440 | 1444 |
1441 // Active layer can't have tiles. | 1445 // Active layer can't have tiles. |
1442 EXPECT_FALSE(active_layer_->CanHaveTilings()); | 1446 EXPECT_FALSE(active_layer_->CanHaveTilings()); |
1443 | 1447 |
1444 // All high res tiles required. This should be considered identical | 1448 // All high res tiles required. This should be considered identical |
1445 // to the case where there is no active layer, to avoid flashing content. | 1449 // to the case where there is no active layer, to avoid flashing content. |
1446 // This can happen if a layer exists for a while and switches from | 1450 // This can happen if a layer exists for a while and switches from |
1447 // not being able to have content to having content. | 1451 // not being able to have content to having content. |
1448 pending_layer_->MarkVisibleResourcesAsRequired(); | 1452 pending_layer_->MarkVisibleResourcesAsRequired(); |
1449 AssertAllTilesRequired(pending_layer_->HighResTiling()); | 1453 AssertAllTilesRequired(pending_layer_->HighResTiling()); |
1450 AssertNoTilesRequired(pending_layer_->LowResTiling()); | 1454 AssertNoTilesRequired(pending_layer_->LowResTiling()); |
1451 } | 1455 } |
1452 | 1456 |
1453 TEST_F(PictureLayerImplTest, ActivateUninitializedLayer) { | 1457 TEST_F(PictureLayerImplTest, ActivateUninitializedLayer) { |
1454 gfx::Size tile_size(100, 100); | 1458 gfx::Size tile_size(100, 100); |
1455 gfx::Size layer_bounds(400, 400); | 1459 gfx::Size layer_bounds(400, 400); |
1456 scoped_refptr<FakePicturePileImpl> pending_pile = | 1460 scoped_refptr<FakePicturePileImpl> pending_pile = |
1457 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1461 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1458 | 1462 |
1459 host_impl_.CreatePendingTree(); | 1463 host_impl_.CreatePendingTree(); |
1460 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); | 1464 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); |
1461 | 1465 |
1462 scoped_ptr<FakePictureLayerImpl> pending_layer = | 1466 scoped_ptr<FakePictureLayerImpl> pending_layer = |
1463 FakePictureLayerImpl::CreateWithPile(pending_tree, id_, pending_pile); | 1467 FakePictureLayerImpl::CreateWithPile(pending_tree, id_, pending_pile, |
1468 layer_bounds); | |
1464 pending_layer->SetDrawsContent(true); | 1469 pending_layer->SetDrawsContent(true); |
1465 pending_tree->SetRootLayer(pending_layer.PassAs<LayerImpl>()); | 1470 pending_tree->SetRootLayer(pending_layer.PassAs<LayerImpl>()); |
1466 | 1471 |
1467 pending_layer_ = static_cast<FakePictureLayerImpl*>( | 1472 pending_layer_ = static_cast<FakePictureLayerImpl*>( |
1468 host_impl_.pending_tree()->LayerById(id_)); | 1473 host_impl_.pending_tree()->LayerById(id_)); |
1469 | 1474 |
1470 // Set some state on the pending layer, make sure it is not clobbered | 1475 // Set some state on the pending layer, make sure it is not clobbered |
1471 // by a sync from the active layer. This could happen because if the | 1476 // by a sync from the active layer. This could happen because if the |
1472 // pending layer has not been post-commit initialized it will attempt | 1477 // pending layer has not been post-commit initialized it will attempt |
1473 // to sync from the active layer. | 1478 // to sync from the active layer. |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1596 | 1601 |
1597 // Create some default active and pending trees. | 1602 // Create some default active and pending trees. |
1598 gfx::Size tile_size(100, 100); | 1603 gfx::Size tile_size(100, 100); |
1599 gfx::Size layer_bounds(400, 400); | 1604 gfx::Size layer_bounds(400, 400); |
1600 | 1605 |
1601 scoped_refptr<FakePicturePileImpl> pending_pile = | 1606 scoped_refptr<FakePicturePileImpl> pending_pile = |
1602 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1607 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1603 scoped_refptr<FakePicturePileImpl> active_pile = | 1608 scoped_refptr<FakePicturePileImpl> active_pile = |
1604 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1609 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1605 | 1610 |
1606 SetupTrees(pending_pile, active_pile); | 1611 SetupTrees(pending_pile, active_pile, layer_bounds, layer_bounds); |
1607 } | 1612 } |
1608 }; | 1613 }; |
1609 | 1614 |
1610 // This test is really a LayerTreeHostImpl test, in that it makes sure | 1615 // This test is really a LayerTreeHostImpl test, in that it makes sure |
1611 // that trees need update draw properties after deferred initialization. | 1616 // that trees need update draw properties after deferred initialization. |
1612 // However, this is also a regression test for PictureLayerImpl in that | 1617 // However, this is also a regression test for PictureLayerImpl in that |
1613 // not having this update will cause a crash. | 1618 // not having this update will cause a crash. |
1614 TEST_F(DeferredInitPictureLayerImplTest, | 1619 TEST_F(DeferredInitPictureLayerImplTest, |
1615 PreventUpdateTilePrioritiesDuringLostContext) { | 1620 PreventUpdateTilePrioritiesDuringLostContext) { |
1616 host_impl_.pending_tree()->UpdateDrawProperties(); | 1621 host_impl_.pending_tree()->UpdateDrawProperties(); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1763 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); | 1768 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); |
1764 } | 1769 } |
1765 | 1770 |
1766 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { | 1771 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { |
1767 gfx::Size tile_size(100, 100); | 1772 gfx::Size tile_size(100, 100); |
1768 gfx::Size layer_bounds(1000, 1000); | 1773 gfx::Size layer_bounds(1000, 1000); |
1769 | 1774 |
1770 scoped_refptr<FakePicturePileImpl> pending_pile = | 1775 scoped_refptr<FakePicturePileImpl> pending_pile = |
1771 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1776 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1772 | 1777 |
1773 SetupPendingTree(pending_pile); | 1778 SetupPendingTree(pending_pile, layer_bounds); |
1774 | 1779 |
1775 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 1780 ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
1776 | 1781 |
1777 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; | 1782 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; |
1778 | 1783 |
1779 pending_layer_->AddTiling(low_res_factor); | 1784 pending_layer_->AddTiling(low_res_factor); |
1780 pending_layer_->AddTiling(0.3f); | 1785 pending_layer_->AddTiling(0.3f); |
1781 pending_layer_->AddTiling(0.7f); | 1786 pending_layer_->AddTiling(0.7f); |
1782 PictureLayerTiling* high_res_tiling = pending_layer_->AddTiling(1.0f); | 1787 PictureLayerTiling* high_res_tiling = pending_layer_->AddTiling(1.0f); |
1783 pending_layer_->AddTiling(2.0f); | 1788 pending_layer_->AddTiling(2.0f); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1851 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; | 1856 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; |
1852 } | 1857 } |
1853 | 1858 |
1854 EXPECT_EQ(0u, non_ideal_tile_count); | 1859 EXPECT_EQ(0u, non_ideal_tile_count); |
1855 EXPECT_EQ(1u, low_res_tile_count); | 1860 EXPECT_EQ(1u, low_res_tile_count); |
1856 EXPECT_EQ(0u, high_res_tile_count); | 1861 EXPECT_EQ(0u, high_res_tile_count); |
1857 } | 1862 } |
1858 | 1863 |
1859 } // namespace | 1864 } // namespace |
1860 } // namespace cc | 1865 } // namespace cc |
OLD | NEW |