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