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

Side by Side Diff: cc/trees/layer_tree_host_unittest_delegated.cc

Issue 311253004: Invert DSF to map from delegated frame to layer space (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win build Created 6 years, 6 months 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 | Annotate | Revision Log
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/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
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, 10, 6) damage. 489 // Should create a total amount of gfx::Rect(2, 2, 10, 6) damage.
danakj 2014/06/06 17:17:12 Add a comment here explaining why 2,2,10,6 becomes
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698