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

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

Issue 1949253006: cc: Ensure damage in property tree nodes gets propagated to descendants (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2704
Patch Set: Created 4 years, 7 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 | « no previous file | cc/trees/property_tree.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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 762 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 break; 773 break;
774 } 774 }
775 } 775 }
776 776
777 void AfterTest() override {} 777 void AfterTest() override {}
778 int index_; 778 int index_;
779 }; 779 };
780 780
781 SINGLE_THREAD_TEST_F(LayerTreeHostTestPropertyTreesChangedSync); 781 SINGLE_THREAD_TEST_F(LayerTreeHostTestPropertyTreesChangedSync);
782 782
783 // Verify damage status is updated even when the transform tree doesn't need
784 // to be updated at draw time.
785 class LayerTreeHostTestTransformTreeDamageIsUpdated : public LayerTreeHostTest {
786 protected:
787 void SetupTree() override {
788 root_ = Layer::Create();
789 child_ = Layer::Create();
790 grand_child_ = Layer::Create();
791
792 root_->SetBounds(gfx::Size(50, 50));
793
794 // Make sure child and grand_child have transform nodes.
795 gfx::Transform rotation;
796 rotation.RotateAboutZAxis(45.0);
797 child_->SetTransform(rotation);
798 grand_child_->SetTransform(rotation);
799
800 root_->AddChild(child_);
801 child_->AddChild(grand_child_);
802 layer_tree_host()->SetRootLayer(root_);
803 LayerTreeHostTest::SetupTree();
804 }
805
806 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
807
808 void DidCommit() override {
809 if (layer_tree_host()->source_frame_number() == 1) {
810 gfx::Transform scale;
811 scale.Scale(2.0, 2.0);
812 child_->OnTransformAnimated(scale);
813 }
814 }
815
816 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
817 if (impl->sync_tree()->source_frame_number() == 0)
818 PostSetNeedsCommitToMainThread();
819 }
820
821 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* impl,
822 LayerTreeHostImpl::FrameData* frame_data,
823 DrawResult draw_result) override {
824 if (impl->active_tree()->source_frame_number() == 1) {
825 EXPECT_FALSE(
826 impl->active_tree()->LayerById(root_->id())->LayerPropertyChanged());
827 EXPECT_TRUE(
828 impl->active_tree()->LayerById(child_->id())->LayerPropertyChanged());
829 EXPECT_TRUE(impl->active_tree()
830 ->LayerById(grand_child_->id())
831 ->LayerPropertyChanged());
832 EndTest();
833 }
834
835 return draw_result;
836 }
837
838 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
839 if (impl->active_tree()->source_frame_number() == 0) {
840 gfx::Transform scale;
841 scale.Scale(2.0, 2.0);
842 impl->active_tree()->LayerById(child_->id())->OnTransformAnimated(scale);
843 }
844 }
845
846 void AfterTest() override {}
847
848 private:
849 scoped_refptr<Layer> root_;
850 scoped_refptr<Layer> child_;
851 scoped_refptr<Layer> grand_child_;
852 };
853
854 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestTransformTreeDamageIsUpdated);
855
783 // Test that when mask layers switches layers, this gets pushed onto impl. 856 // Test that when mask layers switches layers, this gets pushed onto impl.
784 // Also test that mask layer is in the layer update list even if its owning 857 // Also test that mask layer is in the layer update list even if its owning
785 // layer isn't. 858 // layer isn't.
786 class LayerTreeHostTestSwitchMaskLayer : public LayerTreeHostTest { 859 class LayerTreeHostTestSwitchMaskLayer : public LayerTreeHostTest {
787 protected: 860 protected:
788 void SetupTree() override { 861 void SetupTree() override {
789 scoped_refptr<Layer> root = Layer::Create(); 862 scoped_refptr<Layer> root = Layer::Create();
790 root->SetBounds(gfx::Size(10, 10)); 863 root->SetBounds(gfx::Size(10, 10));
791 scoped_refptr<Layer> child = Layer::Create(); 864 scoped_refptr<Layer> child = Layer::Create();
792 mask_layer = Layer::Create(); 865 mask_layer = Layer::Create();
(...skipping 5832 matching lines...) Expand 10 before | Expand all | Expand 10 after
6625 EndTest(); 6698 EndTest();
6626 } 6699 }
6627 6700
6628 void AfterTest() override {} 6701 void AfterTest() override {}
6629 }; 6702 };
6630 6703
6631 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestPaintedDeviceScaleFactor); 6704 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestPaintedDeviceScaleFactor);
6632 6705
6633 } // namespace 6706 } // namespace
6634 } // namespace cc 6707 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/property_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698