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

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

Issue 1418273002: cc: Move draw params from SetExternalDrawConstraints to OnDraw (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tests fixed Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | cc/output/output_surface.h » ('j') | cc/test/fake_output_surface.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 gfx::Size layer_bounds(400, 400); 480 gfx::Size layer_bounds(400, 400);
481 SetupDefaultTrees(layer_bounds); 481 SetupDefaultTrees(layer_bounds);
482 482
483 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, 483 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
484 false); 484 false);
485 485
486 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 486 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
487 487
488 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the 488 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the
489 // identify transform for tile priority. 489 // identify transform for tile priority.
490 bool resourceless_software_draw = false; 490 gfx::Rect viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100);
491 gfx::Rect viewport = gfx::Rect(layer_bounds),
492 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100);
493 gfx::Transform transform, transform_for_tile_priority; 491 gfx::Transform transform, transform_for_tile_priority;
494 492
495 host_impl_.SetExternalDrawConstraints(transform, 493 host_impl_.SetExternalDrawConstraints(viewport_rect_for_tile_priority,
496 viewport, 494 transform_for_tile_priority);
497 viewport,
498 viewport_rect_for_tile_priority,
499 transform_for_tile_priority,
500 resourceless_software_draw);
501 bool update_lcd_text = false; 495 bool update_lcd_text = false;
502 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text); 496 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text);
503 497
504 gfx::Rect viewport_rect_for_tile_priority_in_view_space = 498 gfx::Rect viewport_rect_for_tile_priority_in_view_space =
505 viewport_rect_for_tile_priority; 499 viewport_rect_for_tile_priority;
506 500
507 // Verify the viewport rect for tile priority is used in picture layer tiling. 501 // Verify the viewport rect for tile priority is used in picture layer tiling.
508 EXPECT_EQ(viewport_rect_for_tile_priority_in_view_space, 502 EXPECT_EQ(viewport_rect_for_tile_priority_in_view_space,
509 active_layer_->viewport_rect_for_tile_priority_in_content_space()); 503 active_layer_->viewport_rect_for_tile_priority_in_content_space());
510 PictureLayerTilingSet* tilings = active_layer_->tilings(); 504 PictureLayerTilingSet* tilings = active_layer_->tilings();
511 for (size_t i = 0; i < tilings->num_tilings(); i++) { 505 for (size_t i = 0; i < tilings->num_tilings(); i++) {
512 PictureLayerTiling* tiling = tilings->tiling_at(i); 506 PictureLayerTiling* tiling = tilings->tiling_at(i);
513 EXPECT_EQ( 507 EXPECT_EQ(
514 tiling->GetCurrentVisibleRectForTesting(), 508 tiling->GetCurrentVisibleRectForTesting(),
515 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, 509 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space,
516 tiling->contents_scale())); 510 tiling->contents_scale()));
517 } 511 }
518 512
519 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in 513 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in
520 // screen space and the transform for tile priority is translated and 514 // screen space and the transform for tile priority is translated and
521 // rotated. The actual viewport for tile priority used by PictureLayerImpl 515 // rotated. The actual viewport for tile priority used by PictureLayerImpl
522 // should be (200, 200, 100, 100) applied with the said transform. 516 // should be (200, 200, 100, 100) applied with the said transform.
523 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 517 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
524 518
525 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100); 519 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100);
526 transform_for_tile_priority.Translate(100, 100); 520 transform_for_tile_priority.Translate(100, 100);
527 transform_for_tile_priority.Rotate(45); 521 transform_for_tile_priority.Rotate(45);
528 host_impl_.SetExternalDrawConstraints(transform, 522 host_impl_.SetExternalDrawConstraints(viewport_rect_for_tile_priority,
529 viewport, 523 transform_for_tile_priority);
530 viewport,
531 viewport_rect_for_tile_priority,
532 transform_for_tile_priority,
533 resourceless_software_draw);
534 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text); 524 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text);
535 525
536 gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization); 526 gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization);
537 bool success = transform_for_tile_priority.GetInverse(&screen_to_view); 527 bool success = transform_for_tile_priority.GetInverse(&screen_to_view);
538 EXPECT_TRUE(success); 528 EXPECT_TRUE(success);
539 529
540 // Note that we don't clip this to the layer bounds, since it is expected that 530 // Note that we don't clip this to the layer bounds, since it is expected that
541 // the rect will sometimes be outside of the layer bounds. If we clip to 531 // the rect will sometimes be outside of the layer bounds. If we clip to
542 // bounds, then tile priorities will end up being incorrect in cases of fully 532 // bounds, then tile priorities will end up being incorrect in cases of fully
543 // offscreen layer. 533 // offscreen layer.
(...skipping 20 matching lines...) Expand all
564 554
565 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, 555 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
566 false); 556 false);
567 557
568 // UpdateTiles with valid viewport. Should update tile viewport. 558 // UpdateTiles with valid viewport. Should update tile viewport.
569 // Note viewport is considered invalid if and only if in resourceless 559 // Note viewport is considered invalid if and only if in resourceless
570 // software draw. 560 // software draw.
571 bool resourceless_software_draw = false; 561 bool resourceless_software_draw = false;
572 gfx::Rect viewport = gfx::Rect(layer_bounds); 562 gfx::Rect viewport = gfx::Rect(layer_bounds);
573 gfx::Transform transform; 563 gfx::Transform transform;
574 host_impl_.SetExternalDrawConstraints(transform, 564 host_impl_.SetExternalDrawConstraints(viewport, transform);
575 viewport,
576 viewport,
577 viewport,
578 transform,
579 resourceless_software_draw);
580 active_layer_->draw_properties().visible_layer_rect = viewport; 565 active_layer_->draw_properties().visible_layer_rect = viewport;
581 active_layer_->draw_properties().screen_space_transform = transform; 566 active_layer_->draw_properties().screen_space_transform = transform;
582 active_layer_->UpdateTiles(resourceless_software_draw); 567 active_layer_->UpdateTiles(resourceless_software_draw);
583 568
584 gfx::Rect visible_rect_for_tile_priority = 569 gfx::Rect visible_rect_for_tile_priority =
585 active_layer_->visible_rect_for_tile_priority(); 570 active_layer_->visible_rect_for_tile_priority();
586 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 571 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
587 gfx::Transform screen_space_transform_for_tile_priority = 572 gfx::Transform screen_space_transform_for_tile_priority =
588 active_layer_->screen_space_transform(); 573 active_layer_->screen_space_transform();
589 574
590 // Expand viewport and set it as invalid for prioritizing tiles. 575 // Expand viewport and set it as invalid for prioritizing tiles.
591 // Should update viewport and transform, but not update visible rect. 576 // Should update viewport and transform, but not update visible rect.
592 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 577 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
593 resourceless_software_draw = true; 578 resourceless_software_draw = true;
594 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 579 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
595 transform.Translate(1.f, 1.f); 580 transform.Translate(1.f, 1.f);
596 active_layer_->draw_properties().visible_layer_rect = viewport; 581 active_layer_->draw_properties().visible_layer_rect = viewport;
597 active_layer_->draw_properties().screen_space_transform = transform; 582 active_layer_->draw_properties().screen_space_transform = transform;
598 host_impl_.SetExternalDrawConstraints(transform, 583 host_impl_.SetExternalDrawConstraints(viewport, transform);
599 viewport,
600 viewport,
601 viewport,
602 transform,
603 resourceless_software_draw);
604 active_layer_->UpdateTiles(resourceless_software_draw); 584 active_layer_->UpdateTiles(resourceless_software_draw);
605 585
606 // Transform for tile priority is updated. 586 // Transform for tile priority is updated.
607 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 587 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
608 active_layer_->screen_space_transform()); 588 active_layer_->screen_space_transform());
609 // Visible rect for tile priority retains old value. 589 // Visible rect for tile priority retains old value.
610 EXPECT_EQ(visible_rect_for_tile_priority, 590 EXPECT_EQ(visible_rect_for_tile_priority,
611 active_layer_->visible_rect_for_tile_priority()); 591 active_layer_->visible_rect_for_tile_priority());
612 592
613 // Keep expanded viewport but mark it valid. Should update tile viewport. 593 // Keep expanded viewport but mark it valid. Should update tile viewport.
614 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 594 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
615 resourceless_software_draw = false; 595 resourceless_software_draw = false;
616 host_impl_.SetExternalDrawConstraints(transform, 596 host_impl_.SetExternalDrawConstraints(viewport, transform);
617 viewport,
618 viewport,
619 viewport,
620 transform,
621 resourceless_software_draw);
622 active_layer_->UpdateTiles(resourceless_software_draw); 597 active_layer_->UpdateTiles(resourceless_software_draw);
623 598
624 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 599 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
625 active_layer_->screen_space_transform()); 600 active_layer_->screen_space_transform());
626 EXPECT_EQ(viewport, active_layer_->visible_rect_for_tile_priority()); 601 EXPECT_EQ(viewport, active_layer_->visible_rect_for_tile_priority());
627 } 602 }
628 603
629 TEST_F(PictureLayerImplTest, ViewportRectForTilePriorityIsCached) { 604 TEST_F(PictureLayerImplTest, ViewportRectForTilePriorityIsCached) {
630 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 605 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
631 gfx::Size layer_bounds(400, 400); 606 gfx::Size layer_bounds(400, 400);
632 SetupDefaultTrees(layer_bounds); 607 SetupDefaultTrees(layer_bounds);
633 608
634 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, 609 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
635 false); 610 false);
636 611
637 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 612 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
638 613
639 bool resourceless_software_draw = false;
640 gfx::Rect viewport = gfx::Rect(layer_bounds);
641 gfx::Rect viewport_rect_for_tile_priority(0, 0, 100, 100); 614 gfx::Rect viewport_rect_for_tile_priority(0, 0, 100, 100);
642 gfx::Transform transform, transform_for_tile_priority; 615 gfx::Transform transform_for_tile_priority;
643 616
644 host_impl_.SetExternalDrawConstraints( 617 host_impl_.SetExternalDrawConstraints(viewport_rect_for_tile_priority,
645 transform, viewport, viewport, viewport_rect_for_tile_priority, 618 transform_for_tile_priority);
646 transform_for_tile_priority, resourceless_software_draw);
647 bool update_lcd_text = false; 619 bool update_lcd_text = false;
648 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text); 620 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text);
649 621
650 EXPECT_EQ(viewport_rect_for_tile_priority, 622 EXPECT_EQ(viewport_rect_for_tile_priority,
651 active_layer_->viewport_rect_for_tile_priority_in_content_space()); 623 active_layer_->viewport_rect_for_tile_priority_in_content_space());
652 624
653 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 625 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
654 626
655 gfx::Rect another_viewport_rect_for_tile_priority(11, 11, 50, 50); 627 gfx::Rect another_viewport_rect_for_tile_priority(11, 11, 50, 50);
656 host_impl_.SetExternalDrawConstraints( 628 host_impl_.SetExternalDrawConstraints(another_viewport_rect_for_tile_priority,
657 transform, viewport, viewport, another_viewport_rect_for_tile_priority, 629 transform_for_tile_priority);
658 transform_for_tile_priority, resourceless_software_draw);
659 630
660 // Didn't call UpdateDrawProperties yet. The viewport rect for tile priority 631 // Didn't call UpdateDrawProperties yet. The viewport rect for tile priority
661 // should remain to be the previously cached value. 632 // should remain to be the previously cached value.
662 EXPECT_EQ(viewport_rect_for_tile_priority, 633 EXPECT_EQ(viewport_rect_for_tile_priority,
663 active_layer_->viewport_rect_for_tile_priority_in_content_space()); 634 active_layer_->viewport_rect_for_tile_priority_in_content_space());
664 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text); 635 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text);
665 636
666 // Now the UpdateDrawProperties is called. The viewport rect for tile 637 // Now the UpdateDrawProperties is called. The viewport rect for tile
667 // priority should be the latest value. 638 // priority should be the latest value.
668 EXPECT_EQ(another_viewport_rect_for_tile_priority, 639 EXPECT_EQ(another_viewport_rect_for_tile_priority,
(...skipping 1102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1771 // tilings. 1742 // tilings.
1772 ActivateTree(); 1743 ActivateTree();
1773 EXPECT_TRUE(active_layer_->CanHaveTilings()); 1744 EXPECT_TRUE(active_layer_->CanHaveTilings());
1774 EXPECT_GT(active_layer_->ideal_contents_scale(), 0.f); 1745 EXPECT_GT(active_layer_->ideal_contents_scale(), 0.f);
1775 } 1746 }
1776 1747
1777 TEST_F(NoLowResPictureLayerImplTest, MarkRequiredOffscreenTiles) { 1748 TEST_F(NoLowResPictureLayerImplTest, MarkRequiredOffscreenTiles) {
1778 gfx::Size layer_bounds(200, 200); 1749 gfx::Size layer_bounds(200, 200);
1779 1750
1780 gfx::Transform transform; 1751 gfx::Transform transform;
1781 gfx::Transform transform_for_tile_priority;
1782 bool resourceless_software_draw = false; 1752 bool resourceless_software_draw = false;
1783 gfx::Rect viewport(0, 0, 100, 200); 1753 gfx::Rect viewport(0, 0, 100, 200);
1784 host_impl_.SetExternalDrawConstraints(transform, 1754 host_impl_.SetExternalDrawConstraints(viewport, transform);
1785 viewport, 1755 host_impl_.SetExternalViewporForTesting(viewport);
danakj 2015/11/24 21:17:30 Why is this needed for this test?
boliu 2015/11/24 23:27:37 Good question.. It's needed for the for the EXPEC
danakj 2015/12/10 22:33:54 There's a typo "SetExternalViewporForTesting" -> V
1786 viewport,
1787 viewport,
1788 transform,
1789 resourceless_software_draw);
1790 1756
1791 scoped_refptr<FakeDisplayListRasterSource> pending_raster_source = 1757 scoped_refptr<FakeDisplayListRasterSource> pending_raster_source =
1792 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 1758 FakeDisplayListRasterSource::CreateFilled(layer_bounds);
1793 SetupPendingTreeWithFixedTileSize(pending_raster_source, gfx::Size(100, 100), 1759 SetupPendingTreeWithFixedTileSize(pending_raster_source, gfx::Size(100, 100),
1794 Region()); 1760 Region());
1795 1761
1796 EXPECT_EQ(1u, pending_layer_->num_tilings()); 1762 EXPECT_EQ(1u, pending_layer_->num_tilings());
1797 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority()); 1763 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority());
1798 1764
1799 base::TimeTicks time_ticks; 1765 base::TimeTicks time_ticks;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1833 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); 1799 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
1834 1800
1835 ASSERT_EQ(1u, pending_layer_->num_tilings()); 1801 ASSERT_EQ(1u, pending_layer_->num_tilings());
1836 ASSERT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale()); 1802 ASSERT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale());
1837 1803
1838 // Set external viewport for tile priority. 1804 // Set external viewport for tile priority.
1839 gfx::Rect viewport = gfx::Rect(layer_bounds); 1805 gfx::Rect viewport = gfx::Rect(layer_bounds);
1840 gfx::Transform transform; 1806 gfx::Transform transform;
1841 gfx::Transform transform_for_tile_priority; 1807 gfx::Transform transform_for_tile_priority;
1842 bool resourceless_software_draw = false; 1808 bool resourceless_software_draw = false;
1843 host_impl_.SetExternalDrawConstraints(transform, 1809 host_impl_.SetExternalDrawConstraints(external_viewport_for_tile_priority,
1844 viewport, 1810 transform_for_tile_priority);
1845 viewport,
1846 external_viewport_for_tile_priority,
1847 transform_for_tile_priority,
1848 resourceless_software_draw);
1849 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1811 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1850 bool update_lcd_text = false; 1812 bool update_lcd_text = false;
1851 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); 1813 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
1852 1814
1853 // Set visible content rect that is different from 1815 // Set visible content rect that is different from
1854 // external_viewport_for_tile_priority. 1816 // external_viewport_for_tile_priority.
1855 pending_layer_->draw_properties().visible_layer_rect = visible_layer_rect; 1817 pending_layer_->draw_properties().visible_layer_rect = visible_layer_rect;
1856 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 1818 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
1857 pending_layer_->UpdateTiles(resourceless_software_draw); 1819 pending_layer_->UpdateTiles(resourceless_software_draw);
1858 1820
(...skipping 1724 matching lines...) Expand 10 before | Expand all | Expand 10 after
3583 3545
3584 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, 3546 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
3585 false); 3547 false);
3586 3548
3587 // UpdateTiles with valid viewport. Should update tile viewport. 3549 // UpdateTiles with valid viewport. Should update tile viewport.
3588 // Note viewport is considered invalid if and only if in resourceless 3550 // Note viewport is considered invalid if and only if in resourceless
3589 // software draw. 3551 // software draw.
3590 bool resourceless_software_draw = false; 3552 bool resourceless_software_draw = false;
3591 gfx::Rect viewport = gfx::Rect(layer_bounds); 3553 gfx::Rect viewport = gfx::Rect(layer_bounds);
3592 gfx::Transform transform; 3554 gfx::Transform transform;
3593 host_impl_.SetExternalDrawConstraints(transform, 3555 host_impl_.SetExternalDrawConstraints(viewport, transform);
3594 viewport,
3595 viewport,
3596 viewport,
3597 transform,
3598 resourceless_software_draw);
3599 active_layer_->draw_properties().visible_layer_rect = viewport; 3556 active_layer_->draw_properties().visible_layer_rect = viewport;
3600 active_layer_->draw_properties().screen_space_transform = transform; 3557 active_layer_->draw_properties().screen_space_transform = transform;
3601 active_layer_->UpdateTiles(resourceless_software_draw); 3558 active_layer_->UpdateTiles(resourceless_software_draw);
3602 3559
3603 gfx::Rect visible_rect_for_tile_priority = 3560 gfx::Rect visible_rect_for_tile_priority =
3604 active_layer_->visible_rect_for_tile_priority(); 3561 active_layer_->visible_rect_for_tile_priority();
3605 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 3562 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
3606 gfx::Transform screen_space_transform_for_tile_priority = 3563 gfx::Transform screen_space_transform_for_tile_priority =
3607 active_layer_->screen_space_transform(); 3564 active_layer_->screen_space_transform();
3608 3565
3609 // Expand viewport and set it as invalid for prioritizing tiles. 3566 // Expand viewport and set it as invalid for prioritizing tiles.
3610 // Should update viewport and transform, but not update visible rect. 3567 // Should update viewport and transform, but not update visible rect.
3611 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 3568 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
3612 resourceless_software_draw = true; 3569 resourceless_software_draw = true;
3613 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 3570 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
3614 transform.Translate(1.f, 1.f); 3571 transform.Translate(1.f, 1.f);
3615 active_layer_->draw_properties().visible_layer_rect = viewport; 3572 active_layer_->draw_properties().visible_layer_rect = viewport;
3616 active_layer_->draw_properties().screen_space_transform = transform; 3573 active_layer_->draw_properties().screen_space_transform = transform;
3617 host_impl_.SetExternalDrawConstraints(transform, 3574 host_impl_.SetExternalDrawConstraints(viewport, transform);
3618 viewport,
3619 viewport,
3620 viewport,
3621 transform,
3622 resourceless_software_draw);
3623 active_layer_->UpdateTiles(resourceless_software_draw); 3575 active_layer_->UpdateTiles(resourceless_software_draw);
3624 3576
3625 // Transform for tile priority is updated. 3577 // Transform for tile priority is updated.
3626 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 3578 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
3627 active_layer_->screen_space_transform()); 3579 active_layer_->screen_space_transform());
3628 // Visible rect for tile priority retains old value. 3580 // Visible rect for tile priority retains old value.
3629 EXPECT_EQ(visible_rect_for_tile_priority, 3581 EXPECT_EQ(visible_rect_for_tile_priority,
3630 active_layer_->visible_rect_for_tile_priority()); 3582 active_layer_->visible_rect_for_tile_priority());
3631 3583
3632 // Keep expanded viewport but mark it valid. Should update tile viewport. 3584 // Keep expanded viewport but mark it valid. Should update tile viewport.
3633 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200)); 3585 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
3634 resourceless_software_draw = false; 3586 resourceless_software_draw = false;
3635 host_impl_.SetExternalDrawConstraints(transform, 3587 host_impl_.SetExternalDrawConstraints(viewport, transform);
3636 viewport,
3637 viewport,
3638 viewport,
3639 transform,
3640 resourceless_software_draw);
3641 active_layer_->UpdateTiles(resourceless_software_draw); 3588 active_layer_->UpdateTiles(resourceless_software_draw);
3642 3589
3643 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 3590 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
3644 active_layer_->screen_space_transform()); 3591 active_layer_->screen_space_transform());
3645 EXPECT_EQ(viewport, active_layer_->visible_rect_for_tile_priority()); 3592 EXPECT_EQ(viewport, active_layer_->visible_rect_for_tile_priority());
3646 } 3593 }
3647 3594
3648 TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) { 3595 TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
3649 gfx::Size layer_bounds(1300, 1900); 3596 gfx::Size layer_bounds(1300, 1900);
3650 std::vector<PictureLayerTiling*> used_tilings; 3597 std::vector<PictureLayerTiling*> used_tilings;
(...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after
4738 scoped_refptr<FakeDisplayListRasterSource> pending_raster_source = 4685 scoped_refptr<FakeDisplayListRasterSource> pending_raster_source =
4739 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 4686 FakeDisplayListRasterSource::CreateFilled(layer_bounds);
4740 scoped_refptr<FakeDisplayListRasterSource> active_raster_source = 4687 scoped_refptr<FakeDisplayListRasterSource> active_raster_source =
4741 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 4688 FakeDisplayListRasterSource::CreateFilled(layer_bounds);
4742 4689
4743 SetupPendingTreeWithFixedTileSize(active_raster_source, tile_size, Region()); 4690 SetupPendingTreeWithFixedTileSize(active_raster_source, tile_size, Region());
4744 4691
4745 ActivateTree(); 4692 ActivateTree();
4746 EXPECT_TRUE(active_layer_->HighResTiling()->has_tiles()); 4693 EXPECT_TRUE(active_layer_->HighResTiling()->has_tiles());
4747 4694
4748 host_impl_.SetExternalDrawConstraints( 4695 host_impl_.SetExternalDrawConstraints(gfx::Rect(0, 5000, 100, 100),
4749 gfx::Transform(), // transform 4696 gfx::Transform());
4750 gfx::Rect(), // clip
4751 gfx::Rect(), // viewport
4752 gfx::Rect(0, 5000, 100, 100), // viewport_rect_for_tile_priority
4753 gfx::Transform(), // transform_for_tile_priority
4754 false);
4755 4697
4756 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, 4698 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size,
4757 gfx::Rect()); 4699 gfx::Rect());
4758 4700
4759 EXPECT_FALSE(pending_layer_->HighResTiling()->has_tiles()); 4701 EXPECT_FALSE(pending_layer_->HighResTiling()->has_tiles());
4760 EXPECT_TRUE(pending_layer_->HighResTiling()->live_tiles_rect().IsEmpty()); 4702 EXPECT_TRUE(pending_layer_->HighResTiling()->live_tiles_rect().IsEmpty());
4761 ActivateTree(); 4703 ActivateTree();
4762 EXPECT_FALSE(active_layer_->HighResTiling()->has_tiles()); 4704 EXPECT_FALSE(active_layer_->HighResTiling()->has_tiles());
4763 EXPECT_TRUE(active_layer_->HighResTiling()->live_tiles_rect().IsEmpty()); 4705 EXPECT_TRUE(active_layer_->HighResTiling()->live_tiles_rect().IsEmpty());
4764 4706
4765 host_impl_.SetExternalDrawConstraints( 4707 host_impl_.SetExternalDrawConstraints(gfx::Rect(0, 110, 100, 100),
4766 gfx::Transform(), // transform 4708 gfx::Transform());
4767 gfx::Rect(), // clip
4768 gfx::Rect(), // viewport
4769 gfx::Rect(0, 110, 100, 100), // viewport_rect_for_tile_priority
4770 gfx::Transform(), // transform_for_tile_priority
4771 false);
4772 4709
4773 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, 4710 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size,
4774 gfx::Rect()); 4711 gfx::Rect());
4775 4712
4776 EXPECT_FALSE(pending_layer_->HighResTiling()->has_tiles()); 4713 EXPECT_FALSE(pending_layer_->HighResTiling()->has_tiles());
4777 EXPECT_FALSE(pending_layer_->HighResTiling()->live_tiles_rect().IsEmpty()); 4714 EXPECT_FALSE(pending_layer_->HighResTiling()->live_tiles_rect().IsEmpty());
4778 ActivateTree(); 4715 ActivateTree();
4779 EXPECT_TRUE(active_layer_->HighResTiling()->has_tiles()); 4716 EXPECT_TRUE(active_layer_->HighResTiling()->has_tiles());
4780 EXPECT_FALSE(active_layer_->HighResTiling()->live_tiles_rect().IsEmpty()); 4717 EXPECT_FALSE(active_layer_->HighResTiling()->live_tiles_rect().IsEmpty());
4781 } 4718 }
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
5040 // New low res tiling. 4977 // New low res tiling.
5041 EXPECT_TRUE(tilings->tiling_at(2)->may_contain_low_resolution_tiles()); 4978 EXPECT_TRUE(tilings->tiling_at(2)->may_contain_low_resolution_tiles());
5042 4979
5043 // This tiling will be high res now, it won't contain low res content since it 4980 // This tiling will be high res now, it won't contain low res content since it
5044 // was all destroyed. 4981 // was all destroyed.
5045 EXPECT_FALSE(tilings->tiling_at(1)->may_contain_low_resolution_tiles()); 4982 EXPECT_FALSE(tilings->tiling_at(1)->may_contain_low_resolution_tiles());
5046 } 4983 }
5047 4984
5048 } // namespace 4985 } // namespace
5049 } // namespace cc 4986 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/output/output_surface.h » ('j') | cc/test/fake_output_surface.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698