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/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
479 // damaged. | 479 // damaged. |
480 SetFrameData( | 480 SetFrameData( |
481 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1))); | 481 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1))); |
482 break; | 482 break; |
483 case 2: | 483 case 2: |
484 // A different frame size will damage the whole layer. | 484 // A different frame size will damage the whole layer. |
485 SetFrameData( | 485 SetFrameData( |
486 CreateFrameData(gfx::Rect(0, 0, 20, 20), gfx::Rect(0, 0, 0, 0))); | 486 CreateFrameData(gfx::Rect(0, 0, 20, 20), gfx::Rect(0, 0, 0, 0))); |
487 break; | 487 break; |
488 case 3: | 488 case 3: |
489 // Should create a total amount of gfx::Rect(2, 2, 8, 6) damage: | 489 // Should create a total amount of gfx::Rect(2, 2, 10, 6) damage. |
490 // (2, 2, 10, 6) clamped to the root output rect. | 490 // The frame size is 20x20 while the layer is 10x10, so this should |
| 491 // produce a gfx::Rect(1, 1, 5, 3) damage rect. |
491 SetFrameData( | 492 SetFrameData( |
492 CreateFrameData(gfx::Rect(0, 0, 20, 20), gfx::Rect(2, 2, 5, 5))); | 493 CreateFrameData(gfx::Rect(0, 0, 20, 20), gfx::Rect(2, 2, 5, 5))); |
493 SetFrameData( | 494 SetFrameData( |
494 CreateFrameData(gfx::Rect(0, 0, 20, 20), gfx::Rect(7, 2, 5, 6))); | 495 CreateFrameData(gfx::Rect(0, 0, 20, 20), gfx::Rect(7, 2, 5, 6))); |
495 break; | 496 break; |
496 case 4: | 497 case 4: |
497 // Should create zero damage. | 498 // Should create zero damage. |
498 layer_tree_host()->SetNeedsCommit(); | 499 layer_tree_host()->SetNeedsCommit(); |
499 break; | 500 break; |
500 case 5: | 501 case 5: |
(...skipping 26 matching lines...) Expand all Loading... |
527 // Changing the frame size damages the full layer. | 528 // Changing the frame size damages the full layer. |
528 SetFrameData( | 529 SetFrameData( |
529 CreateFrameData(gfx::Rect(0, 0, 5, 5), gfx::Rect(4, 4, 1, 1))); | 530 CreateFrameData(gfx::Rect(0, 0, 5, 5), gfx::Rect(4, 4, 1, 1))); |
530 break; | 531 break; |
531 case 12: | 532 case 12: |
532 // An invalid frame isn't used, so it should not cause damage. | 533 // An invalid frame isn't used, so it should not cause damage. |
533 SetFrameData(CreateInvalidFrameData(gfx::Rect(0, 0, 5, 5), | 534 SetFrameData(CreateInvalidFrameData(gfx::Rect(0, 0, 5, 5), |
534 gfx::Rect(4, 4, 1, 1))); | 535 gfx::Rect(4, 4, 1, 1))); |
535 break; | 536 break; |
536 case 13: | 537 case 13: |
537 // Should create gfx::Rect(1, 1, 2, 2) of damage. | 538 // Should create gfx::Rect(1, 1, 2, 2) of damage. The frame size is |
| 539 // 5x5 and the display size is now set to 10x10, so this should result |
| 540 // in a gfx::Rect(2, 2, 4, 4) damage rect. |
538 SetFrameData( | 541 SetFrameData( |
539 CreateFrameData(gfx::Rect(0, 0, 5, 5), gfx::Rect(1, 1, 2, 2))); | 542 CreateFrameData(gfx::Rect(0, 0, 5, 5), gfx::Rect(1, 1, 2, 2))); |
540 break; | 543 break; |
541 case 14: | 544 case 14: |
542 // Should create zero damage. | 545 // Should create zero damage. |
543 layer_tree_host()->SetNeedsCommit(); | 546 layer_tree_host()->SetNeedsCommit(); |
544 break; | 547 break; |
545 case 15: | 548 case 15: |
546 // Moving the layer out of the tree and back in will damage the whole | 549 // Moving the layer out of the tree and back in will damage the whole |
547 // impl layer. | 550 // impl layer. |
(...skipping 25 matching lines...) Expand all Loading... |
573 | 576 |
574 // Also set a new frame. | 577 // Also set a new frame. |
575 SetFrameData( | 578 SetFrameData( |
576 CreateFrameData(gfx::Rect(0, 0, 10, 10), gfx::Rect(4, 0, 1, 1))); | 579 CreateFrameData(gfx::Rect(0, 0, 10, 10), gfx::Rect(4, 0, 1, 1))); |
577 break; | 580 break; |
578 case 19: | 581 case 19: |
579 // Set another new frame, both layers should be damaged in the same | 582 // Set another new frame, both layers should be damaged in the same |
580 // ways. | 583 // ways. |
581 SetFrameData( | 584 SetFrameData( |
582 CreateFrameData(gfx::Rect(0, 0, 10, 10), gfx::Rect(3, 3, 1, 1))); | 585 CreateFrameData(gfx::Rect(0, 0, 10, 10), gfx::Rect(3, 3, 1, 1))); |
583 break; | |
584 } | 586 } |
585 first_draw_for_source_frame_ = true; | 587 first_draw_for_source_frame_ = true; |
586 } | 588 } |
587 | 589 |
588 virtual DrawResult PrepareToDrawOnThread( | 590 virtual DrawResult PrepareToDrawOnThread( |
589 LayerTreeHostImpl* host_impl, | 591 LayerTreeHostImpl* host_impl, |
590 LayerTreeHostImpl::FrameData* frame, | 592 LayerTreeHostImpl::FrameData* frame, |
591 DrawResult draw_result) OVERRIDE { | 593 DrawResult draw_result) OVERRIDE { |
592 EXPECT_EQ(DRAW_SUCCESS, draw_result); | 594 EXPECT_EQ(DRAW_SUCCESS, draw_result); |
593 | 595 |
(...skipping 13 matching lines...) Expand all Loading... |
607 // First frame is damaged because of viewport resize. | 609 // First frame is damaged because of viewport resize. |
608 EXPECT_EQ(gfx::Rect(15, 15).ToString(), damage_rect.ToString()); | 610 EXPECT_EQ(gfx::Rect(15, 15).ToString(), damage_rect.ToString()); |
609 break; | 611 break; |
610 case 1: | 612 case 1: |
611 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); | 613 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); |
612 break; | 614 break; |
613 case 2: | 615 case 2: |
614 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); | 616 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); |
615 break; | 617 break; |
616 case 3: | 618 case 3: |
617 EXPECT_EQ(gfx::Rect(2, 2, 8, 6).ToString(), damage_rect.ToString()); | 619 EXPECT_EQ(gfx::Rect(1, 1, 5, 3).ToString(), damage_rect.ToString()); |
618 break; | 620 break; |
619 case 4: | 621 case 4: |
620 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); | 622 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); |
621 break; | 623 break; |
622 case 5: | 624 case 5: |
623 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); | 625 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); |
624 break; | 626 break; |
625 case 6: | 627 case 6: |
626 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); | 628 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); |
627 break; | 629 break; |
628 case 7: | 630 case 7: |
629 EXPECT_EQ(gfx::Rect(6, 6).ToString(), damage_rect.ToString()); | 631 EXPECT_EQ(gfx::Rect(6, 6).ToString(), damage_rect.ToString()); |
630 break; | 632 break; |
631 case 8: | 633 case 8: |
632 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); | 634 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); |
633 break; | 635 break; |
634 case 9: | 636 case 9: |
635 EXPECT_EQ(gfx::Rect(6, 6).ToString(), damage_rect.ToString()); | 637 EXPECT_EQ(gfx::Rect(6, 6).ToString(), damage_rect.ToString()); |
636 break; | 638 break; |
637 case 10: | 639 case 10: |
638 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); | 640 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); |
639 break; | 641 break; |
640 case 11: | 642 case 11: |
641 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); | 643 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); |
642 break; | 644 break; |
643 case 12: | 645 case 12: |
644 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); | 646 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); |
645 break; | 647 break; |
646 case 13: | 648 case 13: |
647 EXPECT_EQ(gfx::Rect(1, 1, 2, 2).ToString(), damage_rect.ToString()); | 649 EXPECT_EQ(gfx::Rect(2, 2, 4, 4).ToString(), damage_rect.ToString()); |
648 break; | 650 break; |
649 case 14: | 651 case 14: |
650 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); | 652 EXPECT_EQ(gfx::Rect().ToString(), damage_rect.ToString()); |
651 break; | 653 break; |
652 case 15: | 654 case 15: |
653 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); | 655 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); |
654 break; | 656 break; |
655 case 16: | 657 case 16: |
656 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); | 658 EXPECT_EQ(gfx::Rect(10, 10).ToString(), damage_rect.ToString()); |
657 break; | 659 break; |
(...skipping 1533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2191 } | 2193 } |
2192 | 2194 |
2193 scoped_refptr<DelegatedRendererLayer> delegated_thief_; | 2195 scoped_refptr<DelegatedRendererLayer> delegated_thief_; |
2194 }; | 2196 }; |
2195 | 2197 |
2196 SINGLE_AND_MULTI_THREAD_TEST_F( | 2198 SINGLE_AND_MULTI_THREAD_TEST_F( |
2197 LayerTreeHostDelegatedTestRemoveAndChangeResources); | 2199 LayerTreeHostDelegatedTestRemoveAndChangeResources); |
2198 | 2200 |
2199 } // namespace | 2201 } // namespace |
2200 } // namespace cc | 2202 } // namespace cc |
OLD | NEW |