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

Side by Side Diff: cc/layer_tree_host_unittest_scroll.cc

Issue 11830040: cc: Do not request redraw on commit when impl-side painting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@decouple_draw3
Patch Set: Use CC_EXPORT Created 7 years, 11 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
« no previous file with comments | « cc/cc.gyp ('k') | cc/scheduler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/layer_tree_host.h" 5 #include "cc/layer_tree_host.h"
6 6
7 #include "cc/content_layer.h" 7 #include "cc/content_layer.h"
8 #include "cc/layer.h" 8 #include "cc/layer.h"
9 #include "cc/layer_impl.h" 9 #include "cc/layer_impl.h"
10 #include "cc/layer_tree_impl.h" 10 #include "cc/layer_tree_impl.h"
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 // Pretend like Javascript updated the scroll position itself with a 530 // Pretend like Javascript updated the scroll position itself with a
531 // change of main_thread_scroll. 531 // change of main_thread_scroll.
532 root->setScrollOffset(initial_scroll_ + main_thread_scroll_ + impl_thread_ scroll1_); 532 root->setScrollOffset(initial_scroll_ + main_thread_scroll_ + impl_thread_ scroll1_);
533 } 533 }
534 } 534 }
535 535
536 virtual bool canActivatePendingTree() OVERRIDE { 536 virtual bool canActivatePendingTree() OVERRIDE {
537 return can_activate_; 537 return can_activate_;
538 } 538 }
539 539
540 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE {
541 // We force a second draw here of the first commit before activating
542 // the second commit.
543 if (impl->activeTree()->source_frame_number() == 0)
544 impl->setNeedsRedraw();
545 }
546
540 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 547 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
541 ImplSidePaintingScrollTest::drawLayersOnThread(impl); 548 ImplSidePaintingScrollTest::drawLayersOnThread(impl);
542 549
543 LayerImpl* root = impl->rootLayer(); 550 LayerImpl* root = impl->rootLayer();
544 root->setScrollable(true); 551 root->setScrollable(true);
545 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 552 root->setMaxScrollOffset(gfx::Vector2d(100, 100));
546 553
547 LayerImpl* pending_root = 554 LayerImpl* pending_root =
548 impl->activeTree()->FindPendingTreeLayerById(root->id()); 555 impl->activeTree()->FindPendingTreeLayerById(root->id());
549 556
550 switch (impl->activeTree()->source_frame_number()) { 557 switch (impl->activeTree()->source_frame_number()) {
551 case 0: 558 case 0:
552 if (!impl->pendingTree()) { 559 if (!impl->pendingTree()) {
553 can_activate_ = false; 560 can_activate_ = false;
554 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 561 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
555 root->scrollBy(impl_thread_scroll1_); 562 root->scrollBy(impl_thread_scroll1_);
556 563
557 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 564 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_);
558 EXPECT_VECTOR_EQ(root->scrollDelta(), impl_thread_scroll1_); 565 EXPECT_VECTOR_EQ(root->scrollDelta(), impl_thread_scroll1_);
559 EXPECT_VECTOR_EQ(root->sentScrollDelta(), gfx::Vector2d()); 566 EXPECT_VECTOR_EQ(root->sentScrollDelta(), gfx::Vector2d());
560 postSetNeedsCommitToMainThread(); 567 postSetNeedsCommitToMainThread();
568
569 // commitCompleteOnThread will trigger this function again
570 // and cause us to take the else clause.
561 } else { 571 } else {
562 can_activate_ = true; 572 can_activate_ = true;
563 ASSERT_TRUE(pending_root); 573 ASSERT_TRUE(pending_root);
564 EXPECT_EQ(impl->pendingTree()->source_frame_number(), 1); 574 EXPECT_EQ(impl->pendingTree()->source_frame_number(), 1);
565 575
566 root->scrollBy(impl_thread_scroll2_); 576 root->scrollBy(impl_thread_scroll2_);
567 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 577 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_);
568 EXPECT_VECTOR_EQ(root->scrollDelta(), 578 EXPECT_VECTOR_EQ(root->scrollDelta(),
569 impl_thread_scroll1_ + impl_thread_scroll2_); 579 impl_thread_scroll1_ + impl_thread_scroll2_);
570 EXPECT_VECTOR_EQ(root->sentScrollDelta(), impl_thread_scroll1_); 580 EXPECT_VECTOR_EQ(root->sentScrollDelta(), impl_thread_scroll1_);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 gfx::Vector2d impl_thread_scroll1_; 613 gfx::Vector2d impl_thread_scroll1_;
604 gfx::Vector2d impl_thread_scroll2_; 614 gfx::Vector2d impl_thread_scroll2_;
605 int num_scrolls_; 615 int num_scrolls_;
606 bool can_activate_; 616 bool can_activate_;
607 }; 617 };
608 618
609 MULTI_THREAD_TEST_F(ImplSidePaintingScrollTestSimple); 619 MULTI_THREAD_TEST_F(ImplSidePaintingScrollTestSimple);
610 620
611 } // namespace 621 } // namespace
612 } // namespace cc 622 } // namespace cc
OLDNEW
« no previous file with comments | « cc/cc.gyp ('k') | cc/scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698