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

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

Issue 367833003: cc: Start using raster/eviction iterators. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update Created 6 years, 5 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
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 <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 1234
1235 AppendQuadsData data; 1235 AppendQuadsData data;
1236 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, NULL); 1236 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, NULL);
1237 active_layer_->AppendQuads(render_pass.get(), occlusion_tracker, &data); 1237 active_layer_->AppendQuads(render_pass.get(), occlusion_tracker, &data);
1238 active_layer_->DidDraw(NULL); 1238 active_layer_->DidDraw(NULL);
1239 1239
1240 ASSERT_EQ(1U, render_pass->quad_list.size()); 1240 ASSERT_EQ(1U, render_pass->quad_list.size());
1241 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, render_pass->quad_list[0]->material); 1241 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, render_pass->quad_list[0]->material);
1242 } 1242 }
1243 1243
1244 TEST_F(PictureLayerImplTest, MarkRequiredNullTiles) {
1245 gfx::Size tile_size(100, 100);
1246 gfx::Size layer_bounds(1000, 1000);
1247
1248 scoped_refptr<FakePicturePileImpl> pending_pile =
1249 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
1250 // Layers with entirely empty piles can't get tilings.
1251 pending_pile->AddRecordingAt(0, 0);
1252
1253 SetupPendingTree(pending_pile);
1254
1255 ASSERT_TRUE(pending_layer_->CanHaveTilings());
1256 pending_layer_->AddTiling(1.0f);
1257 pending_layer_->AddTiling(2.0f);
1258
1259 // It should be safe to call this (and MarkVisibleResourcesAsRequired)
1260 // on a layer with no recordings.
1261 host_impl_.pending_tree()->UpdateDrawProperties();
1262 pending_layer_->MarkVisibleResourcesAsRequired();
1263 }
1264
1265 TEST_F(PictureLayerImplTest, MarkRequiredOffscreenTiles) { 1244 TEST_F(PictureLayerImplTest, MarkRequiredOffscreenTiles) {
1266 gfx::Size tile_size(100, 100); 1245 gfx::Size tile_size(100, 100);
1267 gfx::Size layer_bounds(200, 200); 1246 gfx::Size layer_bounds(200, 200);
1268 1247
1269 scoped_refptr<FakePicturePileImpl> pending_pile = 1248 scoped_refptr<FakePicturePileImpl> pending_pile =
1270 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1249 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1271 SetupPendingTree(pending_pile); 1250 SetupPendingTree(pending_pile);
1272 1251
1273 pending_layer_->set_fixed_tile_size(tile_size); 1252 pending_layer_->set_fixed_tile_size(tile_size);
1274 ASSERT_TRUE(pending_layer_->CanHaveTilings()); 1253 ASSERT_TRUE(pending_layer_->CanHaveTilings());
1275 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); 1254 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f);
1276 host_impl_.pending_tree()->UpdateDrawProperties(); 1255 host_impl_.pending_tree()->UpdateDrawProperties();
1277 EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION);
1278
1279 pending_layer_->draw_properties().visible_content_rect = 1256 pending_layer_->draw_properties().visible_content_rect =
1280 gfx::Rect(0, 0, 100, 200); 1257 gfx::Rect(0, 0, 100, 200);
1258 pending_layer_->UpdateTiles(NULL);
1281 1259
1282 // Fake set priorities. 1260 EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION);
1283 for (PictureLayerTiling::CoverageIterator iter(
1284 tiling, pending_layer_->contents_scale_x(), gfx::Rect(layer_bounds));
1285 iter;
1286 ++iter) {
1287 if (!*iter)
1288 continue;
1289 Tile* tile = *iter;
1290 TilePriority priority;
1291 priority.resolution = HIGH_RESOLUTION;
1292 gfx::Rect tile_bounds = iter.geometry_rect();
1293 if (pending_layer_->visible_content_rect().Intersects(tile_bounds)) {
1294 priority.priority_bin = TilePriority::NOW;
1295 priority.distance_to_visible = 0.f;
1296 } else {
1297 priority.priority_bin = TilePriority::SOON;
1298 priority.distance_to_visible = 1.f;
1299 }
1300 tile->SetPriority(PENDING_TREE, priority);
1301 }
1302
1303 pending_layer_->MarkVisibleResourcesAsRequired();
1304 1261
1305 int num_visible = 0; 1262 int num_visible = 0;
1306 int num_offscreen = 0; 1263 int num_offscreen = 0;
1307 1264
1308 for (PictureLayerTiling::CoverageIterator iter( 1265 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling, PENDING_TREE);
1309 tiling, pending_layer_->contents_scale_x(), gfx::Rect(layer_bounds));
1310 iter; 1266 iter;
1311 ++iter) { 1267 ++iter) {
1312 if (!*iter)
1313 continue;
1314 const Tile* tile = *iter; 1268 const Tile* tile = *iter;
1315 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) { 1269 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) {
1316 EXPECT_TRUE(tile->required_for_activation()); 1270 EXPECT_TRUE(tile->required_for_activation());
1317 num_visible++; 1271 num_visible++;
1318 } else { 1272 } else {
1319 EXPECT_FALSE(tile->required_for_activation()); 1273 EXPECT_FALSE(tile->required_for_activation());
1320 num_offscreen++; 1274 num_offscreen++;
1321 } 1275 }
1322 } 1276 }
1323 1277
1324 EXPECT_GT(num_visible, 0); 1278 EXPECT_GT(num_visible, 0);
1325 EXPECT_GT(num_offscreen, 0); 1279 EXPECT_GT(num_offscreen, 0);
1326 } 1280 }
1327 1281 //
1328 TEST_F(PictureLayerImplTest, HighResRequiredWhenUnsharedActiveAllReady) { 1282 TEST_F(PictureLayerImplTest, HighResRequiredWhenUnsharedActiveAllReady) {
1329 gfx::Size layer_bounds(400, 400); 1283 gfx::Size layer_bounds(400, 400);
1330 gfx::Size tile_size(100, 100); 1284 gfx::Size tile_size(100, 100);
1331 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size); 1285 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size);
1332 1286
1333 // No tiles shared. 1287 // No tiles shared.
1334 pending_layer_->set_invalidation(gfx::Rect(layer_bounds)); 1288 pending_layer_->set_invalidation(gfx::Rect(layer_bounds));
1335 1289
1336 CreateHighLowResAndSetAllTilesVisible(); 1290 CreateHighLowResAndSetAllTilesVisible();
1337 1291
1338 active_layer_->SetAllTilesReady(); 1292 active_layer_->SetAllTilesReady();
1339 1293
1340 // No shared tiles and all active tiles ready, so pending can only 1294 // No shared tiles and all active tiles ready, so pending can only
1341 // activate with all high res tiles. 1295 // activate with all high res tiles.
1342 pending_layer_->MarkVisibleResourcesAsRequired();
1343 AssertAllTilesRequired(pending_layer_->HighResTiling()); 1296 AssertAllTilesRequired(pending_layer_->HighResTiling());
1344 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1297 AssertNoTilesRequired(pending_layer_->LowResTiling());
1345 } 1298 }
1346 1299
1347 TEST_F(PictureLayerImplTest, HighResRequiredWhenMissingHighResFlagOn) { 1300 TEST_F(PictureLayerImplTest, HighResRequiredWhenMissingHighResFlagOn) {
1348 gfx::Size layer_bounds(400, 400); 1301 gfx::Size layer_bounds(400, 400);
1349 gfx::Size tile_size(100, 100); 1302 gfx::Size tile_size(100, 100);
1350 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size); 1303 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size);
1351 1304
1305 host_impl_.active_tree()->SetRequiresHighResToDraw();
1306
1352 // All tiles shared (no invalidation). 1307 // All tiles shared (no invalidation).
1353 CreateHighLowResAndSetAllTilesVisible(); 1308 CreateHighLowResAndSetAllTilesVisible();
1354 1309
1355 // Verify active tree not ready. 1310 // Verify active tree not ready.
1356 Tile* some_active_tile = 1311 Tile* some_active_tile =
1357 active_layer_->HighResTiling()->AllTilesForTesting()[0]; 1312 active_layer_->HighResTiling()->AllTilesForTesting()[0];
1358 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); 1313 EXPECT_FALSE(some_active_tile->IsReadyToDraw());
1359 1314
1360 // When high res are required, even if the active tree is not ready, 1315 // When high res are required, even if the active tree is not ready,
1361 // the high res tiles must be ready. 1316 // the high res tiles must be ready.
1362 host_impl_.active_tree()->SetRequiresHighResToDraw();
1363 pending_layer_->MarkVisibleResourcesAsRequired();
1364 AssertAllTilesRequired(pending_layer_->HighResTiling()); 1317 AssertAllTilesRequired(pending_layer_->HighResTiling());
1365 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1318 AssertNoTilesRequired(pending_layer_->LowResTiling());
1366 } 1319 }
1367 1320
1368 TEST_F(PictureLayerImplTest, NothingRequiredIfAllHighResTilesShared) { 1321 TEST_F(PictureLayerImplTest, NothingRequiredIfAllHighResTilesShared) {
1369 gfx::Size layer_bounds(400, 400); 1322 gfx::Size layer_bounds(400, 400);
1370 gfx::Size tile_size(100, 100); 1323 gfx::Size tile_size(100, 100);
1371 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size); 1324 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size);
1372 1325
1373 CreateHighLowResAndSetAllTilesVisible(); 1326 CreateHighLowResAndSetAllTilesVisible();
1374 1327
1375 Tile* some_active_tile = 1328 Tile* some_active_tile =
1376 active_layer_->HighResTiling()->AllTilesForTesting()[0]; 1329 active_layer_->HighResTiling()->AllTilesForTesting()[0];
1377 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); 1330 EXPECT_FALSE(some_active_tile->IsReadyToDraw());
1378 1331
1379 // All tiles shared (no invalidation), so even though the active tree's 1332 // All tiles shared (no invalidation), so even though the active tree's
1380 // tiles aren't ready, there is nothing required. 1333 // tiles aren't ready, there is nothing required.
1381 pending_layer_->MarkVisibleResourcesAsRequired();
1382 AssertNoTilesRequired(pending_layer_->HighResTiling()); 1334 AssertNoTilesRequired(pending_layer_->HighResTiling());
1383 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1335 AssertNoTilesRequired(pending_layer_->LowResTiling());
1384 } 1336 }
1385 1337
1386 TEST_F(PictureLayerImplTest, NothingRequiredIfActiveMissingTiles) { 1338 TEST_F(PictureLayerImplTest, NothingRequiredIfActiveMissingTiles) {
1387 gfx::Size layer_bounds(400, 400); 1339 gfx::Size layer_bounds(400, 400);
1388 gfx::Size tile_size(100, 100); 1340 gfx::Size tile_size(100, 100);
1389 scoped_refptr<FakePicturePileImpl> pending_pile = 1341 scoped_refptr<FakePicturePileImpl> pending_pile =
1390 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1342 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1391 // This pile will create tilings, but has no recordings so will not create any 1343 // This pile will create tilings, but has no recordings so will not create any
1392 // tiles. This is attempting to simulate scrolling past the end of recorded 1344 // tiles. This is attempting to simulate scrolling past the end of recorded
1393 // content on the active layer, where the recordings are so far away that 1345 // content on the active layer, where the recordings are so far away that
1394 // no tiles are created. 1346 // no tiles are created.
1395 scoped_refptr<FakePicturePileImpl> active_pile = 1347 scoped_refptr<FakePicturePileImpl> active_pile =
1396 FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings( 1348 FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings(
1397 tile_size, layer_bounds); 1349 tile_size, layer_bounds);
1398 SetupTrees(pending_pile, active_pile); 1350 SetupTrees(pending_pile, active_pile);
1399 pending_layer_->set_fixed_tile_size(tile_size); 1351 pending_layer_->set_fixed_tile_size(tile_size);
1400 active_layer_->set_fixed_tile_size(tile_size); 1352 active_layer_->set_fixed_tile_size(tile_size);
1401 1353
1402 CreateHighLowResAndSetAllTilesVisible(); 1354 CreateHighLowResAndSetAllTilesVisible();
1403 1355
1404 // Active layer has tilings, but no tiles due to missing recordings. 1356 // Active layer has tilings, but no tiles due to missing recordings.
1405 EXPECT_TRUE(active_layer_->CanHaveTilings()); 1357 EXPECT_TRUE(active_layer_->CanHaveTilings());
1406 EXPECT_EQ(active_layer_->tilings()->num_tilings(), 2u); 1358 EXPECT_EQ(active_layer_->tilings()->num_tilings(), 2u);
1407 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); 1359 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u);
1408 1360
1409 // Since the active layer has no tiles at all, the pending layer doesn't 1361 // Since the active layer has no tiles at all, the pending layer doesn't
1410 // need content in order to activate. 1362 // need content in order to activate.
1411 pending_layer_->MarkVisibleResourcesAsRequired();
1412 AssertNoTilesRequired(pending_layer_->HighResTiling()); 1363 AssertNoTilesRequired(pending_layer_->HighResTiling());
1413 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1364 AssertNoTilesRequired(pending_layer_->LowResTiling());
1414 } 1365 }
1415 1366
1416 TEST_F(PictureLayerImplTest, HighResRequiredIfActiveCantHaveTiles) { 1367 TEST_F(PictureLayerImplTest, HighResRequiredIfActiveCantHaveTiles) {
1417 gfx::Size layer_bounds(400, 400); 1368 gfx::Size layer_bounds(400, 400);
1418 gfx::Size tile_size(100, 100); 1369 gfx::Size tile_size(100, 100);
1419 scoped_refptr<FakePicturePileImpl> pending_pile = 1370 scoped_refptr<FakePicturePileImpl> pending_pile =
1420 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1371 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1421 scoped_refptr<FakePicturePileImpl> active_pile = 1372 scoped_refptr<FakePicturePileImpl> active_pile =
1422 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); 1373 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
1423 SetupTrees(pending_pile, active_pile); 1374 SetupTrees(pending_pile, active_pile);
1424 pending_layer_->set_fixed_tile_size(tile_size); 1375 pending_layer_->set_fixed_tile_size(tile_size);
1425 active_layer_->set_fixed_tile_size(tile_size); 1376 active_layer_->set_fixed_tile_size(tile_size);
1426 1377
1427 CreateHighLowResAndSetAllTilesVisible(); 1378 CreateHighLowResAndSetAllTilesVisible();
1428 1379
1429 // Active layer can't have tiles. 1380 // Active layer can't have tiles.
1430 EXPECT_FALSE(active_layer_->CanHaveTilings()); 1381 EXPECT_FALSE(active_layer_->CanHaveTilings());
1431 1382
1432 // All high res tiles required. This should be considered identical 1383 // All high res tiles required. This should be considered identical
1433 // to the case where there is no active layer, to avoid flashing content. 1384 // to the case where there is no active layer, to avoid flashing content.
1434 // This can happen if a layer exists for a while and switches from 1385 // This can happen if a layer exists for a while and switches from
1435 // not being able to have content to having content. 1386 // not being able to have content to having content.
1436 pending_layer_->MarkVisibleResourcesAsRequired();
1437 AssertAllTilesRequired(pending_layer_->HighResTiling()); 1387 AssertAllTilesRequired(pending_layer_->HighResTiling());
1438 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1388 AssertNoTilesRequired(pending_layer_->LowResTiling());
1439 } 1389 }
1440 1390
1441 TEST_F(PictureLayerImplTest, HighResRequiredWhenActiveHasDifferentBounds) { 1391 TEST_F(PictureLayerImplTest, HighResRequiredWhenActiveHasDifferentBounds) {
1442 gfx::Size layer_bounds(200, 200); 1392 gfx::Size layer_bounds(200, 200);
1443 gfx::Size tile_size(100, 100); 1393 gfx::Size tile_size(100, 100);
1444 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size); 1394 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size);
1445 1395
1446 gfx::Size pending_layer_bounds(400, 400); 1396 gfx::Size pending_layer_bounds(400, 400);
1447 pending_layer_->SetBounds(pending_layer_bounds); 1397 pending_layer_->SetBounds(pending_layer_bounds);
1448 1398
1449 CreateHighLowResAndSetAllTilesVisible(); 1399 CreateHighLowResAndSetAllTilesVisible();
1400 pending_layer_->HighResTiling()->UpdateTilePriorities(
1401 PENDING_TREE,
1402 gfx::Rect(pending_layer_bounds),
1403 1.f,
1404 1.f,
1405 NULL,
1406 NULL,
1407 gfx::Transform());
1408 pending_layer_->HighResTiling()->CreateAllTilesForTesting();
1450 1409
1451 active_layer_->SetAllTilesReady(); 1410 active_layer_->SetAllTilesReady();
1452 1411
1453 // Since the active layer has different bounds, the pending layer needs all 1412 // Since the active layer has different bounds, the pending layer needs all
1454 // high res tiles in order to activate. 1413 // high res tiles in order to activate.
1455 pending_layer_->MarkVisibleResourcesAsRequired();
1456 AssertAllTilesRequired(pending_layer_->HighResTiling()); 1414 AssertAllTilesRequired(pending_layer_->HighResTiling());
1457 AssertNoTilesRequired(pending_layer_->LowResTiling()); 1415 AssertNoTilesRequired(pending_layer_->LowResTiling());
1458 } 1416 }
1459 1417
1460 TEST_F(PictureLayerImplTest, ActivateUninitializedLayer) { 1418 TEST_F(PictureLayerImplTest, ActivateUninitializedLayer) {
1461 gfx::Size tile_size(100, 100); 1419 gfx::Size tile_size(100, 100);
1462 gfx::Size layer_bounds(400, 400); 1420 gfx::Size layer_bounds(400, 400);
1463 scoped_refptr<FakePicturePileImpl> pending_pile = 1421 scoped_refptr<FakePicturePileImpl> pending_pile =
1464 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1422 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1465 1423
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1549 EXPECT_EQ(3u, active_layer_->num_tilings()); 1507 EXPECT_EQ(3u, active_layer_->num_tilings());
1550 EXPECT_EQ(3u, pending_layer_->num_tilings()); 1508 EXPECT_EQ(3u, pending_layer_->num_tilings());
1551 for (size_t i = 0; i < active_layer_->num_tilings(); ++i) { 1509 for (size_t i = 0; i < active_layer_->num_tilings(); ++i) {
1552 PictureLayerTiling* active_tiling = active_layer_->tilings()->tiling_at(i); 1510 PictureLayerTiling* active_tiling = active_layer_->tilings()->tiling_at(i);
1553 PictureLayerTiling* pending_tiling = 1511 PictureLayerTiling* pending_tiling =
1554 pending_layer_->tilings()->tiling_at(i); 1512 pending_layer_->tilings()->tiling_at(i);
1555 1513
1556 ASSERT_TRUE(active_tiling); 1514 ASSERT_TRUE(active_tiling);
1557 ASSERT_TRUE(pending_tiling); 1515 ASSERT_TRUE(pending_tiling);
1558 1516
1517 active_tiling->CreateAllTilesForTesting();
1518 pending_tiling->CreateAllTilesForTesting();
1519
1559 EXPECT_TRUE(active_tiling->TileAt(0, 0)); 1520 EXPECT_TRUE(active_tiling->TileAt(0, 0));
1560 EXPECT_TRUE(active_tiling->TileAt(1, 0)); 1521 EXPECT_TRUE(active_tiling->TileAt(1, 0));
1561 EXPECT_TRUE(active_tiling->TileAt(0, 1)); 1522 EXPECT_TRUE(active_tiling->TileAt(0, 1));
1562 EXPECT_TRUE(active_tiling->TileAt(1, 1)); 1523 EXPECT_TRUE(active_tiling->TileAt(1, 1));
1563 1524
1564 EXPECT_TRUE(pending_tiling->TileAt(0, 0)); 1525 EXPECT_TRUE(pending_tiling->TileAt(0, 0));
1565 EXPECT_TRUE(pending_tiling->TileAt(1, 0)); 1526 EXPECT_TRUE(pending_tiling->TileAt(1, 0));
1566 EXPECT_TRUE(pending_tiling->TileAt(0, 1)); 1527 EXPECT_TRUE(pending_tiling->TileAt(0, 1));
1567 EXPECT_TRUE(pending_tiling->TileAt(1, 1)); 1528 EXPECT_TRUE(pending_tiling->TileAt(1, 1));
1568 1529
1569 EXPECT_NE(active_tiling->TileAt(0, 0), pending_tiling->TileAt(0, 0)); 1530 EXPECT_EQ(active_tiling->TileAt(0, 0), pending_tiling->TileAt(0, 0));
1570 EXPECT_EQ(active_tiling->TileAt(1, 0), pending_tiling->TileAt(1, 0)); 1531 EXPECT_EQ(active_tiling->TileAt(1, 0), pending_tiling->TileAt(1, 0));
1571 EXPECT_EQ(active_tiling->TileAt(0, 1), pending_tiling->TileAt(0, 1)); 1532 EXPECT_EQ(active_tiling->TileAt(0, 1), pending_tiling->TileAt(0, 1));
1572 EXPECT_EQ(active_tiling->TileAt(1, 1), pending_tiling->TileAt(1, 1)); 1533 EXPECT_EQ(active_tiling->TileAt(1, 1), pending_tiling->TileAt(1, 1));
1573 } 1534 }
1574 } 1535 }
1575 1536
1576 TEST_F(PictureLayerImplTest, RemoveInvalidPendingTreeTilesOnSync) { 1537 TEST_F(PictureLayerImplTest, RemoveInvalidPendingTreeTilesOnSync) {
1577 SetupDefaultTrees(gfx::Size(1500, 1500)); 1538 SetupDefaultTrees(gfx::Size(1500, 1500));
1578 AddDefaultTilingsWithInvalidation(gfx::Rect()); 1539 AddDefaultTilingsWithInvalidation(gfx::Rect());
1579 1540
(...skipping 13 matching lines...) Expand all
1593 EXPECT_EQ(3u, active_layer_->num_tilings()); 1554 EXPECT_EQ(3u, active_layer_->num_tilings());
1594 EXPECT_EQ(3u, pending_layer_->num_tilings()); 1555 EXPECT_EQ(3u, pending_layer_->num_tilings());
1595 for (size_t i = 0; i < active_layer_->num_tilings(); ++i) { 1556 for (size_t i = 0; i < active_layer_->num_tilings(); ++i) {
1596 PictureLayerTiling* active_tiling = active_layer_->tilings()->tiling_at(i); 1557 PictureLayerTiling* active_tiling = active_layer_->tilings()->tiling_at(i);
1597 PictureLayerTiling* pending_tiling = 1558 PictureLayerTiling* pending_tiling =
1598 pending_layer_->tilings()->tiling_at(i); 1559 pending_layer_->tilings()->tiling_at(i);
1599 1560
1600 ASSERT_TRUE(active_tiling); 1561 ASSERT_TRUE(active_tiling);
1601 ASSERT_TRUE(pending_tiling); 1562 ASSERT_TRUE(pending_tiling);
1602 1563
1564 active_tiling->CreateAllTilesForTesting();
1565 pending_tiling->CreateAllTilesForTesting();
1566
1603 EXPECT_TRUE(active_tiling->TileAt(0, 0)); 1567 EXPECT_TRUE(active_tiling->TileAt(0, 0));
1604 EXPECT_TRUE(active_tiling->TileAt(1, 0)); 1568 EXPECT_TRUE(active_tiling->TileAt(1, 0));
1605 EXPECT_TRUE(active_tiling->TileAt(0, 1)); 1569 EXPECT_TRUE(active_tiling->TileAt(0, 1));
1606 EXPECT_TRUE(active_tiling->TileAt(1, 1)); 1570 EXPECT_TRUE(active_tiling->TileAt(1, 1));
1607 1571
1608 EXPECT_TRUE(pending_tiling->TileAt(0, 0)); 1572 EXPECT_TRUE(pending_tiling->TileAt(0, 0));
1609 EXPECT_TRUE(pending_tiling->TileAt(1, 0)); 1573 EXPECT_TRUE(pending_tiling->TileAt(1, 0));
1610 EXPECT_TRUE(pending_tiling->TileAt(0, 1)); 1574 EXPECT_TRUE(pending_tiling->TileAt(0, 1));
1611 EXPECT_TRUE(pending_tiling->TileAt(1, 1)); 1575 EXPECT_TRUE(pending_tiling->TileAt(1, 1));
1612 1576
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
2059 tilings.push_back(pending_layer_->AddTiling(2.0f)); 2023 tilings.push_back(pending_layer_->AddTiling(2.0f));
2060 2024
2061 host_impl_.SetViewportSize(gfx::Size(500, 500)); 2025 host_impl_.SetViewportSize(gfx::Size(500, 500));
2062 host_impl_.pending_tree()->UpdateDrawProperties(); 2026 host_impl_.pending_tree()->UpdateDrawProperties();
2063 2027
2064 std::vector<Tile*> all_tiles; 2028 std::vector<Tile*> all_tiles;
2065 for (std::vector<PictureLayerTiling*>::iterator tiling_iterator = 2029 for (std::vector<PictureLayerTiling*>::iterator tiling_iterator =
2066 tilings.begin(); 2030 tilings.begin();
2067 tiling_iterator != tilings.end(); 2031 tiling_iterator != tilings.end();
2068 ++tiling_iterator) { 2032 ++tiling_iterator) {
2033 (*tiling_iterator)->CreateAllTilesForTesting();
2069 std::vector<Tile*> tiles = (*tiling_iterator)->AllTilesForTesting(); 2034 std::vector<Tile*> tiles = (*tiling_iterator)->AllTilesForTesting();
2070 std::copy(tiles.begin(), tiles.end(), std::back_inserter(all_tiles)); 2035 std::copy(tiles.begin(), tiles.end(), std::back_inserter(all_tiles));
2071 } 2036 }
2072 2037
2073 std::set<Tile*> all_tiles_set(all_tiles.begin(), all_tiles.end()); 2038 std::set<Tile*> all_tiles_set(all_tiles.begin(), all_tiles.end());
2074 2039
2075 bool mark_required = false; 2040 bool mark_required = false;
2076 size_t number_of_marked_tiles = 0u; 2041 size_t number_of_marked_tiles = 0u;
2077 size_t number_of_unmarked_tiles = 0u; 2042 size_t number_of_unmarked_tiles = 0u;
2078 for (size_t i = 0; i < tilings.size(); ++i) { 2043 for (size_t i = 0; i < tilings.size(); ++i) {
2079 PictureLayerTiling* tiling = tilings.at(i); 2044 PictureLayerTiling* tiling = tilings.at(i);
2080 for (PictureLayerTiling::CoverageIterator iter( 2045 for (PictureLayerTiling::CoverageIterator iter(
2081 tiling, 2046 tiling,
2082 pending_layer_->contents_scale_x(), 2047 pending_layer_->contents_scale_x(),
2083 pending_layer_->visible_content_rect()); 2048 pending_layer_->visible_content_rect());
2084 iter; 2049 iter;
2085 ++iter) { 2050 ++iter) {
2086 if (mark_required) { 2051 if (mark_required) {
2087 number_of_marked_tiles++; 2052 number_of_marked_tiles++;
2088 iter->MarkRequiredForActivation(); 2053 iter->set_required_for_activation(true);
2089 } else { 2054 } else {
2090 number_of_unmarked_tiles++; 2055 number_of_unmarked_tiles++;
2091 } 2056 }
2092 mark_required = !mark_required; 2057 mark_required = !mark_required;
2093 } 2058 }
2094 } 2059 }
2095 2060
2096 // Sanity checks. 2061 // Sanity checks.
2097 EXPECT_EQ(91u, all_tiles.size()); 2062 EXPECT_EQ(91u, all_tiles.size());
2098 EXPECT_EQ(91u, all_tiles_set.size()); 2063 EXPECT_EQ(91u, all_tiles_set.size());
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
2202 scoped_refptr<FakePicturePileImpl> pending_pile = 2167 scoped_refptr<FakePicturePileImpl> pending_pile =
2203 FakePicturePileImpl::CreateFilledPile(layer_bounds, layer_bounds); 2168 FakePicturePileImpl::CreateFilledPile(layer_bounds, layer_bounds);
2204 SetupPendingTree(pending_pile); 2169 SetupPendingTree(pending_pile);
2205 pending_layer_->SetBounds(layer_bounds); 2170 pending_layer_->SetBounds(layer_bounds);
2206 ActivateTree(); 2171 ActivateTree();
2207 active_layer_->set_fixed_tile_size(tile_size); 2172 active_layer_->set_fixed_tile_size(tile_size);
2208 2173
2209 host_impl_.SetViewportSize(viewport_size); 2174 host_impl_.SetViewportSize(viewport_size);
2210 host_impl_.active_tree()->UpdateDrawProperties(); 2175 host_impl_.active_tree()->UpdateDrawProperties();
2211 2176
2177 active_layer_->HighResTiling()->CreateAllTilesForTesting();
2212 std::vector<Tile*> tiles = 2178 std::vector<Tile*> tiles =
2213 active_layer_->HighResTiling()->AllTilesForTesting(); 2179 active_layer_->HighResTiling()->AllTilesForTesting();
2214 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); 2180 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles);
2215 2181
2216 { 2182 {
2217 SCOPED_TRACE("No occlusion"); 2183 SCOPED_TRACE("No occlusion");
2218 gfx::Rect occluded; 2184 gfx::Rect occluded;
2219 impl.AppendQuadsWithOcclusion(active_layer_, occluded); 2185 impl.AppendQuadsWithOcclusion(active_layer_, occluded);
2220 2186
2221 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), 2187 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(),
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
2293 gfx::Size tile_size(100, 100); 2259 gfx::Size tile_size(100, 100);
2294 gfx::Size layer_bounds(1000, 1000); 2260 gfx::Size layer_bounds(1000, 1000);
2295 2261
2296 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size); 2262 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size);
2297 2263
2298 // Make sure some tiles are not shared. 2264 // Make sure some tiles are not shared.
2299 pending_layer_->set_invalidation(gfx::Rect(gfx::Point(50, 50), tile_size)); 2265 pending_layer_->set_invalidation(gfx::Rect(gfx::Point(50, 50), tile_size));
2300 2266
2301 CreateHighLowResAndSetAllTilesVisible(); 2267 CreateHighLowResAndSetAllTilesVisible();
2302 active_layer_->SetAllTilesReady(); 2268 active_layer_->SetAllTilesReady();
2303 pending_layer_->MarkVisibleResourcesAsRequired();
2304 2269
2305 // All pending layer tiles required are not ready. 2270 // All pending layer tiles required are not ready.
2306 EXPECT_FALSE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); 2271 EXPECT_FALSE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw());
2307 2272
2308 // Initialize all low-res tiles. 2273 // Initialize all low-res tiles.
2309 pending_layer_->SetAllTilesReadyInTiling(pending_layer_->LowResTiling()); 2274 pending_layer_->SetAllTilesReadyInTiling(pending_layer_->LowResTiling());
2310 2275
2311 // Low-res tiles should not be enough. 2276 // Low-res tiles should not be enough.
2312 EXPECT_FALSE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); 2277 EXPECT_FALSE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw());
2313 2278
2314 // Initialize remaining tiles. 2279 // Initialize remaining tiles.
2315 pending_layer_->SetAllTilesReady(); 2280 pending_layer_->SetAllTilesReady();
2316 2281
2317 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); 2282 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw());
2318 } 2283 }
2319 2284
2320 TEST_F(PictureLayerImplTest, HighResReadyToDrawNotEnoughToActivate) {
2321 gfx::Size tile_size(100, 100);
2322 gfx::Size layer_bounds(1000, 1000);
2323
2324 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size);
2325
2326 // Make sure some tiles are not shared.
2327 pending_layer_->set_invalidation(gfx::Rect(gfx::Point(50, 50), tile_size));
2328
2329 CreateHighLowResAndSetAllTilesVisible();
2330 active_layer_->SetAllTilesReady();
2331 pending_layer_->MarkVisibleResourcesAsRequired();
2332
2333 // All pending layer tiles required are not ready.
2334 EXPECT_FALSE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw());
2335
2336 // Initialize all high-res tiles.
2337 pending_layer_->SetAllTilesReadyInTiling(pending_layer_->HighResTiling());
2338
2339 // High-res tiles should not be enough.
2340 EXPECT_FALSE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw());
2341
2342 // Initialize remaining tiles.
2343 pending_layer_->SetAllTilesReady();
2344
2345 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw());
2346 }
2347
2348 class NoLowResTilingsSettings : public ImplSidePaintingSettings { 2285 class NoLowResTilingsSettings : public ImplSidePaintingSettings {
2349 public: 2286 public:
2350 NoLowResTilingsSettings() { create_low_res_tiling = false; } 2287 NoLowResTilingsSettings() { create_low_res_tiling = false; }
2351 }; 2288 };
2352 2289
2353 class NoLowResPictureLayerImplTest : public PictureLayerImplTest { 2290 class NoLowResPictureLayerImplTest : public PictureLayerImplTest {
2354 public: 2291 public:
2355 NoLowResPictureLayerImplTest() 2292 NoLowResPictureLayerImplTest()
2356 : PictureLayerImplTest(NoLowResTilingsSettings()) {} 2293 : PictureLayerImplTest(NoLowResTilingsSettings()) {}
2357 }; 2294 };
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2409 7.26f, // ideal contents scale 2346 7.26f, // ideal contents scale
2410 2.2f, // device scale 2347 2.2f, // device scale
2411 3.3f, // page scale 2348 3.3f, // page scale
2412 1.f, // maximum animation scale 2349 1.f, // maximum animation scale
2413 false); 2350 false);
2414 ASSERT_EQ(3u, pending_layer_->tilings()->num_tilings()); 2351 ASSERT_EQ(3u, pending_layer_->tilings()->num_tilings());
2415 EXPECT_FLOAT_EQ(7.26f, 2352 EXPECT_FLOAT_EQ(7.26f,
2416 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 2353 pending_layer_->tilings()->tiling_at(0)->contents_scale());
2417 } 2354 }
2418 2355
2419 TEST_F(NoLowResPictureLayerImplTest, MarkRequiredNullTiles) {
2420 gfx::Size tile_size(100, 100);
2421 gfx::Size layer_bounds(1000, 1000);
2422
2423 scoped_refptr<FakePicturePileImpl> pending_pile =
2424 FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
2425 // Layers with entirely empty piles can't get tilings.
2426 pending_pile->AddRecordingAt(0, 0);
2427
2428 SetupPendingTree(pending_pile);
2429
2430 ASSERT_TRUE(pending_layer_->CanHaveTilings());
2431 pending_layer_->AddTiling(1.0f);
2432 pending_layer_->AddTiling(2.0f);
2433
2434 // It should be safe to call this (and MarkVisibleResourcesAsRequired)
2435 // on a layer with no recordings.
2436 host_impl_.pending_tree()->UpdateDrawProperties();
2437 pending_layer_->MarkVisibleResourcesAsRequired();
2438 }
2439
2440 TEST_F(NoLowResPictureLayerImplTest, NothingRequiredIfAllHighResTilesShared) { 2356 TEST_F(NoLowResPictureLayerImplTest, NothingRequiredIfAllHighResTilesShared) {
2441 gfx::Size layer_bounds(400, 400); 2357 gfx::Size layer_bounds(400, 400);
2442 gfx::Size tile_size(100, 100); 2358 gfx::Size tile_size(100, 100);
2443 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size); 2359 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size);
2444 2360
2445 CreateHighLowResAndSetAllTilesVisible(); 2361 CreateHighLowResAndSetAllTilesVisible();
2446 2362
2447 Tile* some_active_tile = 2363 Tile* some_active_tile =
2448 active_layer_->HighResTiling()->AllTilesForTesting()[0]; 2364 active_layer_->HighResTiling()->AllTilesForTesting()[0];
2449 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); 2365 EXPECT_FALSE(some_active_tile->IsReadyToDraw());
2450 2366
2451 // All tiles shared (no invalidation), so even though the active tree's 2367 // All tiles shared (no invalidation), so even though the active tree's
2452 // tiles aren't ready, there is nothing required. 2368 // tiles aren't ready, there is nothing required.
2453 pending_layer_->MarkVisibleResourcesAsRequired();
2454 AssertNoTilesRequired(pending_layer_->HighResTiling()); 2369 AssertNoTilesRequired(pending_layer_->HighResTiling());
2455 if (host_impl_.settings().create_low_res_tiling) { 2370 if (host_impl_.settings().create_low_res_tiling) {
2456 AssertNoTilesRequired(pending_layer_->LowResTiling()); 2371 AssertNoTilesRequired(pending_layer_->LowResTiling());
2457 } 2372 }
2458 } 2373 }
2459 2374
2460 TEST_F(NoLowResPictureLayerImplTest, NothingRequiredIfActiveMissingTiles) { 2375 TEST_F(NoLowResPictureLayerImplTest, NothingRequiredIfActiveMissingTiles) {
2461 gfx::Size layer_bounds(400, 400); 2376 gfx::Size layer_bounds(400, 400);
2462 gfx::Size tile_size(100, 100); 2377 gfx::Size tile_size(100, 100);
2463 scoped_refptr<FakePicturePileImpl> pending_pile = 2378 scoped_refptr<FakePicturePileImpl> pending_pile =
(...skipping 12 matching lines...) Expand all
2476 CreateHighLowResAndSetAllTilesVisible(); 2391 CreateHighLowResAndSetAllTilesVisible();
2477 2392
2478 // Active layer has tilings, but no tiles due to missing recordings. 2393 // Active layer has tilings, but no tiles due to missing recordings.
2479 EXPECT_TRUE(active_layer_->CanHaveTilings()); 2394 EXPECT_TRUE(active_layer_->CanHaveTilings());
2480 EXPECT_EQ(active_layer_->tilings()->num_tilings(), 2395 EXPECT_EQ(active_layer_->tilings()->num_tilings(),
2481 host_impl_.settings().create_low_res_tiling ? 2u : 1u); 2396 host_impl_.settings().create_low_res_tiling ? 2u : 1u);
2482 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); 2397 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u);
2483 2398
2484 // Since the active layer has no tiles at all, the pending layer doesn't 2399 // Since the active layer has no tiles at all, the pending layer doesn't
2485 // need content in order to activate. 2400 // need content in order to activate.
2486 pending_layer_->MarkVisibleResourcesAsRequired();
2487 AssertNoTilesRequired(pending_layer_->HighResTiling()); 2401 AssertNoTilesRequired(pending_layer_->HighResTiling());
2488 if (host_impl_.settings().create_low_res_tiling) 2402 if (host_impl_.settings().create_low_res_tiling)
2489 AssertNoTilesRequired(pending_layer_->LowResTiling()); 2403 AssertNoTilesRequired(pending_layer_->LowResTiling());
2490 } 2404 }
2491 2405
2492 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { 2406 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
2493 base::TimeTicks time_ticks; 2407 base::TimeTicks time_ticks;
2494 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 2408 host_impl_.SetCurrentFrameTimeTicks(time_ticks);
2495 2409
2496 gfx::Size tile_size(100, 100); 2410 gfx::Size tile_size(100, 100);
(...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after
3046 layer1->SetBounds(layer_bounds); 2960 layer1->SetBounds(layer_bounds);
3047 layer1->SetContentBounds(layer_bounds); 2961 layer1->SetContentBounds(layer_bounds);
3048 layer1->SetDrawsContent(true); 2962 layer1->SetDrawsContent(true);
3049 layer1->SetContentsOpaque(true); 2963 layer1->SetContentsOpaque(true);
3050 layer1->SetPosition(occluding_layer_position); 2964 layer1->SetPosition(occluding_layer_position);
3051 2965
3052 host_impl_.pending_tree()->UpdateDrawProperties(); 2966 host_impl_.pending_tree()->UpdateDrawProperties();
3053 2967
3054 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 2968 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
3055 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 2969 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
2970 tiling->CreateAllTilesForTesting();
3056 2971
3057 occluded_tile_count = 0; 2972 occluded_tile_count = 0;
3058 for (PictureLayerTiling::CoverageIterator iter( 2973 for (PictureLayerTiling::CoverageIterator iter(
3059 tiling, 2974 tiling,
3060 pending_layer_->contents_scale_x(), 2975 pending_layer_->contents_scale_x(),
3061 gfx::Rect(layer_bounds)); 2976 gfx::Rect(layer_bounds));
3062 iter; 2977 iter;
3063 ++iter) { 2978 ++iter) {
3064 if (!*iter) 2979 if (!*iter)
3065 continue; 2980 continue;
(...skipping 16 matching lines...) Expand all
3082 } 2997 }
3083 } 2998 }
3084 2999
3085 // Full occlusion. 3000 // Full occlusion.
3086 layer1->SetPosition(gfx::PointF(0, 0)); 3001 layer1->SetPosition(gfx::PointF(0, 0));
3087 3002
3088 host_impl_.pending_tree()->UpdateDrawProperties(); 3003 host_impl_.pending_tree()->UpdateDrawProperties();
3089 3004
3090 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 3005 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
3091 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 3006 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
3007 tiling->CreateAllTilesForTesting();
3092 3008
3093 occluded_tile_count = 0; 3009 occluded_tile_count = 0;
3094 for (PictureLayerTiling::CoverageIterator iter( 3010 for (PictureLayerTiling::CoverageIterator iter(
3095 tiling, 3011 tiling,
3096 pending_layer_->contents_scale_x(), 3012 pending_layer_->contents_scale_x(),
3097 gfx::Rect(layer_bounds)); 3013 gfx::Rect(layer_bounds));
3098 iter; 3014 iter;
3099 ++iter) { 3015 ++iter) {
3100 if (!*iter) 3016 if (!*iter)
3101 continue; 3017 continue;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
3151 3067
3152 host_impl_.SetViewportSize(viewport_size); 3068 host_impl_.SetViewportSize(viewport_size);
3153 host_impl_.pending_tree()->UpdateDrawProperties(); 3069 host_impl_.pending_tree()->UpdateDrawProperties();
3154 3070
3155 int tiling_count = 0; 3071 int tiling_count = 0;
3156 int occluded_tile_count = 0; 3072 int occluded_tile_count = 0;
3157 for (std::vector<PictureLayerTiling*>::iterator tiling_iterator = 3073 for (std::vector<PictureLayerTiling*>::iterator tiling_iterator =
3158 tilings.begin(); 3074 tilings.begin();
3159 tiling_iterator != tilings.end(); 3075 tiling_iterator != tilings.end();
3160 ++tiling_iterator) { 3076 ++tiling_iterator) {
3077 (*tiling_iterator)->CreateAllTilesForTesting();
3161 std::vector<Tile*> tiles = (*tiling_iterator)->AllTilesForTesting(); 3078 std::vector<Tile*> tiles = (*tiling_iterator)->AllTilesForTesting();
3162 3079
3163 occluded_tile_count = 0; 3080 occluded_tile_count = 0;
3164 for (size_t i = 0; i < tiles.size(); ++i) { 3081 for (size_t i = 0; i < tiles.size(); ++i) {
3165 if (tiles[i]->is_occluded(PENDING_TREE)) { 3082 if (tiles[i]->is_occluded(PENDING_TREE)) {
3166 gfx::Rect scaled_content_rect = ScaleToEnclosingRect( 3083 gfx::Rect scaled_content_rect = ScaleToEnclosingRect(
3167 tiles[i]->content_rect(), 1.0f / tiles[i]->contents_scale()); 3084 tiles[i]->content_rect(), 1.0f / tiles[i]->contents_scale());
3168 EXPECT_GE(scaled_content_rect.x(), occluding_layer_position.x()); 3085 EXPECT_GE(scaled_content_rect.x(), occluding_layer_position.x());
3169 occluded_tile_count++; 3086 occluded_tile_count++;
3170 } 3087 }
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
3291 // Unshared tiles are occluded on the active tree iff they lie beneath 3208 // Unshared tiles are occluded on the active tree iff they lie beneath
3292 // the occluding layer. 3209 // the occluding layer.
3293 EXPECT_EQ(tile->is_occluded(ACTIVE_TREE), 3210 EXPECT_EQ(tile->is_occluded(ACTIVE_TREE),
3294 scaled_content_rect.x() >= occluding_layer_position.x()); 3211 scaled_content_rect.x() >= occluding_layer_position.x());
3295 } 3212 }
3296 } 3213 }
3297 } 3214 }
3298 } 3215 }
3299 } // namespace 3216 } // namespace
3300 } // namespace cc 3217 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698