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

Side by Side Diff: cc/CCLayerTreeHostCommonTest.cpp

Issue 10940002: Add wrapper container for a vector of OwnPtr<T> (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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
« no previous file with comments | « cc/CCLayerTreeHostCommon.cpp ('k') | cc/CCLayerTreeHostImpl.cpp » ('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 "config.h" 5 #include "config.h"
6 6
7 #include "CCLayerTreeHostCommon.h" 7 #include "CCLayerTreeHostCommon.h"
8 8
9 #include "CCAnimationTestCommon.h" 9 #include "CCAnimationTestCommon.h"
10 #include "CCGeometryTestUtils.h" 10 #include "CCGeometryTestUtils.h"
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 EXPECT_EQ(1U, renderSurfaceLayerList.size()); 714 EXPECT_EQ(1U, renderSurfaceLayerList.size());
715 } 715 }
716 716
717 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hDirectContainer) 717 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hDirectContainer)
718 { 718 {
719 // This test checks for correct scroll compensation when the fixed-position container 719 // This test checks for correct scroll compensation when the fixed-position container
720 // is the direct parent of the fixed-position layer. 720 // is the direct parent of the fixed-position layer.
721 721
722 DebugScopedSetImplThread scopedImplThread; 722 DebugScopedSetImplThread scopedImplThread;
723 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 723 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
724 CCLayerImpl* child = root->children()[0].get(); 724 CCLayerImpl* child = root->children()[0];
725 CCLayerImpl* grandChild = child->children()[0].get(); 725 CCLayerImpl* grandChild = child->children()[0];
726 726
727 child->setIsContainerForFixedPositionLayers(true); 727 child->setIsContainerForFixedPositionLayers(true);
728 grandChild->setFixedToContainerLayer(true); 728 grandChild->setFixedToContainerLayer(true);
729 729
730 // Case 1: scrollDelta of 0, 0 730 // Case 1: scrollDelta of 0, 0
731 child->setScrollDelta(IntSize(0, 0)); 731 child->setScrollDelta(IntSize(0, 0));
732 executeCalculateDrawTransformsAndVisibility(root.get()); 732 executeCalculateDrawTransformsAndVisibility(root.get());
733 733
734 WebTransformationMatrix expectedChildTransform; 734 WebTransformationMatrix expectedChildTransform;
735 WebTransformationMatrix expectedGrandChildTransform = expectedChildTransform ; 735 WebTransformationMatrix expectedGrandChildTransform = expectedChildTransform ;
(...skipping 19 matching lines...) Expand all
755 // is the direct parent of the fixed-position layer, but that container is t ransformed. 755 // is the direct parent of the fixed-position layer, but that container is t ransformed.
756 // In this case, the fixed position element inherits the container's transfo rm, 756 // In this case, the fixed position element inherits the container's transfo rm,
757 // but the scrollDelta that has to be undone should not be affected by that transform. 757 // but the scrollDelta that has to be undone should not be affected by that transform.
758 // 758 //
759 // Transforms are in general non-commutative; using something like a non-uni form scale 759 // Transforms are in general non-commutative; using something like a non-uni form scale
760 // helps to verify that translations and non-uniform scales are applied in t he correct 760 // helps to verify that translations and non-uniform scales are applied in t he correct
761 // order. 761 // order.
762 762
763 DebugScopedSetImplThread scopedImplThread; 763 DebugScopedSetImplThread scopedImplThread;
764 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 764 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
765 CCLayerImpl* child = root->children()[0].get(); 765 CCLayerImpl* child = root->children()[0];
766 CCLayerImpl* grandChild = child->children()[0].get(); 766 CCLayerImpl* grandChild = child->children()[0];
767 767
768 // This scale will cause child and grandChild to be effectively 200 x 800 wi th respect to the renderTarget. 768 // This scale will cause child and grandChild to be effectively 200 x 800 wi th respect to the renderTarget.
769 WebTransformationMatrix nonUniformScale; 769 WebTransformationMatrix nonUniformScale;
770 nonUniformScale.scaleNonUniform(2, 8); 770 nonUniformScale.scaleNonUniform(2, 8);
771 child->setTransform(nonUniformScale); 771 child->setTransform(nonUniformScale);
772 772
773 child->setIsContainerForFixedPositionLayers(true); 773 child->setIsContainerForFixedPositionLayers(true);
774 grandChild->setFixedToContainerLayer(true); 774 grandChild->setFixedToContainerLayer(true);
775 775
776 // Case 1: scrollDelta of 0, 0 776 // Case 1: scrollDelta of 0, 0
(...skipping 21 matching lines...) Expand all
798 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 798 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
799 } 799 }
800 800
801 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hDistantContainer) 801 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hDistantContainer)
802 { 802 {
803 // This test checks for correct scroll compensation when the fixed-position container 803 // This test checks for correct scroll compensation when the fixed-position container
804 // is NOT the direct parent of the fixed-position layer. 804 // is NOT the direct parent of the fixed-position layer.
805 DebugScopedSetImplThread scopedImplThread; 805 DebugScopedSetImplThread scopedImplThread;
806 806
807 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 807 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
808 CCLayerImpl* child = root->children()[0].get(); 808 CCLayerImpl* child = root->children()[0];
809 CCLayerImpl* grandChild = child->children()[0].get(); 809 CCLayerImpl* grandChild = child->children()[0];
810 CCLayerImpl* greatGrandChild = grandChild->children()[0].get(); 810 CCLayerImpl* greatGrandChild = grandChild->children()[0];
811 811
812 child->setIsContainerForFixedPositionLayers(true); 812 child->setIsContainerForFixedPositionLayers(true);
813 grandChild->setPosition(FloatPoint(8, 6)); 813 grandChild->setPosition(FloatPoint(8, 6));
814 greatGrandChild->setFixedToContainerLayer(true); 814 greatGrandChild->setFixedToContainerLayer(true);
815 815
816 // Case 1: scrollDelta of 0, 0 816 // Case 1: scrollDelta of 0, 0
817 child->setScrollDelta(IntSize(0, 0)); 817 child->setScrollDelta(IntSize(0, 0));
818 executeCalculateDrawTransformsAndVisibility(root.get()); 818 executeCalculateDrawTransformsAndVisibility(root.get());
819 819
820 WebTransformationMatrix expectedChildTransform; 820 WebTransformationMatrix expectedChildTransform;
(...skipping 21 matching lines...) Expand all
842 } 842 }
843 843
844 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hDistantContainerAndTransforms) 844 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hDistantContainerAndTransforms)
845 { 845 {
846 // This test checks for correct scroll compensation when the fixed-position container 846 // This test checks for correct scroll compensation when the fixed-position container
847 // is NOT the direct parent of the fixed-position layer, and the hierarchy h as various 847 // is NOT the direct parent of the fixed-position layer, and the hierarchy h as various
848 // transforms that have to be processed in the correct order. 848 // transforms that have to be processed in the correct order.
849 DebugScopedSetImplThread scopedImplThread; 849 DebugScopedSetImplThread scopedImplThread;
850 850
851 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 851 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
852 CCLayerImpl* child = root->children()[0].get(); 852 CCLayerImpl* child = root->children()[0];
853 CCLayerImpl* grandChild = child->children()[0].get(); 853 CCLayerImpl* grandChild = child->children()[0];
854 CCLayerImpl* greatGrandChild = grandChild->children()[0].get(); 854 CCLayerImpl* greatGrandChild = grandChild->children()[0];
855 855
856 WebTransformationMatrix rotationAboutZ; 856 WebTransformationMatrix rotationAboutZ;
857 rotationAboutZ.rotate3d(0, 0, 90); 857 rotationAboutZ.rotate3d(0, 0, 90);
858 858
859 child->setIsContainerForFixedPositionLayers(true); 859 child->setIsContainerForFixedPositionLayers(true);
860 child->setTransform(rotationAboutZ); 860 child->setTransform(rotationAboutZ);
861 grandChild->setPosition(FloatPoint(8, 6)); 861 grandChild->setPosition(FloatPoint(8, 6));
862 grandChild->setTransform(rotationAboutZ); 862 grandChild->setTransform(rotationAboutZ);
863 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget. 863 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget.
864 864
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 { 904 {
905 // This test checks for correct scroll compensation when the fixed-position container 905 // This test checks for correct scroll compensation when the fixed-position container
906 // has multiple ancestors that have nonzero scrollDelta before reaching the space where the layer is fixed. 906 // has multiple ancestors that have nonzero scrollDelta before reaching the space where the layer is fixed.
907 // In this test, each scrollDelta occurs in a different space because of eac h layer's local transform. 907 // In this test, each scrollDelta occurs in a different space because of eac h layer's local transform.
908 // This test checks for correct scroll compensation when the fixed-position container 908 // This test checks for correct scroll compensation when the fixed-position container
909 // is NOT the direct parent of the fixed-position layer, and the hierarchy h as various 909 // is NOT the direct parent of the fixed-position layer, and the hierarchy h as various
910 // transforms that have to be processed in the correct order. 910 // transforms that have to be processed in the correct order.
911 DebugScopedSetImplThread scopedImplThread; 911 DebugScopedSetImplThread scopedImplThread;
912 912
913 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 913 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
914 CCLayerImpl* child = root->children()[0].get(); 914 CCLayerImpl* child = root->children()[0];
915 CCLayerImpl* grandChild = child->children()[0].get(); 915 CCLayerImpl* grandChild = child->children()[0];
916 CCLayerImpl* greatGrandChild = grandChild->children()[0].get(); 916 CCLayerImpl* greatGrandChild = grandChild->children()[0];
917 917
918 WebTransformationMatrix rotationAboutZ; 918 WebTransformationMatrix rotationAboutZ;
919 rotationAboutZ.rotate3d(0, 0, 90); 919 rotationAboutZ.rotate3d(0, 0, 90);
920 920
921 child->setIsContainerForFixedPositionLayers(true); 921 child->setIsContainerForFixedPositionLayers(true);
922 child->setTransform(rotationAboutZ); 922 child->setTransform(rotationAboutZ);
923 grandChild->setPosition(FloatPoint(8, 6)); 923 grandChild->setPosition(FloatPoint(8, 6));
924 grandChild->setTransform(rotationAboutZ); 924 grandChild->setTransform(rotationAboutZ);
925 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget. 925 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget.
926 926
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
966 966
967 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hIntermediateSurfaceAndTransforms) 967 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hIntermediateSurfaceAndTransforms)
968 { 968 {
969 // This test checks for correct scroll compensation when the fixed-position container 969 // This test checks for correct scroll compensation when the fixed-position container
970 // contributes to a different renderSurface than the fixed-position layer. I n this 970 // contributes to a different renderSurface than the fixed-position layer. I n this
971 // case, the surface drawTransforms also have to be accounted for when check ing the 971 // case, the surface drawTransforms also have to be accounted for when check ing the
972 // scrollDelta. 972 // scrollDelta.
973 DebugScopedSetImplThread scopedImplThread; 973 DebugScopedSetImplThread scopedImplThread;
974 974
975 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 975 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
976 CCLayerImpl* child = root->children()[0].get(); 976 CCLayerImpl* child = root->children()[0];
977 CCLayerImpl* grandChild = child->children()[0].get(); 977 CCLayerImpl* grandChild = child->children()[0];
978 CCLayerImpl* greatGrandChild = grandChild->children()[0].get(); 978 CCLayerImpl* greatGrandChild = grandChild->children()[0];
979 979
980 child->setIsContainerForFixedPositionLayers(true); 980 child->setIsContainerForFixedPositionLayers(true);
981 grandChild->setPosition(FloatPoint(8, 6)); 981 grandChild->setPosition(FloatPoint(8, 6));
982 grandChild->setForceRenderSurface(true); 982 grandChild->setForceRenderSurface(true);
983 greatGrandChild->setFixedToContainerLayer(true); 983 greatGrandChild->setFixedToContainerLayer(true);
984 greatGrandChild->setDrawsContent(true); 984 greatGrandChild->setDrawsContent(true);
985 985
986 WebTransformationMatrix rotationAboutZ; 986 WebTransformationMatrix rotationAboutZ;
987 rotationAboutZ.rotate3d(0, 0, 90); 987 rotationAboutZ.rotate3d(0, 0, 90);
988 grandChild->setTransform(rotationAboutZ); 988 grandChild->setTransform(rotationAboutZ);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 1039
1040 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hMultipleIntermediateSurfaces) 1040 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hMultipleIntermediateSurfaces)
1041 { 1041 {
1042 // This test checks for correct scroll compensation when the fixed-position container 1042 // This test checks for correct scroll compensation when the fixed-position container
1043 // contributes to a different renderSurface than the fixed-position layer, w ith 1043 // contributes to a different renderSurface than the fixed-position layer, w ith
1044 // additional renderSurfaces in-between. This checks that the conversion to ancestor 1044 // additional renderSurfaces in-between. This checks that the conversion to ancestor
1045 // surfaces is accumulated properly in the final matrix transform. 1045 // surfaces is accumulated properly in the final matrix transform.
1046 DebugScopedSetImplThread scopedImplThread; 1046 DebugScopedSetImplThread scopedImplThread;
1047 1047
1048 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 1048 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
1049 CCLayerImpl* child = root->children()[0].get(); 1049 CCLayerImpl* child = root->children()[0];
1050 CCLayerImpl* grandChild = child->children()[0].get(); 1050 CCLayerImpl* grandChild = child->children()[0];
1051 CCLayerImpl* greatGrandChild = grandChild->children()[0].get(); 1051 CCLayerImpl* greatGrandChild = grandChild->children()[0];
1052 1052
1053 // Add one more layer to the test tree for this scenario. 1053 // Add one more layer to the test tree for this scenario.
1054 { 1054 {
1055 WebTransformationMatrix identity; 1055 WebTransformationMatrix identity;
1056 OwnPtr<CCLayerImpl> fixedPositionChild = CCLayerImpl::create(5); 1056 OwnPtr<CCLayerImpl> fixedPositionChild = CCLayerImpl::create(5);
1057 setLayerPropertiesForTesting(fixedPositionChild.get(), identity, identit y, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); 1057 setLayerPropertiesForTesting(fixedPositionChild.get(), identity, identit y, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false);
1058 greatGrandChild->addChild(fixedPositionChild.release()); 1058 greatGrandChild->addChild(fixedPositionChild.release());
1059 } 1059 }
1060 CCLayerImpl* fixedPositionChild = greatGrandChild->children()[0].get(); 1060 CCLayerImpl* fixedPositionChild = greatGrandChild->children()[0];
1061 1061
1062 // Actually set up the scenario here. 1062 // Actually set up the scenario here.
1063 child->setIsContainerForFixedPositionLayers(true); 1063 child->setIsContainerForFixedPositionLayers(true);
1064 grandChild->setPosition(FloatPoint(8, 6)); 1064 grandChild->setPosition(FloatPoint(8, 6));
1065 grandChild->setForceRenderSurface(true); 1065 grandChild->setForceRenderSurface(true);
1066 greatGrandChild->setPosition(FloatPoint(40, 60)); 1066 greatGrandChild->setPosition(FloatPoint(40, 60));
1067 greatGrandChild->setForceRenderSurface(true); 1067 greatGrandChild->setForceRenderSurface(true);
1068 fixedPositionChild->setFixedToContainerLayer(true); 1068 fixedPositionChild->setFixedToContainerLayer(true);
1069 fixedPositionChild->setDrawsContent(true); 1069 fixedPositionChild->setDrawsContent(true);
1070 1070
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 1150
1151 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hContainerLayerThatHasSurface) 1151 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWit hContainerLayerThatHasSurface)
1152 { 1152 {
1153 // This test checks for correct scroll compensation when the fixed-position container 1153 // This test checks for correct scroll compensation when the fixed-position container
1154 // itself has a renderSurface. In this case, the container layer should be t reated 1154 // itself has a renderSurface. In this case, the container layer should be t reated
1155 // like a layer that contributes to a renderTarget, and that renderTarget 1155 // like a layer that contributes to a renderTarget, and that renderTarget
1156 // is completely irrelevant; it should not affect the scroll compensation. 1156 // is completely irrelevant; it should not affect the scroll compensation.
1157 DebugScopedSetImplThread scopedImplThread; 1157 DebugScopedSetImplThread scopedImplThread;
1158 1158
1159 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 1159 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
1160 CCLayerImpl* child = root->children()[0].get(); 1160 CCLayerImpl* child = root->children()[0];
1161 CCLayerImpl* grandChild = child->children()[0].get(); 1161 CCLayerImpl* grandChild = child->children()[0];
1162 1162
1163 child->setIsContainerForFixedPositionLayers(true); 1163 child->setIsContainerForFixedPositionLayers(true);
1164 child->setForceRenderSurface(true); 1164 child->setForceRenderSurface(true);
1165 grandChild->setFixedToContainerLayer(true); 1165 grandChild->setFixedToContainerLayer(true);
1166 grandChild->setDrawsContent(true); 1166 grandChild->setDrawsContent(true);
1167 1167
1168 // Case 1: scrollDelta of 0, 0 1168 // Case 1: scrollDelta of 0, 0
1169 child->setScrollDelta(IntSize(0, 0)); 1169 child->setScrollDelta(IntSize(0, 0));
1170 executeCalculateDrawTransformsAndVisibility(root.get()); 1170 executeCalculateDrawTransformsAndVisibility(root.get());
1171 1171
(...skipping 25 matching lines...) Expand all
1197 } 1197 }
1198 1198
1199 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerTha tIsAlsoFixedPositionContainer) 1199 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerTha tIsAlsoFixedPositionContainer)
1200 { 1200 {
1201 // This test checks the scenario where a fixed-position layer also happens t o be a 1201 // This test checks the scenario where a fixed-position layer also happens t o be a
1202 // container itself for a descendant fixed position layer. In particular, th e layer 1202 // container itself for a descendant fixed position layer. In particular, th e layer
1203 // should not accidentally be fixed to itself. 1203 // should not accidentally be fixed to itself.
1204 DebugScopedSetImplThread scopedImplThread; 1204 DebugScopedSetImplThread scopedImplThread;
1205 1205
1206 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 1206 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
1207 CCLayerImpl* child = root->children()[0].get(); 1207 CCLayerImpl* child = root->children()[0];
1208 CCLayerImpl* grandChild = child->children()[0].get(); 1208 CCLayerImpl* grandChild = child->children()[0];
1209 1209
1210 child->setIsContainerForFixedPositionLayers(true); 1210 child->setIsContainerForFixedPositionLayers(true);
1211 grandChild->setFixedToContainerLayer(true); 1211 grandChild->setFixedToContainerLayer(true);
1212 1212
1213 // This should not confuse the grandChild. If correct, the grandChild would still be considered fixed to its container (i.e. "child"). 1213 // This should not confuse the grandChild. If correct, the grandChild would still be considered fixed to its container (i.e. "child").
1214 grandChild->setIsContainerForFixedPositionLayers(true); 1214 grandChild->setIsContainerForFixedPositionLayers(true);
1215 1215
1216 // Case 1: scrollDelta of 0, 0 1216 // Case 1: scrollDelta of 0, 0
1217 child->setScrollDelta(IntSize(0, 0)); 1217 child->setScrollDelta(IntSize(0, 0));
1218 executeCalculateDrawTransformsAndVisibility(root.get()); 1218 executeCalculateDrawTransformsAndVisibility(root.get());
(...skipping 15 matching lines...) Expand all
1234 } 1234 }
1235 1235
1236 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerTha tHasNoContainer) 1236 TEST(CCLayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerTha tHasNoContainer)
1237 { 1237 {
1238 // This test checks scroll compensation when a fixed-position layer does not find any 1238 // This test checks scroll compensation when a fixed-position layer does not find any
1239 // ancestor that is a "containerForFixedPositionLayers". In this situation, the layer should 1239 // ancestor that is a "containerForFixedPositionLayers". In this situation, the layer should
1240 // be fixed to the viewport -- not the rootLayer, which may have transforms of its own. 1240 // be fixed to the viewport -- not the rootLayer, which may have transforms of its own.
1241 DebugScopedSetImplThread scopedImplThread; 1241 DebugScopedSetImplThread scopedImplThread;
1242 1242
1243 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests(); 1243 OwnPtr<CCLayerImpl> root = createTreeForFixedPositionTests();
1244 CCLayerImpl* child = root->children()[0].get(); 1244 CCLayerImpl* child = root->children()[0];
1245 CCLayerImpl* grandChild = child->children()[0].get(); 1245 CCLayerImpl* grandChild = child->children()[0];
1246 1246
1247 WebTransformationMatrix rotationByZ; 1247 WebTransformationMatrix rotationByZ;
1248 rotationByZ.rotate3d(0, 0, 90); 1248 rotationByZ.rotate3d(0, 0, 90);
1249 1249
1250 root->setTransform(rotationByZ); 1250 root->setTransform(rotationByZ);
1251 grandChild->setFixedToContainerLayer(true); 1251 grandChild->setFixedToContainerLayer(true);
1252 1252
1253 // Case 1: root scrollDelta of 0, 0 1253 // Case 1: root scrollDelta of 0, 0
1254 root->setScrollDelta(IntSize(0, 0)); 1254 root->setScrollDelta(IntSize(0, 0));
1255 executeCalculateDrawTransformsAndVisibility(root.get()); 1255 executeCalculateDrawTransformsAndVisibility(root.get());
(...skipping 1596 matching lines...) Expand 10 before | Expand all | Expand 10 after
2852 root->addChild(testLayer.release()); 2852 root->addChild(testLayer.release());
2853 } 2853 }
2854 2854
2855 Vector<CCLayerImpl*> renderSurfaceLayerList; 2855 Vector<CCLayerImpl*> renderSurfaceLayerList;
2856 int dummyMaxTextureSize = 512; 2856 int dummyMaxTextureSize = 512;
2857 CCLayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1 , 0, dummyMaxTextureSize, renderSurfaceLayerList); 2857 CCLayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1 , 0, dummyMaxTextureSize, renderSurfaceLayerList);
2858 CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList); 2858 CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList);
2859 2859
2860 // Sanity check the scenario we just created. 2860 // Sanity check the scenario we just created.
2861 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25. 2861 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25.
2862 CCLayerImpl* testLayer = root->children()[0].get(); 2862 CCLayerImpl* testLayer = root->children()[0];
2863 EXPECT_RECT_EQ(IntRect(IntPoint::zero(), IntSize(100, 100)), testLayer->visi bleContentRect()); 2863 EXPECT_RECT_EQ(IntRect(IntPoint::zero(), IntSize(100, 100)), testLayer->visi bleContentRect());
2864 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 2864 ASSERT_EQ(1u, renderSurfaceLayerList.size());
2865 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 2865 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
2866 2866
2867 // Hit testing for a point outside the layer should return a null pointer (t he root layer does not draw content, so it will not be hit tested either). 2867 // Hit testing for a point outside the layer should return a null pointer (t he root layer does not draw content, so it will not be hit tested either).
2868 IntPoint testPoint(101, 101); 2868 IntPoint testPoint(101, 101);
2869 CCLayerImpl* resultLayer = CCLayerTreeHostCommon::findLayerThatIsHitByPoint( testPoint, renderSurfaceLayerList); 2869 CCLayerImpl* resultLayer = CCLayerTreeHostCommon::findLayerThatIsHitByPoint( testPoint, renderSurfaceLayerList);
2870 EXPECT_FALSE(resultLayer); 2870 EXPECT_FALSE(resultLayer);
2871 2871
2872 testPoint = IntPoint(24, 24); 2872 testPoint = IntPoint(24, 24);
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
3161 position = FloatPoint(0, 40); 3161 position = FloatPoint(0, 40);
3162 bounds = IntSize(100, 50); 3162 bounds = IntSize(100, 50);
3163 setLayerPropertiesForTesting(grandChild1.get(), identityMatrix, identity Matrix, anchor, position, bounds, false); 3163 setLayerPropertiesForTesting(grandChild1.get(), identityMatrix, identity Matrix, anchor, position, bounds, false);
3164 grandChild1->setDrawsContent(true); 3164 grandChild1->setDrawsContent(true);
3165 3165
3166 child1->addChild(grandChild1.release()); 3166 child1->addChild(grandChild1.release());
3167 root->addChild(child1.release()); 3167 root->addChild(child1.release());
3168 root->addChild(child2.release()); 3168 root->addChild(child2.release());
3169 } 3169 }
3170 3170
3171 CCLayerImpl* child1 = root->children()[0].get(); 3171 CCLayerImpl* child1 = root->children()[0];
3172 CCLayerImpl* child2 = root->children()[1].get(); 3172 CCLayerImpl* child2 = root->children()[1];
3173 CCLayerImpl* grandChild1 = child1->children()[0].get(); 3173 CCLayerImpl* grandChild1 = child1->children()[0];
3174 3174
3175 Vector<CCLayerImpl*> renderSurfaceLayerList; 3175 Vector<CCLayerImpl*> renderSurfaceLayerList;
3176 int dummyMaxTextureSize = 512; 3176 int dummyMaxTextureSize = 512;
3177 CCLayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1 , 0, dummyMaxTextureSize, renderSurfaceLayerList); 3177 CCLayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1 , 0, dummyMaxTextureSize, renderSurfaceLayerList);
3178 CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList); 3178 CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList);
3179 3179
3180 // Sanity check the scenario we just created. 3180 // Sanity check the scenario we just created.
3181 ASSERT_TRUE(child1); 3181 ASSERT_TRUE(child1);
3182 ASSERT_TRUE(child2); 3182 ASSERT_TRUE(child2);
3183 ASSERT_TRUE(grandChild1); 3183 ASSERT_TRUE(grandChild1);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
3270 bounds = IntSize(100, 50); 3270 bounds = IntSize(100, 50);
3271 setLayerPropertiesForTesting(grandChild1.get(), identityMatrix, identity Matrix, anchor, position, bounds, false); 3271 setLayerPropertiesForTesting(grandChild1.get(), identityMatrix, identity Matrix, anchor, position, bounds, false);
3272 grandChild1->setDrawsContent(true); 3272 grandChild1->setDrawsContent(true);
3273 grandChild1->setForceRenderSurface(true); 3273 grandChild1->setForceRenderSurface(true);
3274 3274
3275 child1->addChild(grandChild1.release()); 3275 child1->addChild(grandChild1.release());
3276 root->addChild(child1.release()); 3276 root->addChild(child1.release());
3277 root->addChild(child2.release()); 3277 root->addChild(child2.release());
3278 } 3278 }
3279 3279
3280 CCLayerImpl* child1 = root->children()[0].get(); 3280 CCLayerImpl* child1 = root->children()[0];
3281 CCLayerImpl* child2 = root->children()[1].get(); 3281 CCLayerImpl* child2 = root->children()[1];
3282 CCLayerImpl* grandChild1 = child1->children()[0].get(); 3282 CCLayerImpl* grandChild1 = child1->children()[0];
3283 3283
3284 Vector<CCLayerImpl*> renderSurfaceLayerList; 3284 Vector<CCLayerImpl*> renderSurfaceLayerList;
3285 int dummyMaxTextureSize = 512; 3285 int dummyMaxTextureSize = 512;
3286 CCLayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1 , 0, dummyMaxTextureSize, renderSurfaceLayerList); 3286 CCLayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1 , 0, dummyMaxTextureSize, renderSurfaceLayerList);
3287 CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList); 3287 CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList);
3288 3288
3289 // Sanity check the scenario we just created. 3289 // Sanity check the scenario we just created.
3290 ASSERT_TRUE(child1); 3290 ASSERT_TRUE(child1);
3291 ASSERT_TRUE(child2); 3291 ASSERT_TRUE(child2);
3292 ASSERT_TRUE(grandChild1); 3292 ASSERT_TRUE(grandChild1);
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
3525 int nonexistentId = -1; 3525 int nonexistentId = -1;
3526 EXPECT_EQ(root, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), root-> id())); 3526 EXPECT_EQ(root, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), root-> id()));
3527 EXPECT_EQ(child, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), child ->id())); 3527 EXPECT_EQ(child, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), child ->id()));
3528 EXPECT_EQ(grandChild, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), grandChild->id())); 3528 EXPECT_EQ(grandChild, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), grandChild->id()));
3529 EXPECT_EQ(maskLayer, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), m askLayer->id())); 3529 EXPECT_EQ(maskLayer, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), m askLayer->id()));
3530 EXPECT_EQ(replicaLayer, CCLayerTreeHostCommon::findLayerInSubtree(root.get() , replicaLayer->id())); 3530 EXPECT_EQ(replicaLayer, CCLayerTreeHostCommon::findLayerInSubtree(root.get() , replicaLayer->id()));
3531 EXPECT_EQ(0, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), nonexiste ntId)); 3531 EXPECT_EQ(0, CCLayerTreeHostCommon::findLayerInSubtree(root.get(), nonexiste ntId));
3532 } 3532 }
3533 3533
3534 } // namespace 3534 } // namespace
OLDNEW
« no previous file with comments | « cc/CCLayerTreeHostCommon.cpp ('k') | cc/CCLayerTreeHostImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698