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