Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 323 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); | 323 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); |
| 324 EXPECT_GT(tilings->num_tilings(), 0u); | 324 EXPECT_GT(tilings->num_tilings(), 0u); |
| 325 for (size_t i = 0; i < tilings->num_tilings(); ++i) | 325 for (size_t i = 0; i < tilings->num_tilings(); ++i) |
| 326 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get()); | 326 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get()); |
| 327 } | 327 } |
| 328 | 328 |
| 329 TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) { | 329 TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) { |
| 330 base::TimeTicks time_ticks; | 330 base::TimeTicks time_ticks; |
| 331 time_ticks += base::TimeDelta::FromMilliseconds(1); | 331 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 332 host_impl_.SetCurrentBeginFrameArgs( | 332 host_impl_.SetCurrentBeginFrameArgs( |
| 333 CreateBeginFrameArgsForTesting(time_ticks)); | 333 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
|
danakj
2014/11/19 15:46:00
Is there any need to pass a correct FROM_HERE in t
mithro-old
2014/11/20 04:30:13
It actually is *super* useful in tests when things
| |
| 334 gfx::Size tile_size(100, 100); | 334 gfx::Size tile_size(100, 100); |
| 335 gfx::Size layer_bounds(400, 400); | 335 gfx::Size layer_bounds(400, 400); |
| 336 | 336 |
| 337 scoped_refptr<FakePicturePileImpl> pending_pile = | 337 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 338 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 338 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 339 scoped_refptr<FakePicturePileImpl> active_pile = | 339 scoped_refptr<FakePicturePileImpl> active_pile = |
| 340 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 340 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 341 | 341 |
| 342 SetupTrees(pending_pile, active_pile); | 342 SetupTrees(pending_pile, active_pile); |
| 343 | 343 |
| 344 Region invalidation; | 344 Region invalidation; |
| 345 AddDefaultTilingsWithInvalidation(invalidation); | 345 AddDefaultTilingsWithInvalidation(invalidation); |
| 346 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); | 346 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| 347 | 347 |
| 348 time_ticks += base::TimeDelta::FromMilliseconds(200); | 348 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 349 host_impl_.SetCurrentBeginFrameArgs( | 349 host_impl_.SetCurrentBeginFrameArgs( |
| 350 CreateBeginFrameArgsForTesting(time_ticks)); | 350 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 351 | 351 |
| 352 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the | 352 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the |
| 353 // identify transform for tile priority. | 353 // identify transform for tile priority. |
| 354 bool resourceless_software_draw = false; | 354 bool resourceless_software_draw = false; |
| 355 gfx::Rect viewport = gfx::Rect(layer_bounds), | 355 gfx::Rect viewport = gfx::Rect(layer_bounds), |
| 356 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100); | 356 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100); |
| 357 gfx::Transform transform, transform_for_tile_priority; | 357 gfx::Transform transform, transform_for_tile_priority; |
| 358 | 358 |
| 359 host_impl_.SetExternalDrawConstraints(transform, | 359 host_impl_.SetExternalDrawConstraints(transform, |
| 360 viewport, | 360 viewport, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 378 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, | 378 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, |
| 379 tiling->contents_scale())); | 379 tiling->contents_scale())); |
| 380 } | 380 } |
| 381 | 381 |
| 382 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in | 382 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in |
| 383 // screen space and the transform for tile priority is translated and | 383 // screen space and the transform for tile priority is translated and |
| 384 // rotated. The actual viewport for tile priority used by PictureLayerImpl | 384 // rotated. The actual viewport for tile priority used by PictureLayerImpl |
| 385 // should be (200, 200, 100, 100) applied with the said transform. | 385 // should be (200, 200, 100, 100) applied with the said transform. |
| 386 time_ticks += base::TimeDelta::FromMilliseconds(200); | 386 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 387 host_impl_.SetCurrentBeginFrameArgs( | 387 host_impl_.SetCurrentBeginFrameArgs( |
| 388 CreateBeginFrameArgsForTesting(time_ticks)); | 388 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 389 | 389 |
| 390 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100); | 390 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100); |
| 391 transform_for_tile_priority.Translate(100, 100); | 391 transform_for_tile_priority.Translate(100, 100); |
| 392 transform_for_tile_priority.Rotate(45); | 392 transform_for_tile_priority.Rotate(45); |
| 393 host_impl_.SetExternalDrawConstraints(transform, | 393 host_impl_.SetExternalDrawConstraints(transform, |
| 394 viewport, | 394 viewport, |
| 395 viewport, | 395 viewport, |
| 396 viewport_rect_for_tile_priority, | 396 viewport_rect_for_tile_priority, |
| 397 transform_for_tile_priority, | 397 transform_for_tile_priority, |
| 398 resourceless_software_draw); | 398 resourceless_software_draw); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 419 tiling->GetCurrentVisibleRectForTesting(), | 419 tiling->GetCurrentVisibleRectForTesting(), |
| 420 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, | 420 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, |
| 421 tiling->contents_scale())); | 421 tiling->contents_scale())); |
| 422 } | 422 } |
| 423 } | 423 } |
| 424 | 424 |
| 425 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { | 425 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
| 426 base::TimeTicks time_ticks; | 426 base::TimeTicks time_ticks; |
| 427 time_ticks += base::TimeDelta::FromMilliseconds(1); | 427 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 428 host_impl_.SetCurrentBeginFrameArgs( | 428 host_impl_.SetCurrentBeginFrameArgs( |
| 429 CreateBeginFrameArgsForTesting(time_ticks)); | 429 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 430 | 430 |
| 431 gfx::Size tile_size(100, 100); | 431 gfx::Size tile_size(100, 100); |
| 432 gfx::Size layer_bounds(400, 400); | 432 gfx::Size layer_bounds(400, 400); |
| 433 | 433 |
| 434 scoped_refptr<FakePicturePileImpl> pending_pile = | 434 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 435 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 435 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 436 scoped_refptr<FakePicturePileImpl> active_pile = | 436 scoped_refptr<FakePicturePileImpl> active_pile = |
| 437 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 437 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 438 | 438 |
| 439 SetupTrees(pending_pile, active_pile); | 439 SetupTrees(pending_pile, active_pile); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 461 gfx::Rect visible_rect_for_tile_priority = | 461 gfx::Rect visible_rect_for_tile_priority = |
| 462 active_layer_->visible_rect_for_tile_priority(); | 462 active_layer_->visible_rect_for_tile_priority(); |
| 463 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 463 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); |
| 464 gfx::Transform screen_space_transform_for_tile_priority = | 464 gfx::Transform screen_space_transform_for_tile_priority = |
| 465 active_layer_->screen_space_transform(); | 465 active_layer_->screen_space_transform(); |
| 466 | 466 |
| 467 // Expand viewport and set it as invalid for prioritizing tiles. | 467 // Expand viewport and set it as invalid for prioritizing tiles. |
| 468 // Should update viewport and transform, but not update visible rect. | 468 // Should update viewport and transform, but not update visible rect. |
| 469 time_ticks += base::TimeDelta::FromMilliseconds(200); | 469 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 470 host_impl_.SetCurrentBeginFrameArgs( | 470 host_impl_.SetCurrentBeginFrameArgs( |
| 471 CreateBeginFrameArgsForTesting(time_ticks)); | 471 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 472 resourceless_software_draw = true; | 472 resourceless_software_draw = true; |
| 473 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 473 viewport = gfx::ScaleToEnclosingRect(viewport, 2); |
| 474 transform.Translate(1.f, 1.f); | 474 transform.Translate(1.f, 1.f); |
| 475 active_layer_->draw_properties().visible_content_rect = viewport; | 475 active_layer_->draw_properties().visible_content_rect = viewport; |
| 476 active_layer_->draw_properties().screen_space_transform = transform; | 476 active_layer_->draw_properties().screen_space_transform = transform; |
| 477 host_impl_.SetExternalDrawConstraints(transform, | 477 host_impl_.SetExternalDrawConstraints(transform, |
| 478 viewport, | 478 viewport, |
| 479 viewport, | 479 viewport, |
| 480 viewport, | 480 viewport, |
| 481 transform, | 481 transform, |
| 482 resourceless_software_draw); | 482 resourceless_software_draw); |
| 483 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 483 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 484 | 484 |
| 485 // Transform for tile priority is updated. | 485 // Transform for tile priority is updated. |
| 486 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, | 486 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, |
| 487 active_layer_->screen_space_transform()); | 487 active_layer_->screen_space_transform()); |
| 488 // Visible rect for tile priority retains old value. | 488 // Visible rect for tile priority retains old value. |
| 489 EXPECT_EQ(visible_rect_for_tile_priority, | 489 EXPECT_EQ(visible_rect_for_tile_priority, |
| 490 active_layer_->visible_rect_for_tile_priority()); | 490 active_layer_->visible_rect_for_tile_priority()); |
| 491 | 491 |
| 492 // Keep expanded viewport but mark it valid. Should update tile viewport. | 492 // Keep expanded viewport but mark it valid. Should update tile viewport. |
| 493 time_ticks += base::TimeDelta::FromMilliseconds(200); | 493 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 494 host_impl_.SetCurrentBeginFrameArgs( | 494 host_impl_.SetCurrentBeginFrameArgs( |
| 495 CreateBeginFrameArgsForTesting(time_ticks)); | 495 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 496 resourceless_software_draw = false; | 496 resourceless_software_draw = false; |
| 497 host_impl_.SetExternalDrawConstraints(transform, | 497 host_impl_.SetExternalDrawConstraints(transform, |
| 498 viewport, | 498 viewport, |
| 499 viewport, | 499 viewport, |
| 500 viewport, | 500 viewport, |
| 501 transform, | 501 transform, |
| 502 resourceless_software_draw); | 502 resourceless_software_draw); |
| 503 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 503 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 504 | 504 |
| 505 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, | 505 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, |
| (...skipping 1030 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1536 | 1536 |
| 1537 pending_layer_->set_fixed_tile_size(tile_size); | 1537 pending_layer_->set_fixed_tile_size(tile_size); |
| 1538 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 1538 ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
| 1539 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); | 1539 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); |
| 1540 host_impl_.pending_tree()->UpdateDrawProperties(); | 1540 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 1541 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority()); | 1541 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority()); |
| 1542 | 1542 |
| 1543 base::TimeTicks time_ticks; | 1543 base::TimeTicks time_ticks; |
| 1544 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1544 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 1545 host_impl_.SetCurrentBeginFrameArgs( | 1545 host_impl_.SetCurrentBeginFrameArgs( |
| 1546 CreateBeginFrameArgsForTesting(time_ticks)); | 1546 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1547 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 1547 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 1548 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution()); | 1548 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution()); |
| 1549 | 1549 |
| 1550 int num_visible = 0; | 1550 int num_visible = 0; |
| 1551 int num_offscreen = 0; | 1551 int num_offscreen = 0; |
| 1552 | 1552 |
| 1553 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter; | 1553 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter; |
| 1554 ++iter) { | 1554 ++iter) { |
| 1555 const Tile* tile = *iter; | 1555 const Tile* tile = *iter; |
| 1556 DCHECK(tile); | 1556 DCHECK(tile); |
| 1557 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) { | 1557 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) { |
| 1558 EXPECT_TRUE(tile->required_for_activation()); | 1558 EXPECT_TRUE(tile->required_for_activation()); |
| 1559 num_visible++; | 1559 num_visible++; |
| 1560 } else { | 1560 } else { |
| 1561 EXPECT_FALSE(tile->required_for_activation()); | 1561 EXPECT_FALSE(tile->required_for_activation()); |
| 1562 num_offscreen++; | 1562 num_offscreen++; |
| 1563 } | 1563 } |
| 1564 } | 1564 } |
| 1565 | 1565 |
| 1566 EXPECT_GT(num_visible, 0); | 1566 EXPECT_GT(num_visible, 0); |
| 1567 EXPECT_GT(num_offscreen, 0); | 1567 EXPECT_GT(num_offscreen, 0); |
| 1568 } | 1568 } |
| 1569 | 1569 |
| 1570 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) { | 1570 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) { |
| 1571 base::TimeTicks time_ticks; | 1571 base::TimeTicks time_ticks; |
| 1572 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1572 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 1573 host_impl_.SetCurrentBeginFrameArgs( | 1573 host_impl_.SetCurrentBeginFrameArgs( |
| 1574 CreateBeginFrameArgsForTesting(time_ticks)); | 1574 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1575 | 1575 |
| 1576 gfx::Size tile_size(100, 100); | 1576 gfx::Size tile_size(100, 100); |
| 1577 gfx::Size layer_bounds(400, 400); | 1577 gfx::Size layer_bounds(400, 400); |
| 1578 gfx::Rect external_viewport_for_tile_priority(400, 200); | 1578 gfx::Rect external_viewport_for_tile_priority(400, 200); |
| 1579 gfx::Rect visible_content_rect(200, 400); | 1579 gfx::Rect visible_content_rect(200, 400); |
| 1580 | 1580 |
| 1581 scoped_refptr<FakePicturePileImpl> active_pile = | 1581 scoped_refptr<FakePicturePileImpl> active_pile = |
| 1582 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1582 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 1583 scoped_refptr<FakePicturePileImpl> pending_pile = | 1583 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 1584 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1584 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 1600 external_viewport_for_tile_priority, | 1600 external_viewport_for_tile_priority, |
| 1601 transform_for_tile_priority, | 1601 transform_for_tile_priority, |
| 1602 resourceless_software_draw); | 1602 resourceless_software_draw); |
| 1603 host_impl_.pending_tree()->UpdateDrawProperties(); | 1603 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 1604 | 1604 |
| 1605 // Set visible content rect that is different from | 1605 // Set visible content rect that is different from |
| 1606 // external_viewport_for_tile_priority. | 1606 // external_viewport_for_tile_priority. |
| 1607 pending_layer_->draw_properties().visible_content_rect = visible_content_rect; | 1607 pending_layer_->draw_properties().visible_content_rect = visible_content_rect; |
| 1608 time_ticks += base::TimeDelta::FromMilliseconds(200); | 1608 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 1609 host_impl_.SetCurrentBeginFrameArgs( | 1609 host_impl_.SetCurrentBeginFrameArgs( |
| 1610 CreateBeginFrameArgsForTesting(time_ticks)); | 1610 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1611 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 1611 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 1612 | 1612 |
| 1613 // Intersect the two rects. Any tile outside should not be required for | 1613 // Intersect the two rects. Any tile outside should not be required for |
| 1614 // activation. | 1614 // activation. |
| 1615 gfx::Rect viewport_for_tile_priority = | 1615 gfx::Rect viewport_for_tile_priority = |
| 1616 pending_layer_->GetViewportForTilePriorityInContentSpace(); | 1616 pending_layer_->GetViewportForTilePriorityInContentSpace(); |
| 1617 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect()); | 1617 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect()); |
| 1618 | 1618 |
| 1619 int num_inside = 0; | 1619 int num_inside = 0; |
| 1620 int num_outside = 0; | 1620 int num_outside = 0; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1653 // All tiles in activation rect is ready to draw. | 1653 // All tiles in activation rect is ready to draw. |
| 1654 EXPECT_EQ(0u, data.num_missing_tiles); | 1654 EXPECT_EQ(0u, data.num_missing_tiles); |
| 1655 EXPECT_EQ(0u, data.num_incomplete_tiles); | 1655 EXPECT_EQ(0u, data.num_incomplete_tiles); |
| 1656 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); | 1656 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); |
| 1657 } | 1657 } |
| 1658 | 1658 |
| 1659 TEST_F(PictureLayerImplTest, HighResTileIsComplete) { | 1659 TEST_F(PictureLayerImplTest, HighResTileIsComplete) { |
| 1660 base::TimeTicks time_ticks; | 1660 base::TimeTicks time_ticks; |
| 1661 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1661 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 1662 host_impl_.SetCurrentBeginFrameArgs( | 1662 host_impl_.SetCurrentBeginFrameArgs( |
| 1663 CreateBeginFrameArgsForTesting(time_ticks)); | 1663 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1664 | 1664 |
| 1665 gfx::Size tile_size(100, 100); | 1665 gfx::Size tile_size(100, 100); |
| 1666 gfx::Size layer_bounds(200, 200); | 1666 gfx::Size layer_bounds(200, 200); |
| 1667 | 1667 |
| 1668 host_impl_.SetViewportSize(layer_bounds); | 1668 host_impl_.SetViewportSize(layer_bounds); |
| 1669 | 1669 |
| 1670 scoped_refptr<FakePicturePileImpl> pending_pile = | 1670 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 1671 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1671 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 1672 SetupPendingTree(pending_pile); | 1672 SetupPendingTree(pending_pile); |
| 1673 ActivateTree(); | 1673 ActivateTree(); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 1689 EXPECT_EQ(9u, render_pass->quad_list.size()); | 1689 EXPECT_EQ(9u, render_pass->quad_list.size()); |
| 1690 EXPECT_EQ(0u, data.num_missing_tiles); | 1690 EXPECT_EQ(0u, data.num_missing_tiles); |
| 1691 EXPECT_EQ(0u, data.num_incomplete_tiles); | 1691 EXPECT_EQ(0u, data.num_incomplete_tiles); |
| 1692 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); | 1692 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); |
| 1693 } | 1693 } |
| 1694 | 1694 |
| 1695 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) { | 1695 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) { |
| 1696 base::TimeTicks time_ticks; | 1696 base::TimeTicks time_ticks; |
| 1697 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1697 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 1698 host_impl_.SetCurrentBeginFrameArgs( | 1698 host_impl_.SetCurrentBeginFrameArgs( |
| 1699 CreateBeginFrameArgsForTesting(time_ticks)); | 1699 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1700 | 1700 |
| 1701 gfx::Size tile_size(100, 100); | 1701 gfx::Size tile_size(100, 100); |
| 1702 gfx::Size layer_bounds(200, 200); | 1702 gfx::Size layer_bounds(200, 200); |
| 1703 | 1703 |
| 1704 host_impl_.SetViewportSize(layer_bounds); | 1704 host_impl_.SetViewportSize(layer_bounds); |
| 1705 | 1705 |
| 1706 scoped_refptr<FakePicturePileImpl> pending_pile = | 1706 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 1707 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1707 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 1708 SetupPendingTree(pending_pile); | 1708 SetupPendingTree(pending_pile); |
| 1709 ActivateTree(); | 1709 ActivateTree(); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 1720 EXPECT_EQ(1u, render_pass->quad_list.size()); | 1720 EXPECT_EQ(1u, render_pass->quad_list.size()); |
| 1721 EXPECT_EQ(1u, data.num_missing_tiles); | 1721 EXPECT_EQ(1u, data.num_missing_tiles); |
| 1722 EXPECT_EQ(0u, data.num_incomplete_tiles); | 1722 EXPECT_EQ(0u, data.num_incomplete_tiles); |
| 1723 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); | 1723 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); |
| 1724 } | 1724 } |
| 1725 | 1725 |
| 1726 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) { | 1726 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) { |
| 1727 base::TimeTicks time_ticks; | 1727 base::TimeTicks time_ticks; |
| 1728 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1728 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 1729 host_impl_.SetCurrentBeginFrameArgs( | 1729 host_impl_.SetCurrentBeginFrameArgs( |
| 1730 CreateBeginFrameArgsForTesting(time_ticks)); | 1730 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1731 | 1731 |
| 1732 gfx::Size tile_size(100, 100); | 1732 gfx::Size tile_size(100, 100); |
| 1733 gfx::Size layer_bounds(200, 200); | 1733 gfx::Size layer_bounds(200, 200); |
| 1734 | 1734 |
| 1735 host_impl_.SetViewportSize(layer_bounds); | 1735 host_impl_.SetViewportSize(layer_bounds); |
| 1736 | 1736 |
| 1737 scoped_refptr<FakePicturePileImpl> pending_pile = | 1737 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 1738 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1738 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 1739 SetupPendingTree(pending_pile); | 1739 SetupPendingTree(pending_pile); |
| 1740 ActivateTree(); | 1740 ActivateTree(); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1754 EXPECT_EQ(1u, render_pass->quad_list.size()); | 1754 EXPECT_EQ(1u, render_pass->quad_list.size()); |
| 1755 EXPECT_EQ(0u, data.num_missing_tiles); | 1755 EXPECT_EQ(0u, data.num_missing_tiles); |
| 1756 EXPECT_EQ(1u, data.num_incomplete_tiles); | 1756 EXPECT_EQ(1u, data.num_incomplete_tiles); |
| 1757 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); | 1757 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); |
| 1758 } | 1758 } |
| 1759 | 1759 |
| 1760 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) { | 1760 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) { |
| 1761 base::TimeTicks time_ticks; | 1761 base::TimeTicks time_ticks; |
| 1762 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1762 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 1763 host_impl_.SetCurrentBeginFrameArgs( | 1763 host_impl_.SetCurrentBeginFrameArgs( |
| 1764 CreateBeginFrameArgsForTesting(time_ticks)); | 1764 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1765 | 1765 |
| 1766 gfx::Size tile_size(100, 100); | 1766 gfx::Size tile_size(100, 100); |
| 1767 gfx::Size layer_bounds(200, 200); | 1767 gfx::Size layer_bounds(200, 200); |
| 1768 | 1768 |
| 1769 host_impl_.SetViewportSize(layer_bounds); | 1769 host_impl_.SetViewportSize(layer_bounds); |
| 1770 | 1770 |
| 1771 scoped_refptr<FakePicturePileImpl> pending_pile = | 1771 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 1772 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1772 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 1773 SetupPendingTree(pending_pile); | 1773 SetupPendingTree(pending_pile); |
| 1774 ActivateTree(); | 1774 ActivateTree(); |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 1797 EXPECT_EQ(0u, data.num_missing_tiles); | 1797 EXPECT_EQ(0u, data.num_missing_tiles); |
| 1798 EXPECT_EQ(1u, data.num_incomplete_tiles); | 1798 EXPECT_EQ(1u, data.num_incomplete_tiles); |
| 1799 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); | 1799 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); |
| 1800 } | 1800 } |
| 1801 | 1801 |
| 1802 TEST_F(PictureLayerImplTest, | 1802 TEST_F(PictureLayerImplTest, |
| 1803 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) { | 1803 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) { |
| 1804 base::TimeTicks time_ticks; | 1804 base::TimeTicks time_ticks; |
| 1805 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1805 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 1806 host_impl_.SetCurrentBeginFrameArgs( | 1806 host_impl_.SetCurrentBeginFrameArgs( |
| 1807 CreateBeginFrameArgsForTesting(time_ticks)); | 1807 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 1808 | 1808 |
| 1809 gfx::Size tile_size(100, 100); | 1809 gfx::Size tile_size(100, 100); |
| 1810 gfx::Size layer_bounds(200, 200); | 1810 gfx::Size layer_bounds(200, 200); |
| 1811 | 1811 |
| 1812 host_impl_.SetViewportSize(layer_bounds); | 1812 host_impl_.SetViewportSize(layer_bounds); |
| 1813 | 1813 |
| 1814 scoped_refptr<FakePicturePileImpl> pending_pile = | 1814 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 1815 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1815 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 1816 scoped_refptr<FakePicturePileImpl> active_pile = | 1816 scoped_refptr<FakePicturePileImpl> active_pile = |
| 1817 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1817 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| (...skipping 924 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2742 page_scale, | 2742 page_scale, |
| 2743 maximum_animation_scale, | 2743 maximum_animation_scale, |
| 2744 animating_transform); | 2744 animating_transform); |
| 2745 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); | 2745 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); |
| 2746 } | 2746 } |
| 2747 | 2747 |
| 2748 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { | 2748 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { |
| 2749 base::TimeTicks time_ticks; | 2749 base::TimeTicks time_ticks; |
| 2750 time_ticks += base::TimeDelta::FromMilliseconds(1); | 2750 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 2751 host_impl_.SetCurrentBeginFrameArgs( | 2751 host_impl_.SetCurrentBeginFrameArgs( |
| 2752 CreateBeginFrameArgsForTesting(time_ticks)); | 2752 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 2753 | 2753 |
| 2754 gfx::Size tile_size(100, 100); | 2754 gfx::Size tile_size(100, 100); |
| 2755 gfx::Size layer_bounds(1000, 1000); | 2755 gfx::Size layer_bounds(1000, 1000); |
| 2756 | 2756 |
| 2757 scoped_refptr<FakePicturePileImpl> pending_pile = | 2757 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 2758 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 2758 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 2759 | 2759 |
| 2760 SetupPendingTree(pending_pile); | 2760 SetupPendingTree(pending_pile); |
| 2761 | 2761 |
| 2762 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 2762 ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2812 EXPECT_TRUE(reached_prepaint); | 2812 EXPECT_TRUE(reached_prepaint); |
| 2813 EXPECT_EQ(0u, non_ideal_tile_count); | 2813 EXPECT_EQ(0u, non_ideal_tile_count); |
| 2814 EXPECT_EQ(0u, low_res_tile_count); | 2814 EXPECT_EQ(0u, low_res_tile_count); |
| 2815 EXPECT_EQ(16u, high_res_tile_count); | 2815 EXPECT_EQ(16u, high_res_tile_count); |
| 2816 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, | 2816 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, |
| 2817 unique_tiles.size()); | 2817 unique_tiles.size()); |
| 2818 | 2818 |
| 2819 // No NOW tiles. | 2819 // No NOW tiles. |
| 2820 time_ticks += base::TimeDelta::FromMilliseconds(200); | 2820 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 2821 host_impl_.SetCurrentBeginFrameArgs( | 2821 host_impl_.SetCurrentBeginFrameArgs( |
| 2822 CreateBeginFrameArgsForTesting(time_ticks)); | 2822 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 2823 | 2823 |
| 2824 pending_layer_->draw_properties().visible_content_rect = | 2824 pending_layer_->draw_properties().visible_content_rect = |
| 2825 gfx::Rect(1100, 1100, 500, 500); | 2825 gfx::Rect(1100, 1100, 500, 500); |
| 2826 bool resourceless_software_draw = false; | 2826 bool resourceless_software_draw = false; |
| 2827 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 2827 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 2828 | 2828 |
| 2829 unique_tiles.clear(); | 2829 unique_tiles.clear(); |
| 2830 high_res_tile_count = 0u; | 2830 high_res_tile_count = 0u; |
| 2831 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); | 2831 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); |
| 2832 it; | 2832 it; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 2843 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; | 2843 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; |
| 2844 | 2844 |
| 2845 unique_tiles.insert(tile); | 2845 unique_tiles.insert(tile); |
| 2846 } | 2846 } |
| 2847 | 2847 |
| 2848 EXPECT_EQ(16u, high_res_tile_count); | 2848 EXPECT_EQ(16u, high_res_tile_count); |
| 2849 EXPECT_EQ(high_res_tile_count, unique_tiles.size()); | 2849 EXPECT_EQ(high_res_tile_count, unique_tiles.size()); |
| 2850 | 2850 |
| 2851 time_ticks += base::TimeDelta::FromMilliseconds(200); | 2851 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 2852 host_impl_.SetCurrentBeginFrameArgs( | 2852 host_impl_.SetCurrentBeginFrameArgs( |
| 2853 CreateBeginFrameArgsForTesting(time_ticks)); | 2853 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 2854 | 2854 |
| 2855 pending_layer_->draw_properties().visible_content_rect = | 2855 pending_layer_->draw_properties().visible_content_rect = |
| 2856 gfx::Rect(0, 0, 500, 500); | 2856 gfx::Rect(0, 0, 500, 500); |
| 2857 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 2857 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 2858 | 2858 |
| 2859 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting(); | 2859 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting(); |
| 2860 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin(); | 2860 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin(); |
| 2861 tile_it != high_res_tiles.end(); | 2861 tile_it != high_res_tiles.end(); |
| 2862 ++tile_it) { | 2862 ++tile_it) { |
| 2863 Tile* tile = *tile_it; | 2863 Tile* tile = *tile_it; |
| (...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3349 | 3349 |
| 3350 AssertNoTilesRequired(pending_layer_->HighResTiling()); | 3350 AssertNoTilesRequired(pending_layer_->HighResTiling()); |
| 3351 if (host_impl_.settings().create_low_res_tiling) | 3351 if (host_impl_.settings().create_low_res_tiling) |
| 3352 AssertNoTilesRequired(pending_layer_->LowResTiling()); | 3352 AssertNoTilesRequired(pending_layer_->LowResTiling()); |
| 3353 } | 3353 } |
| 3354 | 3354 |
| 3355 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { | 3355 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
| 3356 base::TimeTicks time_ticks; | 3356 base::TimeTicks time_ticks; |
| 3357 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3357 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 3358 host_impl_.SetCurrentBeginFrameArgs( | 3358 host_impl_.SetCurrentBeginFrameArgs( |
| 3359 CreateBeginFrameArgsForTesting(time_ticks)); | 3359 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 3360 | 3360 |
| 3361 gfx::Size tile_size(100, 100); | 3361 gfx::Size tile_size(100, 100); |
| 3362 gfx::Size layer_bounds(400, 400); | 3362 gfx::Size layer_bounds(400, 400); |
| 3363 | 3363 |
| 3364 scoped_refptr<FakePicturePileImpl> pending_pile = | 3364 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 3365 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3365 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 3366 scoped_refptr<FakePicturePileImpl> active_pile = | 3366 scoped_refptr<FakePicturePileImpl> active_pile = |
| 3367 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3367 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 3368 | 3368 |
| 3369 SetupTrees(pending_pile, active_pile); | 3369 SetupTrees(pending_pile, active_pile); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 3391 gfx::Rect visible_rect_for_tile_priority = | 3391 gfx::Rect visible_rect_for_tile_priority = |
| 3392 active_layer_->visible_rect_for_tile_priority(); | 3392 active_layer_->visible_rect_for_tile_priority(); |
| 3393 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 3393 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); |
| 3394 gfx::Transform screen_space_transform_for_tile_priority = | 3394 gfx::Transform screen_space_transform_for_tile_priority = |
| 3395 active_layer_->screen_space_transform(); | 3395 active_layer_->screen_space_transform(); |
| 3396 | 3396 |
| 3397 // Expand viewport and set it as invalid for prioritizing tiles. | 3397 // Expand viewport and set it as invalid for prioritizing tiles. |
| 3398 // Should update viewport and transform, but not update visible rect. | 3398 // Should update viewport and transform, but not update visible rect. |
| 3399 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3399 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 3400 host_impl_.SetCurrentBeginFrameArgs( | 3400 host_impl_.SetCurrentBeginFrameArgs( |
| 3401 CreateBeginFrameArgsForTesting(time_ticks)); | 3401 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 3402 resourceless_software_draw = true; | 3402 resourceless_software_draw = true; |
| 3403 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 3403 viewport = gfx::ScaleToEnclosingRect(viewport, 2); |
| 3404 transform.Translate(1.f, 1.f); | 3404 transform.Translate(1.f, 1.f); |
| 3405 active_layer_->draw_properties().visible_content_rect = viewport; | 3405 active_layer_->draw_properties().visible_content_rect = viewport; |
| 3406 active_layer_->draw_properties().screen_space_transform = transform; | 3406 active_layer_->draw_properties().screen_space_transform = transform; |
| 3407 host_impl_.SetExternalDrawConstraints(transform, | 3407 host_impl_.SetExternalDrawConstraints(transform, |
| 3408 viewport, | 3408 viewport, |
| 3409 viewport, | 3409 viewport, |
| 3410 viewport, | 3410 viewport, |
| 3411 transform, | 3411 transform, |
| 3412 resourceless_software_draw); | 3412 resourceless_software_draw); |
| 3413 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 3413 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 3414 | 3414 |
| 3415 // Transform for tile priority is updated. | 3415 // Transform for tile priority is updated. |
| 3416 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, | 3416 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, |
| 3417 active_layer_->screen_space_transform()); | 3417 active_layer_->screen_space_transform()); |
| 3418 // Visible rect for tile priority retains old value. | 3418 // Visible rect for tile priority retains old value. |
| 3419 EXPECT_EQ(visible_rect_for_tile_priority, | 3419 EXPECT_EQ(visible_rect_for_tile_priority, |
| 3420 active_layer_->visible_rect_for_tile_priority()); | 3420 active_layer_->visible_rect_for_tile_priority()); |
| 3421 | 3421 |
| 3422 // Keep expanded viewport but mark it valid. Should update tile viewport. | 3422 // Keep expanded viewport but mark it valid. Should update tile viewport. |
| 3423 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3423 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 3424 host_impl_.SetCurrentBeginFrameArgs( | 3424 host_impl_.SetCurrentBeginFrameArgs( |
| 3425 CreateBeginFrameArgsForTesting(time_ticks)); | 3425 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 3426 resourceless_software_draw = false; | 3426 resourceless_software_draw = false; |
| 3427 host_impl_.SetExternalDrawConstraints(transform, | 3427 host_impl_.SetExternalDrawConstraints(transform, |
| 3428 viewport, | 3428 viewport, |
| 3429 viewport, | 3429 viewport, |
| 3430 viewport, | 3430 viewport, |
| 3431 transform, | 3431 transform, |
| 3432 resourceless_software_draw); | 3432 resourceless_software_draw); |
| 3433 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 3433 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
| 3434 | 3434 |
| 3435 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, | 3435 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, |
| (...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3861 occluded_tile_count); | 3861 occluded_tile_count); |
| 3862 } | 3862 } |
| 3863 } | 3863 } |
| 3864 }; | 3864 }; |
| 3865 | 3865 |
| 3866 TEST_F(OcclusionTrackingPictureLayerImplTest, | 3866 TEST_F(OcclusionTrackingPictureLayerImplTest, |
| 3867 OccludedTilesSkippedDuringRasterization) { | 3867 OccludedTilesSkippedDuringRasterization) { |
| 3868 base::TimeTicks time_ticks; | 3868 base::TimeTicks time_ticks; |
| 3869 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3869 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 3870 host_impl_.SetCurrentBeginFrameArgs( | 3870 host_impl_.SetCurrentBeginFrameArgs( |
| 3871 CreateBeginFrameArgsForTesting(time_ticks)); | 3871 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 3872 | 3872 |
| 3873 gfx::Size tile_size(102, 102); | 3873 gfx::Size tile_size(102, 102); |
| 3874 gfx::Size layer_bounds(1000, 1000); | 3874 gfx::Size layer_bounds(1000, 1000); |
| 3875 gfx::Size viewport_size(500, 500); | 3875 gfx::Size viewport_size(500, 500); |
| 3876 gfx::Point occluding_layer_position(310, 0); | 3876 gfx::Point occluding_layer_position(310, 0); |
| 3877 | 3877 |
| 3878 scoped_refptr<FakePicturePileImpl> pending_pile = | 3878 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 3879 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3879 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 3880 SetupPendingTree(pending_pile); | 3880 SetupPendingTree(pending_pile); |
| 3881 pending_layer_->set_fixed_tile_size(tile_size); | 3881 pending_layer_->set_fixed_tile_size(tile_size); |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 3907 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); | 3907 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); |
| 3908 LayerImpl* layer1 = pending_layer_->children()[0]; | 3908 LayerImpl* layer1 = pending_layer_->children()[0]; |
| 3909 layer1->SetBounds(layer_bounds); | 3909 layer1->SetBounds(layer_bounds); |
| 3910 layer1->SetContentBounds(layer_bounds); | 3910 layer1->SetContentBounds(layer_bounds); |
| 3911 layer1->SetDrawsContent(true); | 3911 layer1->SetDrawsContent(true); |
| 3912 layer1->SetContentsOpaque(true); | 3912 layer1->SetContentsOpaque(true); |
| 3913 layer1->SetPosition(occluding_layer_position); | 3913 layer1->SetPosition(occluding_layer_position); |
| 3914 | 3914 |
| 3915 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3915 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 3916 host_impl_.SetCurrentBeginFrameArgs( | 3916 host_impl_.SetCurrentBeginFrameArgs( |
| 3917 CreateBeginFrameArgsForTesting(time_ticks)); | 3917 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 3918 host_impl_.pending_tree()->UpdateDrawProperties(); | 3918 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 3919 | 3919 |
| 3920 unoccluded_tile_count = 0; | 3920 unoccluded_tile_count = 0; |
| 3921 for (PictureLayerImpl::LayerRasterTileIterator it = | 3921 for (PictureLayerImpl::LayerRasterTileIterator it = |
| 3922 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); | 3922 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); |
| 3923 it; | 3923 it; |
| 3924 ++it) { | 3924 ++it) { |
| 3925 Tile* tile = *it; | 3925 Tile* tile = *it; |
| 3926 | 3926 |
| 3927 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); | 3927 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); |
| 3928 | 3928 |
| 3929 bool tile_is_visible = | 3929 bool tile_is_visible = |
| 3930 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); | 3930 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); |
| 3931 if (tile_is_visible) | 3931 if (tile_is_visible) |
| 3932 unoccluded_tile_count++; | 3932 unoccluded_tile_count++; |
| 3933 } | 3933 } |
| 3934 EXPECT_EQ(20, unoccluded_tile_count); | 3934 EXPECT_EQ(20, unoccluded_tile_count); |
| 3935 | 3935 |
| 3936 // Full occlusion. | 3936 // Full occlusion. |
| 3937 layer1->SetPosition(gfx::Point(0, 0)); | 3937 layer1->SetPosition(gfx::Point(0, 0)); |
| 3938 | 3938 |
| 3939 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3939 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 3940 host_impl_.SetCurrentBeginFrameArgs( | 3940 host_impl_.SetCurrentBeginFrameArgs( |
| 3941 CreateBeginFrameArgsForTesting(time_ticks)); | 3941 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 3942 host_impl_.pending_tree()->UpdateDrawProperties(); | 3942 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 3943 | 3943 |
| 3944 unoccluded_tile_count = 0; | 3944 unoccluded_tile_count = 0; |
| 3945 for (PictureLayerImpl::LayerRasterTileIterator it = | 3945 for (PictureLayerImpl::LayerRasterTileIterator it = |
| 3946 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); | 3946 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); |
| 3947 it; | 3947 it; |
| 3948 ++it) { | 3948 ++it) { |
| 3949 Tile* tile = *it; | 3949 Tile* tile = *it; |
| 3950 | 3950 |
| 3951 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); | 3951 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); |
| 3952 | 3952 |
| 3953 bool tile_is_visible = | 3953 bool tile_is_visible = |
| 3954 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); | 3954 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); |
| 3955 if (tile_is_visible) | 3955 if (tile_is_visible) |
| 3956 unoccluded_tile_count++; | 3956 unoccluded_tile_count++; |
| 3957 } | 3957 } |
| 3958 EXPECT_EQ(unoccluded_tile_count, 0); | 3958 EXPECT_EQ(unoccluded_tile_count, 0); |
| 3959 } | 3959 } |
| 3960 | 3960 |
| 3961 TEST_F(OcclusionTrackingPictureLayerImplTest, | 3961 TEST_F(OcclusionTrackingPictureLayerImplTest, |
| 3962 OccludedTilesNotMarkedAsRequired) { | 3962 OccludedTilesNotMarkedAsRequired) { |
| 3963 base::TimeTicks time_ticks; | 3963 base::TimeTicks time_ticks; |
| 3964 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3964 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 3965 host_impl_.SetCurrentBeginFrameArgs( | 3965 host_impl_.SetCurrentBeginFrameArgs( |
| 3966 CreateBeginFrameArgsForTesting(time_ticks)); | 3966 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 3967 | 3967 |
| 3968 gfx::Size tile_size(102, 102); | 3968 gfx::Size tile_size(102, 102); |
| 3969 gfx::Size layer_bounds(1000, 1000); | 3969 gfx::Size layer_bounds(1000, 1000); |
| 3970 gfx::Size viewport_size(500, 500); | 3970 gfx::Size viewport_size(500, 500); |
| 3971 gfx::Point occluding_layer_position(310, 0); | 3971 gfx::Point occluding_layer_position(310, 0); |
| 3972 | 3972 |
| 3973 scoped_refptr<FakePicturePileImpl> pending_pile = | 3973 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 3974 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3974 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 3975 SetupPendingTree(pending_pile); | 3975 SetupPendingTree(pending_pile); |
| 3976 pending_layer_->set_fixed_tile_size(tile_size); | 3976 pending_layer_->set_fixed_tile_size(tile_size); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 4007 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); | 4007 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); |
| 4008 LayerImpl* layer1 = pending_layer_->children()[0]; | 4008 LayerImpl* layer1 = pending_layer_->children()[0]; |
| 4009 layer1->SetBounds(layer_bounds); | 4009 layer1->SetBounds(layer_bounds); |
| 4010 layer1->SetContentBounds(layer_bounds); | 4010 layer1->SetContentBounds(layer_bounds); |
| 4011 layer1->SetDrawsContent(true); | 4011 layer1->SetDrawsContent(true); |
| 4012 layer1->SetContentsOpaque(true); | 4012 layer1->SetContentsOpaque(true); |
| 4013 layer1->SetPosition(occluding_layer_position); | 4013 layer1->SetPosition(occluding_layer_position); |
| 4014 | 4014 |
| 4015 time_ticks += base::TimeDelta::FromMilliseconds(200); | 4015 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 4016 host_impl_.SetCurrentBeginFrameArgs( | 4016 host_impl_.SetCurrentBeginFrameArgs( |
| 4017 CreateBeginFrameArgsForTesting(time_ticks)); | 4017 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 4018 host_impl_.pending_tree()->UpdateDrawProperties(); | 4018 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 4019 | 4019 |
| 4020 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { | 4020 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { |
| 4021 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); | 4021 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); |
| 4022 tiling->UpdateAllTilePrioritiesForTesting(); | 4022 tiling->UpdateAllTilePrioritiesForTesting(); |
| 4023 | 4023 |
| 4024 occluded_tile_count = 0; | 4024 occluded_tile_count = 0; |
| 4025 for (PictureLayerTiling::CoverageIterator iter( | 4025 for (PictureLayerTiling::CoverageIterator iter( |
| 4026 tiling, | 4026 tiling, |
| 4027 pending_layer_->contents_scale_x(), | 4027 pending_layer_->contents_scale_x(), |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 4047 default: | 4047 default: |
| 4048 NOTREACHED(); | 4048 NOTREACHED(); |
| 4049 } | 4049 } |
| 4050 } | 4050 } |
| 4051 | 4051 |
| 4052 // Full occlusion. | 4052 // Full occlusion. |
| 4053 layer1->SetPosition(gfx::PointF(0, 0)); | 4053 layer1->SetPosition(gfx::PointF(0, 0)); |
| 4054 | 4054 |
| 4055 time_ticks += base::TimeDelta::FromMilliseconds(200); | 4055 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 4056 host_impl_.SetCurrentBeginFrameArgs( | 4056 host_impl_.SetCurrentBeginFrameArgs( |
| 4057 CreateBeginFrameArgsForTesting(time_ticks)); | 4057 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 4058 host_impl_.pending_tree()->UpdateDrawProperties(); | 4058 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 4059 | 4059 |
| 4060 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { | 4060 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { |
| 4061 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); | 4061 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); |
| 4062 tiling->UpdateAllTilePrioritiesForTesting(); | 4062 tiling->UpdateAllTilePrioritiesForTesting(); |
| 4063 | 4063 |
| 4064 occluded_tile_count = 0; | 4064 occluded_tile_count = 0; |
| 4065 for (PictureLayerTiling::CoverageIterator iter( | 4065 for (PictureLayerTiling::CoverageIterator iter( |
| 4066 tiling, | 4066 tiling, |
| 4067 pending_layer_->contents_scale_x(), | 4067 pending_layer_->contents_scale_x(), |
| (...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4476 // Make an empty pending tree. | 4476 // Make an empty pending tree. |
| 4477 host_impl_.CreatePendingTree(); | 4477 host_impl_.CreatePendingTree(); |
| 4478 host_impl_.pending_tree()->DetachLayerTree(); | 4478 host_impl_.pending_tree()->DetachLayerTree(); |
| 4479 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); | 4479 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); |
| 4480 } | 4480 } |
| 4481 | 4481 |
| 4482 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) { | 4482 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) { |
| 4483 base::TimeTicks time_ticks; | 4483 base::TimeTicks time_ticks; |
| 4484 time_ticks += base::TimeDelta::FromMilliseconds(1); | 4484 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 4485 host_impl_.SetCurrentBeginFrameArgs( | 4485 host_impl_.SetCurrentBeginFrameArgs( |
| 4486 CreateBeginFrameArgsForTesting(time_ticks)); | 4486 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 4487 | 4487 |
| 4488 gfx::Size tile_size(100, 100); | 4488 gfx::Size tile_size(100, 100); |
| 4489 gfx::Size layer_bounds(200, 200); | 4489 gfx::Size layer_bounds(200, 200); |
| 4490 gfx::Rect layer_rect(layer_bounds); | 4490 gfx::Rect layer_rect(layer_bounds); |
| 4491 | 4491 |
| 4492 FakeContentLayerClient client; | 4492 FakeContentLayerClient client; |
| 4493 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); | 4493 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); |
| 4494 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); | 4494 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); |
| 4495 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); | 4495 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); |
| 4496 host->SetRootLayer(layer); | 4496 host->SetRootLayer(layer); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4543 } | 4543 } |
| 4544 | 4544 |
| 4545 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) { | 4545 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) { |
| 4546 TestQuadsForSolidColor(false); | 4546 TestQuadsForSolidColor(false); |
| 4547 } | 4547 } |
| 4548 | 4548 |
| 4549 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) { | 4549 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) { |
| 4550 base::TimeTicks time_ticks; | 4550 base::TimeTicks time_ticks; |
| 4551 time_ticks += base::TimeDelta::FromMilliseconds(1); | 4551 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 4552 host_impl_.SetCurrentBeginFrameArgs( | 4552 host_impl_.SetCurrentBeginFrameArgs( |
| 4553 CreateBeginFrameArgsForTesting(time_ticks)); | 4553 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 4554 | 4554 |
| 4555 gfx::Size tile_size(100, 100); | 4555 gfx::Size tile_size(100, 100); |
| 4556 gfx::Size layer_bounds(200, 200); | 4556 gfx::Size layer_bounds(200, 200); |
| 4557 gfx::Rect layer_rect(layer_bounds); | 4557 gfx::Rect layer_rect(layer_bounds); |
| 4558 | 4558 |
| 4559 FakeContentLayerClient client; | 4559 FakeContentLayerClient client; |
| 4560 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); | 4560 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); |
| 4561 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); | 4561 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); |
| 4562 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); | 4562 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); |
| 4563 host->SetRootLayer(layer); | 4563 host->SetRootLayer(layer); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4600 | 4600 |
| 4601 // We've switched to a solid color, so we should end up with no tilings. | 4601 // We've switched to a solid color, so we should end up with no tilings. |
| 4602 ASSERT_TRUE(active_layer_->tilings()); | 4602 ASSERT_TRUE(active_layer_->tilings()); |
| 4603 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); | 4603 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); |
| 4604 } | 4604 } |
| 4605 | 4605 |
| 4606 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) { | 4606 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) { |
| 4607 base::TimeTicks time_ticks; | 4607 base::TimeTicks time_ticks; |
| 4608 time_ticks += base::TimeDelta::FromMilliseconds(1); | 4608 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 4609 host_impl_.SetCurrentBeginFrameArgs( | 4609 host_impl_.SetCurrentBeginFrameArgs( |
| 4610 CreateBeginFrameArgsForTesting(time_ticks)); | 4610 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 4611 | 4611 |
| 4612 gfx::Size tile_size(100, 100); | 4612 gfx::Size tile_size(100, 100); |
| 4613 gfx::Size layer_bounds(400, 4000); | 4613 gfx::Size layer_bounds(400, 4000); |
| 4614 | 4614 |
| 4615 scoped_refptr<FakePicturePileImpl> pending_pile = | 4615 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 4616 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 4616 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 4617 scoped_refptr<FakePicturePileImpl> active_pile = | 4617 scoped_refptr<FakePicturePileImpl> active_pile = |
| 4618 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 4618 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 4619 | 4619 |
| 4620 SetupTrees(pending_pile, active_pile); | 4620 SetupTrees(pending_pile, active_pile); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4722 result = layer->CalculateTileSize(gfx::Size(447, 400)); | 4722 result = layer->CalculateTileSize(gfx::Size(447, 400)); |
| 4723 EXPECT_EQ(result.width(), 448); | 4723 EXPECT_EQ(result.width(), 448); |
| 4724 EXPECT_EQ(result.height(), 448); | 4724 EXPECT_EQ(result.height(), 448); |
| 4725 result = layer->CalculateTileSize(gfx::Size(500, 499)); | 4725 result = layer->CalculateTileSize(gfx::Size(500, 499)); |
| 4726 EXPECT_EQ(result.width(), 512); | 4726 EXPECT_EQ(result.width(), 512); |
| 4727 EXPECT_EQ(result.height(), 500 + 2); | 4727 EXPECT_EQ(result.height(), 500 + 2); |
| 4728 } | 4728 } |
| 4729 | 4729 |
| 4730 } // namespace | 4730 } // namespace |
| 4731 } // namespace cc | 4731 } // namespace cc |
| OLD | NEW |