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 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 |