OLD | NEW |
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/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include "cc/animation/animation_curve.h" | 7 #include "cc/animation/animation_curve.h" |
8 #include "cc/animation/layer_animation_controller.h" | 8 #include "cc/animation/layer_animation_controller.h" |
9 #include "cc/animation/scroll_offset_animation_curve.h" | 9 #include "cc/animation/scroll_offset_animation_curve.h" |
10 #include "cc/animation/timing_function.h" | 10 #include "cc/animation/timing_function.h" |
(...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 base::TimeTicks monotonic_time) OVERRIDE { | 715 base::TimeTicks monotonic_time) OVERRIDE { |
716 EndTest(); | 716 EndTest(); |
717 } | 717 } |
718 | 718 |
719 virtual void AfterTest() OVERRIDE {} | 719 virtual void AfterTest() OVERRIDE {} |
720 }; | 720 }; |
721 | 721 |
722 SINGLE_AND_MULTI_THREAD_TEST_F( | 722 SINGLE_AND_MULTI_THREAD_TEST_F( |
723 LayerTreeHostAnimationTestLayerAddedWithAnimation); | 723 LayerTreeHostAnimationTestLayerAddedWithAnimation); |
724 | 724 |
725 class LayerTreeHostAnimationTestContinuousAnimate | |
726 : public LayerTreeHostAnimationTest { | |
727 public: | |
728 LayerTreeHostAnimationTestContinuousAnimate() | |
729 : num_commit_complete_(0), num_draw_layers_(0), have_animated_(false) {} | |
730 | |
731 virtual void SetupTree() OVERRIDE { | |
732 LayerTreeHostAnimationTest::SetupTree(); | |
733 // Create a fake content layer so we actually produce new content for every | |
734 // animation frame. | |
735 content_ = FakeContentLayer::Create(&client_); | |
736 content_->set_always_update_resources(true); | |
737 layer_tree_host()->root_layer()->AddChild(content_); | |
738 } | |
739 | |
740 virtual void BeginTest() OVERRIDE { | |
741 PostSetNeedsCommitToMainThread(); | |
742 } | |
743 | |
744 virtual void Animate(base::TimeTicks) OVERRIDE { | |
745 if (num_draw_layers_ == 2) | |
746 return; | |
747 layer_tree_host()->SetNeedsAnimate(); | |
748 have_animated_ = true; | |
749 } | |
750 | |
751 virtual void Layout() OVERRIDE { | |
752 layer_tree_host()->root_layer()->SetNeedsDisplay(); | |
753 } | |
754 | |
755 virtual void CommitCompleteOnThread(LayerTreeHostImpl* tree_impl) OVERRIDE { | |
756 if (num_draw_layers_ == 1) | |
757 num_commit_complete_++; | |
758 } | |
759 | |
760 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { | |
761 num_draw_layers_++; | |
762 if (num_draw_layers_ == 2) | |
763 EndTest(); | |
764 } | |
765 | |
766 virtual void AfterTest() OVERRIDE { | |
767 // Check that we didn't commit twice between first and second draw. | |
768 EXPECT_EQ(1, num_commit_complete_); | |
769 EXPECT_TRUE(have_animated_); | |
770 } | |
771 | |
772 private: | |
773 int num_commit_complete_; | |
774 int num_draw_layers_; | |
775 bool have_animated_; | |
776 FakeContentLayerClient client_; | |
777 scoped_refptr<FakeContentLayer> content_; | |
778 }; | |
779 | |
780 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostAnimationTestContinuousAnimate); | |
781 | |
782 class LayerTreeHostAnimationTestCancelAnimateCommit | 725 class LayerTreeHostAnimationTestCancelAnimateCommit |
783 : public LayerTreeHostAnimationTest { | 726 : public LayerTreeHostAnimationTest { |
784 public: | 727 public: |
785 LayerTreeHostAnimationTestCancelAnimateCommit() | 728 LayerTreeHostAnimationTestCancelAnimateCommit() |
786 : num_animate_calls_(0), num_commit_calls_(0), num_draw_calls_(0) {} | 729 : num_animate_calls_(0), num_commit_calls_(0), num_draw_calls_(0) {} |
787 | 730 |
788 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } | 731 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
789 | 732 |
790 virtual void Animate(base::TimeTicks) OVERRIDE { | 733 virtual void Animate(base::TimeTicks) OVERRIDE { |
791 num_animate_calls_++; | 734 num_animate_calls_++; |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1343 private: | 1286 private: |
1344 scoped_refptr<Layer> content_; | 1287 scoped_refptr<Layer> content_; |
1345 int num_swap_buffers_; | 1288 int num_swap_buffers_; |
1346 }; | 1289 }; |
1347 | 1290 |
1348 SINGLE_AND_MULTI_THREAD_TEST_F( | 1291 SINGLE_AND_MULTI_THREAD_TEST_F( |
1349 LayerTreeHostAnimationTestAddAnimationAfterAnimating); | 1292 LayerTreeHostAnimationTestAddAnimationAfterAnimating); |
1350 | 1293 |
1351 } // namespace | 1294 } // namespace |
1352 } // namespace cc | 1295 } // namespace cc |
OLD | NEW |