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)); |
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 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1554 | 1554 |
1555 pending_layer_->set_fixed_tile_size(tile_size); | 1555 pending_layer_->set_fixed_tile_size(tile_size); |
1556 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 1556 ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
1557 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); | 1557 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); |
1558 host_impl_.pending_tree()->UpdateDrawProperties(); | 1558 host_impl_.pending_tree()->UpdateDrawProperties(); |
1559 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority()); | 1559 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority()); |
1560 | 1560 |
1561 base::TimeTicks time_ticks; | 1561 base::TimeTicks time_ticks; |
1562 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1562 time_ticks += base::TimeDelta::FromMilliseconds(1); |
1563 host_impl_.SetCurrentBeginFrameArgs( | 1563 host_impl_.SetCurrentBeginFrameArgs( |
1564 CreateBeginFrameArgsForTesting(time_ticks)); | 1564 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1565 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 1565 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
1566 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution()); | 1566 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution()); |
1567 | 1567 |
1568 int num_visible = 0; | 1568 int num_visible = 0; |
1569 int num_offscreen = 0; | 1569 int num_offscreen = 0; |
1570 | 1570 |
1571 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter; | 1571 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter; |
1572 ++iter) { | 1572 ++iter) { |
1573 const Tile* tile = *iter; | 1573 const Tile* tile = *iter; |
1574 DCHECK(tile); | 1574 DCHECK(tile); |
1575 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) { | 1575 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) { |
1576 EXPECT_TRUE(tile->required_for_activation()); | 1576 EXPECT_TRUE(tile->required_for_activation()); |
1577 num_visible++; | 1577 num_visible++; |
1578 } else { | 1578 } else { |
1579 EXPECT_FALSE(tile->required_for_activation()); | 1579 EXPECT_FALSE(tile->required_for_activation()); |
1580 num_offscreen++; | 1580 num_offscreen++; |
1581 } | 1581 } |
1582 } | 1582 } |
1583 | 1583 |
1584 EXPECT_GT(num_visible, 0); | 1584 EXPECT_GT(num_visible, 0); |
1585 EXPECT_GT(num_offscreen, 0); | 1585 EXPECT_GT(num_offscreen, 0); |
1586 } | 1586 } |
1587 | 1587 |
1588 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) { | 1588 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) { |
1589 base::TimeTicks time_ticks; | 1589 base::TimeTicks time_ticks; |
1590 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1590 time_ticks += base::TimeDelta::FromMilliseconds(1); |
1591 host_impl_.SetCurrentBeginFrameArgs( | 1591 host_impl_.SetCurrentBeginFrameArgs( |
1592 CreateBeginFrameArgsForTesting(time_ticks)); | 1592 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1593 | 1593 |
1594 gfx::Size tile_size(100, 100); | 1594 gfx::Size tile_size(100, 100); |
1595 gfx::Size layer_bounds(400, 400); | 1595 gfx::Size layer_bounds(400, 400); |
1596 gfx::Rect external_viewport_for_tile_priority(400, 200); | 1596 gfx::Rect external_viewport_for_tile_priority(400, 200); |
1597 gfx::Rect visible_content_rect(200, 400); | 1597 gfx::Rect visible_content_rect(200, 400); |
1598 | 1598 |
1599 scoped_refptr<FakePicturePileImpl> active_pile = | 1599 scoped_refptr<FakePicturePileImpl> active_pile = |
1600 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1600 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1601 scoped_refptr<FakePicturePileImpl> pending_pile = | 1601 scoped_refptr<FakePicturePileImpl> pending_pile = |
1602 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1602 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
(...skipping 15 matching lines...) Expand all Loading... |
1618 external_viewport_for_tile_priority, | 1618 external_viewport_for_tile_priority, |
1619 transform_for_tile_priority, | 1619 transform_for_tile_priority, |
1620 resourceless_software_draw); | 1620 resourceless_software_draw); |
1621 host_impl_.pending_tree()->UpdateDrawProperties(); | 1621 host_impl_.pending_tree()->UpdateDrawProperties(); |
1622 | 1622 |
1623 // Set visible content rect that is different from | 1623 // Set visible content rect that is different from |
1624 // external_viewport_for_tile_priority. | 1624 // external_viewport_for_tile_priority. |
1625 pending_layer_->draw_properties().visible_content_rect = visible_content_rect; | 1625 pending_layer_->draw_properties().visible_content_rect = visible_content_rect; |
1626 time_ticks += base::TimeDelta::FromMilliseconds(200); | 1626 time_ticks += base::TimeDelta::FromMilliseconds(200); |
1627 host_impl_.SetCurrentBeginFrameArgs( | 1627 host_impl_.SetCurrentBeginFrameArgs( |
1628 CreateBeginFrameArgsForTesting(time_ticks)); | 1628 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1629 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 1629 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
1630 | 1630 |
1631 // Intersect the two rects. Any tile outside should not be required for | 1631 // Intersect the two rects. Any tile outside should not be required for |
1632 // activation. | 1632 // activation. |
1633 gfx::Rect viewport_for_tile_priority = | 1633 gfx::Rect viewport_for_tile_priority = |
1634 pending_layer_->GetViewportForTilePriorityInContentSpace(); | 1634 pending_layer_->GetViewportForTilePriorityInContentSpace(); |
1635 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect()); | 1635 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect()); |
1636 | 1636 |
1637 int num_inside = 0; | 1637 int num_inside = 0; |
1638 int num_outside = 0; | 1638 int num_outside = 0; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1671 // All tiles in activation rect is ready to draw. | 1671 // All tiles in activation rect is ready to draw. |
1672 EXPECT_EQ(0u, data.num_missing_tiles); | 1672 EXPECT_EQ(0u, data.num_missing_tiles); |
1673 EXPECT_EQ(0u, data.num_incomplete_tiles); | 1673 EXPECT_EQ(0u, data.num_incomplete_tiles); |
1674 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); | 1674 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); |
1675 } | 1675 } |
1676 | 1676 |
1677 TEST_F(PictureLayerImplTest, HighResTileIsComplete) { | 1677 TEST_F(PictureLayerImplTest, HighResTileIsComplete) { |
1678 base::TimeTicks time_ticks; | 1678 base::TimeTicks time_ticks; |
1679 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1679 time_ticks += base::TimeDelta::FromMilliseconds(1); |
1680 host_impl_.SetCurrentBeginFrameArgs( | 1680 host_impl_.SetCurrentBeginFrameArgs( |
1681 CreateBeginFrameArgsForTesting(time_ticks)); | 1681 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1682 | 1682 |
1683 gfx::Size tile_size(100, 100); | 1683 gfx::Size tile_size(100, 100); |
1684 gfx::Size layer_bounds(200, 200); | 1684 gfx::Size layer_bounds(200, 200); |
1685 | 1685 |
1686 host_impl_.SetViewportSize(layer_bounds); | 1686 host_impl_.SetViewportSize(layer_bounds); |
1687 | 1687 |
1688 scoped_refptr<FakePicturePileImpl> pending_pile = | 1688 scoped_refptr<FakePicturePileImpl> pending_pile = |
1689 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1689 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1690 SetupPendingTree(pending_pile); | 1690 SetupPendingTree(pending_pile); |
1691 ActivateTree(); | 1691 ActivateTree(); |
(...skipping 15 matching lines...) Expand all Loading... |
1707 EXPECT_EQ(9u, render_pass->quad_list.size()); | 1707 EXPECT_EQ(9u, render_pass->quad_list.size()); |
1708 EXPECT_EQ(0u, data.num_missing_tiles); | 1708 EXPECT_EQ(0u, data.num_missing_tiles); |
1709 EXPECT_EQ(0u, data.num_incomplete_tiles); | 1709 EXPECT_EQ(0u, data.num_incomplete_tiles); |
1710 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); | 1710 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); |
1711 } | 1711 } |
1712 | 1712 |
1713 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) { | 1713 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) { |
1714 base::TimeTicks time_ticks; | 1714 base::TimeTicks time_ticks; |
1715 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1715 time_ticks += base::TimeDelta::FromMilliseconds(1); |
1716 host_impl_.SetCurrentBeginFrameArgs( | 1716 host_impl_.SetCurrentBeginFrameArgs( |
1717 CreateBeginFrameArgsForTesting(time_ticks)); | 1717 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1718 | 1718 |
1719 gfx::Size tile_size(100, 100); | 1719 gfx::Size tile_size(100, 100); |
1720 gfx::Size layer_bounds(200, 200); | 1720 gfx::Size layer_bounds(200, 200); |
1721 | 1721 |
1722 host_impl_.SetViewportSize(layer_bounds); | 1722 host_impl_.SetViewportSize(layer_bounds); |
1723 | 1723 |
1724 scoped_refptr<FakePicturePileImpl> pending_pile = | 1724 scoped_refptr<FakePicturePileImpl> pending_pile = |
1725 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1725 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1726 SetupPendingTree(pending_pile); | 1726 SetupPendingTree(pending_pile); |
1727 ActivateTree(); | 1727 ActivateTree(); |
(...skipping 10 matching lines...) Expand all Loading... |
1738 EXPECT_EQ(1u, render_pass->quad_list.size()); | 1738 EXPECT_EQ(1u, render_pass->quad_list.size()); |
1739 EXPECT_EQ(1u, data.num_missing_tiles); | 1739 EXPECT_EQ(1u, data.num_missing_tiles); |
1740 EXPECT_EQ(0u, data.num_incomplete_tiles); | 1740 EXPECT_EQ(0u, data.num_incomplete_tiles); |
1741 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); | 1741 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); |
1742 } | 1742 } |
1743 | 1743 |
1744 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) { | 1744 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) { |
1745 base::TimeTicks time_ticks; | 1745 base::TimeTicks time_ticks; |
1746 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1746 time_ticks += base::TimeDelta::FromMilliseconds(1); |
1747 host_impl_.SetCurrentBeginFrameArgs( | 1747 host_impl_.SetCurrentBeginFrameArgs( |
1748 CreateBeginFrameArgsForTesting(time_ticks)); | 1748 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1749 | 1749 |
1750 gfx::Size tile_size(100, 100); | 1750 gfx::Size tile_size(100, 100); |
1751 gfx::Size layer_bounds(200, 200); | 1751 gfx::Size layer_bounds(200, 200); |
1752 | 1752 |
1753 host_impl_.SetViewportSize(layer_bounds); | 1753 host_impl_.SetViewportSize(layer_bounds); |
1754 | 1754 |
1755 scoped_refptr<FakePicturePileImpl> pending_pile = | 1755 scoped_refptr<FakePicturePileImpl> pending_pile = |
1756 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1756 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1757 SetupPendingTree(pending_pile); | 1757 SetupPendingTree(pending_pile); |
1758 ActivateTree(); | 1758 ActivateTree(); |
(...skipping 13 matching lines...) Expand all Loading... |
1772 EXPECT_EQ(1u, render_pass->quad_list.size()); | 1772 EXPECT_EQ(1u, render_pass->quad_list.size()); |
1773 EXPECT_EQ(0u, data.num_missing_tiles); | 1773 EXPECT_EQ(0u, data.num_missing_tiles); |
1774 EXPECT_EQ(1u, data.num_incomplete_tiles); | 1774 EXPECT_EQ(1u, data.num_incomplete_tiles); |
1775 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); | 1775 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); |
1776 } | 1776 } |
1777 | 1777 |
1778 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) { | 1778 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) { |
1779 base::TimeTicks time_ticks; | 1779 base::TimeTicks time_ticks; |
1780 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1780 time_ticks += base::TimeDelta::FromMilliseconds(1); |
1781 host_impl_.SetCurrentBeginFrameArgs( | 1781 host_impl_.SetCurrentBeginFrameArgs( |
1782 CreateBeginFrameArgsForTesting(time_ticks)); | 1782 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1783 | 1783 |
1784 gfx::Size tile_size(100, 100); | 1784 gfx::Size tile_size(100, 100); |
1785 gfx::Size layer_bounds(200, 200); | 1785 gfx::Size layer_bounds(200, 200); |
1786 | 1786 |
1787 host_impl_.SetViewportSize(layer_bounds); | 1787 host_impl_.SetViewportSize(layer_bounds); |
1788 | 1788 |
1789 scoped_refptr<FakePicturePileImpl> pending_pile = | 1789 scoped_refptr<FakePicturePileImpl> pending_pile = |
1790 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1790 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1791 SetupPendingTree(pending_pile); | 1791 SetupPendingTree(pending_pile); |
1792 ActivateTree(); | 1792 ActivateTree(); |
(...skipping 22 matching lines...) Expand all Loading... |
1815 EXPECT_EQ(0u, data.num_missing_tiles); | 1815 EXPECT_EQ(0u, data.num_missing_tiles); |
1816 EXPECT_EQ(1u, data.num_incomplete_tiles); | 1816 EXPECT_EQ(1u, data.num_incomplete_tiles); |
1817 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); | 1817 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); |
1818 } | 1818 } |
1819 | 1819 |
1820 TEST_F(PictureLayerImplTest, | 1820 TEST_F(PictureLayerImplTest, |
1821 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) { | 1821 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) { |
1822 base::TimeTicks time_ticks; | 1822 base::TimeTicks time_ticks; |
1823 time_ticks += base::TimeDelta::FromMilliseconds(1); | 1823 time_ticks += base::TimeDelta::FromMilliseconds(1); |
1824 host_impl_.SetCurrentBeginFrameArgs( | 1824 host_impl_.SetCurrentBeginFrameArgs( |
1825 CreateBeginFrameArgsForTesting(time_ticks)); | 1825 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
1826 | 1826 |
1827 gfx::Size tile_size(100, 100); | 1827 gfx::Size tile_size(100, 100); |
1828 gfx::Size layer_bounds(200, 200); | 1828 gfx::Size layer_bounds(200, 200); |
1829 | 1829 |
1830 host_impl_.SetViewportSize(layer_bounds); | 1830 host_impl_.SetViewportSize(layer_bounds); |
1831 | 1831 |
1832 scoped_refptr<FakePicturePileImpl> pending_pile = | 1832 scoped_refptr<FakePicturePileImpl> pending_pile = |
1833 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1833 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
1834 scoped_refptr<FakePicturePileImpl> active_pile = | 1834 scoped_refptr<FakePicturePileImpl> active_pile = |
1835 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1835 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
(...skipping 924 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2760 page_scale, | 2760 page_scale, |
2761 maximum_animation_scale, | 2761 maximum_animation_scale, |
2762 animating_transform); | 2762 animating_transform); |
2763 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); | 2763 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); |
2764 } | 2764 } |
2765 | 2765 |
2766 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { | 2766 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { |
2767 base::TimeTicks time_ticks; | 2767 base::TimeTicks time_ticks; |
2768 time_ticks += base::TimeDelta::FromMilliseconds(1); | 2768 time_ticks += base::TimeDelta::FromMilliseconds(1); |
2769 host_impl_.SetCurrentBeginFrameArgs( | 2769 host_impl_.SetCurrentBeginFrameArgs( |
2770 CreateBeginFrameArgsForTesting(time_ticks)); | 2770 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
2771 | 2771 |
2772 gfx::Size tile_size(100, 100); | 2772 gfx::Size tile_size(100, 100); |
2773 gfx::Size layer_bounds(1000, 1000); | 2773 gfx::Size layer_bounds(1000, 1000); |
2774 | 2774 |
2775 scoped_refptr<FakePicturePileImpl> pending_pile = | 2775 scoped_refptr<FakePicturePileImpl> pending_pile = |
2776 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 2776 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
2777 | 2777 |
2778 SetupPendingTree(pending_pile); | 2778 SetupPendingTree(pending_pile); |
2779 | 2779 |
2780 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 2780 ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2830 EXPECT_TRUE(reached_prepaint); | 2830 EXPECT_TRUE(reached_prepaint); |
2831 EXPECT_EQ(0u, non_ideal_tile_count); | 2831 EXPECT_EQ(0u, non_ideal_tile_count); |
2832 EXPECT_EQ(0u, low_res_tile_count); | 2832 EXPECT_EQ(0u, low_res_tile_count); |
2833 EXPECT_EQ(16u, high_res_tile_count); | 2833 EXPECT_EQ(16u, high_res_tile_count); |
2834 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, | 2834 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, |
2835 unique_tiles.size()); | 2835 unique_tiles.size()); |
2836 | 2836 |
2837 // No NOW tiles. | 2837 // No NOW tiles. |
2838 time_ticks += base::TimeDelta::FromMilliseconds(200); | 2838 time_ticks += base::TimeDelta::FromMilliseconds(200); |
2839 host_impl_.SetCurrentBeginFrameArgs( | 2839 host_impl_.SetCurrentBeginFrameArgs( |
2840 CreateBeginFrameArgsForTesting(time_ticks)); | 2840 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
2841 | 2841 |
2842 pending_layer_->draw_properties().visible_content_rect = | 2842 pending_layer_->draw_properties().visible_content_rect = |
2843 gfx::Rect(1100, 1100, 500, 500); | 2843 gfx::Rect(1100, 1100, 500, 500); |
2844 bool resourceless_software_draw = false; | 2844 bool resourceless_software_draw = false; |
2845 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 2845 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
2846 | 2846 |
2847 unique_tiles.clear(); | 2847 unique_tiles.clear(); |
2848 high_res_tile_count = 0u; | 2848 high_res_tile_count = 0u; |
2849 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); | 2849 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); |
2850 it; | 2850 it; |
(...skipping 10 matching lines...) Expand all Loading... |
2861 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; | 2861 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; |
2862 | 2862 |
2863 unique_tiles.insert(tile); | 2863 unique_tiles.insert(tile); |
2864 } | 2864 } |
2865 | 2865 |
2866 EXPECT_EQ(16u, high_res_tile_count); | 2866 EXPECT_EQ(16u, high_res_tile_count); |
2867 EXPECT_EQ(high_res_tile_count, unique_tiles.size()); | 2867 EXPECT_EQ(high_res_tile_count, unique_tiles.size()); |
2868 | 2868 |
2869 time_ticks += base::TimeDelta::FromMilliseconds(200); | 2869 time_ticks += base::TimeDelta::FromMilliseconds(200); |
2870 host_impl_.SetCurrentBeginFrameArgs( | 2870 host_impl_.SetCurrentBeginFrameArgs( |
2871 CreateBeginFrameArgsForTesting(time_ticks)); | 2871 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
2872 | 2872 |
2873 pending_layer_->draw_properties().visible_content_rect = | 2873 pending_layer_->draw_properties().visible_content_rect = |
2874 gfx::Rect(0, 0, 500, 500); | 2874 gfx::Rect(0, 0, 500, 500); |
2875 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 2875 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
2876 | 2876 |
2877 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting(); | 2877 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting(); |
2878 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin(); | 2878 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin(); |
2879 tile_it != high_res_tiles.end(); | 2879 tile_it != high_res_tiles.end(); |
2880 ++tile_it) { | 2880 ++tile_it) { |
2881 Tile* tile = *tile_it; | 2881 Tile* tile = *tile_it; |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3363 | 3363 |
3364 AssertNoTilesRequired(pending_layer_->HighResTiling()); | 3364 AssertNoTilesRequired(pending_layer_->HighResTiling()); |
3365 if (host_impl_.settings().create_low_res_tiling) | 3365 if (host_impl_.settings().create_low_res_tiling) |
3366 AssertNoTilesRequired(pending_layer_->LowResTiling()); | 3366 AssertNoTilesRequired(pending_layer_->LowResTiling()); |
3367 } | 3367 } |
3368 | 3368 |
3369 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { | 3369 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
3370 base::TimeTicks time_ticks; | 3370 base::TimeTicks time_ticks; |
3371 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3371 time_ticks += base::TimeDelta::FromMilliseconds(1); |
3372 host_impl_.SetCurrentBeginFrameArgs( | 3372 host_impl_.SetCurrentBeginFrameArgs( |
3373 CreateBeginFrameArgsForTesting(time_ticks)); | 3373 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
3374 | 3374 |
3375 gfx::Size tile_size(100, 100); | 3375 gfx::Size tile_size(100, 100); |
3376 gfx::Size layer_bounds(400, 400); | 3376 gfx::Size layer_bounds(400, 400); |
3377 | 3377 |
3378 scoped_refptr<FakePicturePileImpl> pending_pile = | 3378 scoped_refptr<FakePicturePileImpl> pending_pile = |
3379 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3379 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
3380 scoped_refptr<FakePicturePileImpl> active_pile = | 3380 scoped_refptr<FakePicturePileImpl> active_pile = |
3381 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3381 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
3382 | 3382 |
3383 SetupTrees(pending_pile, active_pile); | 3383 SetupTrees(pending_pile, active_pile); |
(...skipping 21 matching lines...) Expand all Loading... |
3405 gfx::Rect visible_rect_for_tile_priority = | 3405 gfx::Rect visible_rect_for_tile_priority = |
3406 active_layer_->visible_rect_for_tile_priority(); | 3406 active_layer_->visible_rect_for_tile_priority(); |
3407 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 3407 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); |
3408 gfx::Transform screen_space_transform_for_tile_priority = | 3408 gfx::Transform screen_space_transform_for_tile_priority = |
3409 active_layer_->screen_space_transform(); | 3409 active_layer_->screen_space_transform(); |
3410 | 3410 |
3411 // Expand viewport and set it as invalid for prioritizing tiles. | 3411 // Expand viewport and set it as invalid for prioritizing tiles. |
3412 // Should update viewport and transform, but not update visible rect. | 3412 // Should update viewport and transform, but not update visible rect. |
3413 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3413 time_ticks += base::TimeDelta::FromMilliseconds(200); |
3414 host_impl_.SetCurrentBeginFrameArgs( | 3414 host_impl_.SetCurrentBeginFrameArgs( |
3415 CreateBeginFrameArgsForTesting(time_ticks)); | 3415 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
3416 resourceless_software_draw = true; | 3416 resourceless_software_draw = true; |
3417 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 3417 viewport = gfx::ScaleToEnclosingRect(viewport, 2); |
3418 transform.Translate(1.f, 1.f); | 3418 transform.Translate(1.f, 1.f); |
3419 active_layer_->draw_properties().visible_content_rect = viewport; | 3419 active_layer_->draw_properties().visible_content_rect = viewport; |
3420 active_layer_->draw_properties().screen_space_transform = transform; | 3420 active_layer_->draw_properties().screen_space_transform = transform; |
3421 host_impl_.SetExternalDrawConstraints(transform, | 3421 host_impl_.SetExternalDrawConstraints(transform, |
3422 viewport, | 3422 viewport, |
3423 viewport, | 3423 viewport, |
3424 viewport, | 3424 viewport, |
3425 transform, | 3425 transform, |
3426 resourceless_software_draw); | 3426 resourceless_software_draw); |
3427 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 3427 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
3428 | 3428 |
3429 // Transform for tile priority is updated. | 3429 // Transform for tile priority is updated. |
3430 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, | 3430 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, |
3431 active_layer_->screen_space_transform()); | 3431 active_layer_->screen_space_transform()); |
3432 // Visible rect for tile priority retains old value. | 3432 // Visible rect for tile priority retains old value. |
3433 EXPECT_EQ(visible_rect_for_tile_priority, | 3433 EXPECT_EQ(visible_rect_for_tile_priority, |
3434 active_layer_->visible_rect_for_tile_priority()); | 3434 active_layer_->visible_rect_for_tile_priority()); |
3435 | 3435 |
3436 // Keep expanded viewport but mark it valid. Should update tile viewport. | 3436 // Keep expanded viewport but mark it valid. Should update tile viewport. |
3437 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3437 time_ticks += base::TimeDelta::FromMilliseconds(200); |
3438 host_impl_.SetCurrentBeginFrameArgs( | 3438 host_impl_.SetCurrentBeginFrameArgs( |
3439 CreateBeginFrameArgsForTesting(time_ticks)); | 3439 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
3440 resourceless_software_draw = false; | 3440 resourceless_software_draw = false; |
3441 host_impl_.SetExternalDrawConstraints(transform, | 3441 host_impl_.SetExternalDrawConstraints(transform, |
3442 viewport, | 3442 viewport, |
3443 viewport, | 3443 viewport, |
3444 viewport, | 3444 viewport, |
3445 transform, | 3445 transform, |
3446 resourceless_software_draw); | 3446 resourceless_software_draw); |
3447 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); | 3447 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); |
3448 | 3448 |
3449 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, | 3449 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3874 occluded_tile_count); | 3874 occluded_tile_count); |
3875 } | 3875 } |
3876 } | 3876 } |
3877 }; | 3877 }; |
3878 | 3878 |
3879 TEST_F(OcclusionTrackingPictureLayerImplTest, | 3879 TEST_F(OcclusionTrackingPictureLayerImplTest, |
3880 OccludedTilesSkippedDuringRasterization) { | 3880 OccludedTilesSkippedDuringRasterization) { |
3881 base::TimeTicks time_ticks; | 3881 base::TimeTicks time_ticks; |
3882 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3882 time_ticks += base::TimeDelta::FromMilliseconds(1); |
3883 host_impl_.SetCurrentBeginFrameArgs( | 3883 host_impl_.SetCurrentBeginFrameArgs( |
3884 CreateBeginFrameArgsForTesting(time_ticks)); | 3884 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
3885 | 3885 |
3886 gfx::Size tile_size(102, 102); | 3886 gfx::Size tile_size(102, 102); |
3887 gfx::Size layer_bounds(1000, 1000); | 3887 gfx::Size layer_bounds(1000, 1000); |
3888 gfx::Size viewport_size(500, 500); | 3888 gfx::Size viewport_size(500, 500); |
3889 gfx::Point occluding_layer_position(310, 0); | 3889 gfx::Point occluding_layer_position(310, 0); |
3890 | 3890 |
3891 scoped_refptr<FakePicturePileImpl> pending_pile = | 3891 scoped_refptr<FakePicturePileImpl> pending_pile = |
3892 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3892 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
3893 SetupPendingTree(pending_pile); | 3893 SetupPendingTree(pending_pile); |
3894 pending_layer_->set_fixed_tile_size(tile_size); | 3894 pending_layer_->set_fixed_tile_size(tile_size); |
(...skipping 25 matching lines...) Expand all Loading... |
3920 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); | 3920 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); |
3921 LayerImpl* layer1 = pending_layer_->children()[0]; | 3921 LayerImpl* layer1 = pending_layer_->children()[0]; |
3922 layer1->SetBounds(layer_bounds); | 3922 layer1->SetBounds(layer_bounds); |
3923 layer1->SetContentBounds(layer_bounds); | 3923 layer1->SetContentBounds(layer_bounds); |
3924 layer1->SetDrawsContent(true); | 3924 layer1->SetDrawsContent(true); |
3925 layer1->SetContentsOpaque(true); | 3925 layer1->SetContentsOpaque(true); |
3926 layer1->SetPosition(occluding_layer_position); | 3926 layer1->SetPosition(occluding_layer_position); |
3927 | 3927 |
3928 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3928 time_ticks += base::TimeDelta::FromMilliseconds(200); |
3929 host_impl_.SetCurrentBeginFrameArgs( | 3929 host_impl_.SetCurrentBeginFrameArgs( |
3930 CreateBeginFrameArgsForTesting(time_ticks)); | 3930 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
3931 host_impl_.pending_tree()->UpdateDrawProperties(); | 3931 host_impl_.pending_tree()->UpdateDrawProperties(); |
3932 | 3932 |
3933 unoccluded_tile_count = 0; | 3933 unoccluded_tile_count = 0; |
3934 for (PictureLayerImpl::LayerRasterTileIterator it = | 3934 for (PictureLayerImpl::LayerRasterTileIterator it = |
3935 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); | 3935 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); |
3936 it; | 3936 it; |
3937 ++it) { | 3937 ++it) { |
3938 Tile* tile = *it; | 3938 Tile* tile = *it; |
3939 | 3939 |
3940 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); | 3940 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); |
3941 | 3941 |
3942 bool tile_is_visible = | 3942 bool tile_is_visible = |
3943 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); | 3943 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); |
3944 if (tile_is_visible) | 3944 if (tile_is_visible) |
3945 unoccluded_tile_count++; | 3945 unoccluded_tile_count++; |
3946 } | 3946 } |
3947 EXPECT_EQ(20, unoccluded_tile_count); | 3947 EXPECT_EQ(20, unoccluded_tile_count); |
3948 | 3948 |
3949 // Full occlusion. | 3949 // Full occlusion. |
3950 layer1->SetPosition(gfx::Point(0, 0)); | 3950 layer1->SetPosition(gfx::Point(0, 0)); |
3951 | 3951 |
3952 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3952 time_ticks += base::TimeDelta::FromMilliseconds(200); |
3953 host_impl_.SetCurrentBeginFrameArgs( | 3953 host_impl_.SetCurrentBeginFrameArgs( |
3954 CreateBeginFrameArgsForTesting(time_ticks)); | 3954 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
3955 host_impl_.pending_tree()->UpdateDrawProperties(); | 3955 host_impl_.pending_tree()->UpdateDrawProperties(); |
3956 | 3956 |
3957 unoccluded_tile_count = 0; | 3957 unoccluded_tile_count = 0; |
3958 for (PictureLayerImpl::LayerRasterTileIterator it = | 3958 for (PictureLayerImpl::LayerRasterTileIterator it = |
3959 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); | 3959 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); |
3960 it; | 3960 it; |
3961 ++it) { | 3961 ++it) { |
3962 Tile* tile = *it; | 3962 Tile* tile = *it; |
3963 | 3963 |
3964 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); | 3964 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); |
3965 | 3965 |
3966 bool tile_is_visible = | 3966 bool tile_is_visible = |
3967 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); | 3967 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); |
3968 if (tile_is_visible) | 3968 if (tile_is_visible) |
3969 unoccluded_tile_count++; | 3969 unoccluded_tile_count++; |
3970 } | 3970 } |
3971 EXPECT_EQ(unoccluded_tile_count, 0); | 3971 EXPECT_EQ(unoccluded_tile_count, 0); |
3972 } | 3972 } |
3973 | 3973 |
3974 TEST_F(OcclusionTrackingPictureLayerImplTest, | 3974 TEST_F(OcclusionTrackingPictureLayerImplTest, |
3975 OccludedTilesNotMarkedAsRequired) { | 3975 OccludedTilesNotMarkedAsRequired) { |
3976 base::TimeTicks time_ticks; | 3976 base::TimeTicks time_ticks; |
3977 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3977 time_ticks += base::TimeDelta::FromMilliseconds(1); |
3978 host_impl_.SetCurrentBeginFrameArgs( | 3978 host_impl_.SetCurrentBeginFrameArgs( |
3979 CreateBeginFrameArgsForTesting(time_ticks)); | 3979 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
3980 | 3980 |
3981 gfx::Size tile_size(102, 102); | 3981 gfx::Size tile_size(102, 102); |
3982 gfx::Size layer_bounds(1000, 1000); | 3982 gfx::Size layer_bounds(1000, 1000); |
3983 gfx::Size viewport_size(500, 500); | 3983 gfx::Size viewport_size(500, 500); |
3984 gfx::Point occluding_layer_position(310, 0); | 3984 gfx::Point occluding_layer_position(310, 0); |
3985 | 3985 |
3986 scoped_refptr<FakePicturePileImpl> pending_pile = | 3986 scoped_refptr<FakePicturePileImpl> pending_pile = |
3987 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3987 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
3988 SetupPendingTree(pending_pile); | 3988 SetupPendingTree(pending_pile); |
3989 pending_layer_->set_fixed_tile_size(tile_size); | 3989 pending_layer_->set_fixed_tile_size(tile_size); |
(...skipping 30 matching lines...) Expand all Loading... |
4020 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); | 4020 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); |
4021 LayerImpl* layer1 = pending_layer_->children()[0]; | 4021 LayerImpl* layer1 = pending_layer_->children()[0]; |
4022 layer1->SetBounds(layer_bounds); | 4022 layer1->SetBounds(layer_bounds); |
4023 layer1->SetContentBounds(layer_bounds); | 4023 layer1->SetContentBounds(layer_bounds); |
4024 layer1->SetDrawsContent(true); | 4024 layer1->SetDrawsContent(true); |
4025 layer1->SetContentsOpaque(true); | 4025 layer1->SetContentsOpaque(true); |
4026 layer1->SetPosition(occluding_layer_position); | 4026 layer1->SetPosition(occluding_layer_position); |
4027 | 4027 |
4028 time_ticks += base::TimeDelta::FromMilliseconds(200); | 4028 time_ticks += base::TimeDelta::FromMilliseconds(200); |
4029 host_impl_.SetCurrentBeginFrameArgs( | 4029 host_impl_.SetCurrentBeginFrameArgs( |
4030 CreateBeginFrameArgsForTesting(time_ticks)); | 4030 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
4031 host_impl_.pending_tree()->UpdateDrawProperties(); | 4031 host_impl_.pending_tree()->UpdateDrawProperties(); |
4032 | 4032 |
4033 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { | 4033 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { |
4034 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); | 4034 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); |
4035 tiling->UpdateAllTilePrioritiesForTesting(); | 4035 tiling->UpdateAllTilePrioritiesForTesting(); |
4036 | 4036 |
4037 occluded_tile_count = 0; | 4037 occluded_tile_count = 0; |
4038 for (PictureLayerTiling::CoverageIterator iter( | 4038 for (PictureLayerTiling::CoverageIterator iter( |
4039 tiling, | 4039 tiling, |
4040 pending_layer_->contents_scale_x(), | 4040 pending_layer_->contents_scale_x(), |
(...skipping 19 matching lines...) Expand all Loading... |
4060 default: | 4060 default: |
4061 NOTREACHED(); | 4061 NOTREACHED(); |
4062 } | 4062 } |
4063 } | 4063 } |
4064 | 4064 |
4065 // Full occlusion. | 4065 // Full occlusion. |
4066 layer1->SetPosition(gfx::PointF(0, 0)); | 4066 layer1->SetPosition(gfx::PointF(0, 0)); |
4067 | 4067 |
4068 time_ticks += base::TimeDelta::FromMilliseconds(200); | 4068 time_ticks += base::TimeDelta::FromMilliseconds(200); |
4069 host_impl_.SetCurrentBeginFrameArgs( | 4069 host_impl_.SetCurrentBeginFrameArgs( |
4070 CreateBeginFrameArgsForTesting(time_ticks)); | 4070 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
4071 host_impl_.pending_tree()->UpdateDrawProperties(); | 4071 host_impl_.pending_tree()->UpdateDrawProperties(); |
4072 | 4072 |
4073 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { | 4073 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { |
4074 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); | 4074 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); |
4075 tiling->UpdateAllTilePrioritiesForTesting(); | 4075 tiling->UpdateAllTilePrioritiesForTesting(); |
4076 | 4076 |
4077 occluded_tile_count = 0; | 4077 occluded_tile_count = 0; |
4078 for (PictureLayerTiling::CoverageIterator iter( | 4078 for (PictureLayerTiling::CoverageIterator iter( |
4079 tiling, | 4079 tiling, |
4080 pending_layer_->contents_scale_x(), | 4080 pending_layer_->contents_scale_x(), |
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4489 // Make an empty pending tree. | 4489 // Make an empty pending tree. |
4490 host_impl_.CreatePendingTree(); | 4490 host_impl_.CreatePendingTree(); |
4491 host_impl_.pending_tree()->DetachLayerTree(); | 4491 host_impl_.pending_tree()->DetachLayerTree(); |
4492 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); | 4492 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); |
4493 } | 4493 } |
4494 | 4494 |
4495 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) { | 4495 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) { |
4496 base::TimeTicks time_ticks; | 4496 base::TimeTicks time_ticks; |
4497 time_ticks += base::TimeDelta::FromMilliseconds(1); | 4497 time_ticks += base::TimeDelta::FromMilliseconds(1); |
4498 host_impl_.SetCurrentBeginFrameArgs( | 4498 host_impl_.SetCurrentBeginFrameArgs( |
4499 CreateBeginFrameArgsForTesting(time_ticks)); | 4499 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
4500 | 4500 |
4501 gfx::Size tile_size(100, 100); | 4501 gfx::Size tile_size(100, 100); |
4502 gfx::Size layer_bounds(200, 200); | 4502 gfx::Size layer_bounds(200, 200); |
4503 gfx::Rect layer_rect(layer_bounds); | 4503 gfx::Rect layer_rect(layer_bounds); |
4504 | 4504 |
4505 FakeContentLayerClient client; | 4505 FakeContentLayerClient client; |
4506 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); | 4506 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); |
4507 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); | 4507 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); |
4508 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); | 4508 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); |
4509 host->SetRootLayer(layer); | 4509 host->SetRootLayer(layer); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4556 } | 4556 } |
4557 | 4557 |
4558 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) { | 4558 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) { |
4559 TestQuadsForSolidColor(false); | 4559 TestQuadsForSolidColor(false); |
4560 } | 4560 } |
4561 | 4561 |
4562 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) { | 4562 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) { |
4563 base::TimeTicks time_ticks; | 4563 base::TimeTicks time_ticks; |
4564 time_ticks += base::TimeDelta::FromMilliseconds(1); | 4564 time_ticks += base::TimeDelta::FromMilliseconds(1); |
4565 host_impl_.SetCurrentBeginFrameArgs( | 4565 host_impl_.SetCurrentBeginFrameArgs( |
4566 CreateBeginFrameArgsForTesting(time_ticks)); | 4566 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
4567 | 4567 |
4568 gfx::Size tile_size(100, 100); | 4568 gfx::Size tile_size(100, 100); |
4569 gfx::Size layer_bounds(200, 200); | 4569 gfx::Size layer_bounds(200, 200); |
4570 gfx::Rect layer_rect(layer_bounds); | 4570 gfx::Rect layer_rect(layer_bounds); |
4571 | 4571 |
4572 FakeContentLayerClient client; | 4572 FakeContentLayerClient client; |
4573 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); | 4573 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); |
4574 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); | 4574 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); |
4575 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); | 4575 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); |
4576 host->SetRootLayer(layer); | 4576 host->SetRootLayer(layer); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4613 | 4613 |
4614 // We've switched to a solid color, so we should end up with no tilings. | 4614 // We've switched to a solid color, so we should end up with no tilings. |
4615 ASSERT_TRUE(active_layer_->tilings()); | 4615 ASSERT_TRUE(active_layer_->tilings()); |
4616 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); | 4616 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); |
4617 } | 4617 } |
4618 | 4618 |
4619 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) { | 4619 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) { |
4620 base::TimeTicks time_ticks; | 4620 base::TimeTicks time_ticks; |
4621 time_ticks += base::TimeDelta::FromMilliseconds(1); | 4621 time_ticks += base::TimeDelta::FromMilliseconds(1); |
4622 host_impl_.SetCurrentBeginFrameArgs( | 4622 host_impl_.SetCurrentBeginFrameArgs( |
4623 CreateBeginFrameArgsForTesting(time_ticks)); | 4623 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
4624 | 4624 |
4625 gfx::Size tile_size(100, 100); | 4625 gfx::Size tile_size(100, 100); |
4626 gfx::Size layer_bounds(400, 4000); | 4626 gfx::Size layer_bounds(400, 4000); |
4627 | 4627 |
4628 scoped_refptr<FakePicturePileImpl> pending_pile = | 4628 scoped_refptr<FakePicturePileImpl> pending_pile = |
4629 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 4629 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
4630 scoped_refptr<FakePicturePileImpl> active_pile = | 4630 scoped_refptr<FakePicturePileImpl> active_pile = |
4631 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 4631 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
4632 | 4632 |
4633 SetupTrees(pending_pile, active_pile); | 4633 SetupTrees(pending_pile, active_pile); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4735 result = layer->CalculateTileSize(gfx::Size(447, 400)); | 4735 result = layer->CalculateTileSize(gfx::Size(447, 400)); |
4736 EXPECT_EQ(result.width(), 448); | 4736 EXPECT_EQ(result.width(), 448); |
4737 EXPECT_EQ(result.height(), 448); | 4737 EXPECT_EQ(result.height(), 448); |
4738 result = layer->CalculateTileSize(gfx::Size(500, 499)); | 4738 result = layer->CalculateTileSize(gfx::Size(500, 499)); |
4739 EXPECT_EQ(result.width(), 512); | 4739 EXPECT_EQ(result.width(), 512); |
4740 EXPECT_EQ(result.height(), 500 + 2); | 4740 EXPECT_EQ(result.height(), 500 + 2); |
4741 } | 4741 } |
4742 | 4742 |
4743 } // namespace | 4743 } // namespace |
4744 } // namespace cc | 4744 } // namespace cc |
OLD | NEW |