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

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

Issue 1948163002: cc: Ensure damage in property tree nodes gets propagated to descendants (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
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.cc » ('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 810 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 break; 821 break;
822 } 822 }
823 } 823 }
824 824
825 void AfterTest() override {} 825 void AfterTest() override {}
826 int index_; 826 int index_;
827 }; 827 };
828 828
829 SINGLE_THREAD_TEST_F(LayerTreeHostTestPropertyTreesChangedSync); 829 SINGLE_THREAD_TEST_F(LayerTreeHostTestPropertyTreesChangedSync);
830 830
831 // Verify damage status is updated even when the transform tree doesn't need
832 // to be updated at draw time.
833 class LayerTreeHostTestTransformTreeDamageIsUpdated : public LayerTreeHostTest {
834 protected:
835 void SetupTree() override {
836 root_ = Layer::Create();
837 child_ = Layer::Create();
838 grand_child_ = Layer::Create();
839
840 root_->SetBounds(gfx::Size(50, 50));
841
842 // Make sure child and grand_child have transform nodes.
843 gfx::Transform rotation;
844 rotation.RotateAboutZAxis(45.0);
845 child_->SetTransform(rotation);
846 grand_child_->SetTransform(rotation);
847
848 root_->AddChild(child_);
849 child_->AddChild(grand_child_);
850 layer_tree_host()->SetRootLayer(root_);
851 LayerTreeHostTest::SetupTree();
852 }
853
854 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
855
856 void DidCommit() override {
857 if (layer_tree_host()->source_frame_number() == 1) {
858 gfx::Transform scale;
859 scale.Scale(2.0, 2.0);
860 child_->OnTransformAnimated(scale);
861 }
862 }
863
864 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
865 if (impl->sync_tree()->source_frame_number() == 0)
866 PostSetNeedsCommitToMainThread();
867 }
868
869 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* impl,
870 LayerTreeHostImpl::FrameData* frame_data,
871 DrawResult draw_result) override {
872 if (impl->active_tree()->source_frame_number() == 1) {
873 EXPECT_FALSE(
874 impl->active_tree()->LayerById(root_->id())->LayerPropertyChanged());
875 EXPECT_TRUE(
876 impl->active_tree()->LayerById(child_->id())->LayerPropertyChanged());
877 EXPECT_TRUE(impl->active_tree()
878 ->LayerById(grand_child_->id())
879 ->LayerPropertyChanged());
880 EndTest();
881 }
882
883 return draw_result;
884 }
885
886 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
887 if (impl->active_tree()->source_frame_number() == 0) {
888 gfx::Transform scale;
889 scale.Scale(2.0, 2.0);
890 impl->active_tree()->LayerById(child_->id())->OnTransformAnimated(scale);
891 }
892 }
893
894 void AfterTest() override {}
895
896 private:
897 scoped_refptr<Layer> root_;
898 scoped_refptr<Layer> child_;
899 scoped_refptr<Layer> grand_child_;
900 };
901
902 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestTransformTreeDamageIsUpdated);
903
831 // Test that when mask layers switches layers, this gets pushed onto impl. 904 // Test that when mask layers switches layers, this gets pushed onto impl.
832 // Also test that mask layer is in the layer update list even if its owning 905 // Also test that mask layer is in the layer update list even if its owning
833 // layer isn't. 906 // layer isn't.
834 class LayerTreeHostTestSwitchMaskLayer : public LayerTreeHostTest { 907 class LayerTreeHostTestSwitchMaskLayer : public LayerTreeHostTest {
835 protected: 908 protected:
836 void SetupTree() override { 909 void SetupTree() override {
837 scoped_refptr<Layer> root = Layer::Create(); 910 scoped_refptr<Layer> root = Layer::Create();
838 root->SetBounds(gfx::Size(10, 10)); 911 root->SetBounds(gfx::Size(10, 10));
839 scoped_refptr<Layer> child = Layer::Create(); 912 scoped_refptr<Layer> child = Layer::Create();
840 mask_layer = Layer::Create(); 913 mask_layer = Layer::Create();
(...skipping 5504 matching lines...) Expand 10 before | Expand all | Expand 10 after
6345 EndTest(); 6418 EndTest();
6346 } 6419 }
6347 6420
6348 void AfterTest() override {} 6421 void AfterTest() override {}
6349 }; 6422 };
6350 6423
6351 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestPaintedDeviceScaleFactor); 6424 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestPaintedDeviceScaleFactor);
6352 6425
6353 } // namespace 6426 } // namespace
6354 } // namespace cc 6427 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/property_tree.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698