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

Side by Side Diff: cc/TiledLayerChromiumTest.cpp

Issue 11074009: cc: Remove LayerTextureUpdater::Texture::updateRect() callback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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
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 "TiledLayerChromium.h" 7 #include "TiledLayerChromium.h"
8 8
9 #include "BitmapCanvasLayerTextureUpdater.h" 9 #include "BitmapCanvasLayerTextureUpdater.h"
10 #include "CCAnimationTestCommon.h" 10 #include "CCAnimationTestCommon.h"
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 903
904 // The tile size is 100x100, so this invalidates and then paints two tiles. 904 // The tile size is 100x100, so this invalidates and then paints two tiles.
905 layer->setBounds(IntSize(100, 200)); 905 layer->setBounds(IntSize(100, 200));
906 layer->setDrawableContentRect(IntRect(0, 0, 100, 200)); 906 layer->setDrawableContentRect(IntRect(0, 0, 100, 200));
907 layer->setVisibleContentRect(IntRect(0, 0, 100, 200)); 907 layer->setVisibleContentRect(IntRect(0, 0, 100, 200));
908 layer->invalidateContentRect(IntRect(0, 0, 100, 200)); 908 layer->invalidateContentRect(IntRect(0, 0, 100, 200));
909 909
910 layer->setTexturePriorities(m_priorityCalculator); 910 layer->setTexturePriorities(m_priorityCalculator);
911 m_textureManager->prioritizeTextures(); 911 m_textureManager->prioritizeTextures();
912 layer->update(*m_queue.get(), 0, m_stats); 912 layer->update(*m_queue.get(), 0, m_stats);
913 EXPECT_EQ(2, layer->fakeLayerTextureUpdater()->prepareRectCount()); 913 EXPECT_EQ(2, layer->fakeLayerTextureUpdater()->updateCount());
914 } 914 }
915 915
916 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusion) 916 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusion)
917 { 917 {
918 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get())); 918 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get()));
919 TestCCOcclusionTracker occluded; 919 TestCCOcclusionTracker occluded;
920 920
921 // The tile size is 100x100. 921 // The tile size is 100x100.
922 922
923 layer->setBounds(IntSize(600, 600)); 923 layer->setBounds(IntSize(600, 600));
924 924
925 occluded.setOcclusion(IntRect(200, 200, 300, 100)); 925 occluded.setOcclusion(IntRect(200, 200, 300, 100));
926 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds())); 926 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds()));
927 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds())); 927 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds()));
928 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 928 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
929 929
930 layer->setTexturePriorities(m_priorityCalculator); 930 layer->setTexturePriorities(m_priorityCalculator);
931 m_textureManager->prioritizeTextures(); 931 m_textureManager->prioritizeTextures();
932 layer->update(*m_queue.get(), &occluded, m_stats); 932 layer->update(*m_queue.get(), &occluded, m_stats);
933 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); 933 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->updateCount());
934 934
935 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 935 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
936 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1); 936 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1);
937 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload()); 937 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload());
938 938
939 layer->fakeLayerTextureUpdater()->clearPrepareRectCount(); 939 layer->fakeLayerTextureUpdater()->clearUpdateCount();
940 layer->setTexturePriorities(m_priorityCalculator); 940 layer->setTexturePriorities(m_priorityCalculator);
941 m_textureManager->prioritizeTextures(); 941 m_textureManager->prioritizeTextures();
942 942
943 occluded.setOcclusion(IntRect(250, 200, 300, 100)); 943 occluded.setOcclusion(IntRect(250, 200, 300, 100));
944 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 944 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
945 layer->update(*m_queue.get(), &occluded, m_stats); 945 layer->update(*m_queue.get(), &occluded, m_stats);
946 EXPECT_EQ(36-2, layer->fakeLayerTextureUpdater()->prepareRectCount()); 946 EXPECT_EQ(36-2, layer->fakeLayerTextureUpdater()->updateCount());
947 947
948 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 948 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
949 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000, 1); 949 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000, 1);
950 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload()); 950 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload());
951 951
952 layer->fakeLayerTextureUpdater()->clearPrepareRectCount(); 952 layer->fakeLayerTextureUpdater()->clearUpdateCount();
953 layer->setTexturePriorities(m_priorityCalculator); 953 layer->setTexturePriorities(m_priorityCalculator);
954 m_textureManager->prioritizeTextures(); 954 m_textureManager->prioritizeTextures();
955 955
956 occluded.setOcclusion(IntRect(250, 250, 300, 100)); 956 occluded.setOcclusion(IntRect(250, 250, 300, 100));
957 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 957 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
958 layer->update(*m_queue.get(), &occluded, m_stats); 958 layer->update(*m_queue.get(), &occluded, m_stats);
959 EXPECT_EQ(36, layer->fakeLayerTextureUpdater()->prepareRectCount()); 959 EXPECT_EQ(36, layer->fakeLayerTextureUpdater()->updateCount());
960 960
961 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 961 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
962 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000 + 360000, 1); 962 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000 + 360000, 1);
963 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload()); 963 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload());
964 } 964 }
965 965
966 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusionAndVisiblityConstraints) 966 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusionAndVisiblityConstraints)
967 { 967 {
968 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get())); 968 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get()));
969 TestCCOcclusionTracker occluded; 969 TestCCOcclusionTracker occluded;
970 970
971 // The tile size is 100x100. 971 // The tile size is 100x100.
972 972
973 layer->setBounds(IntSize(600, 600)); 973 layer->setBounds(IntSize(600, 600));
974 974
975 // The partially occluded tiles (by the 150 occlusion height) are visible be yond the occlusion, so not culled. 975 // The partially occluded tiles (by the 150 occlusion height) are visible be yond the occlusion, so not culled.
976 occluded.setOcclusion(IntRect(200, 200, 300, 150)); 976 occluded.setOcclusion(IntRect(200, 200, 300, 150));
977 layer->setDrawableContentRect(IntRect(0, 0, 600, 360)); 977 layer->setDrawableContentRect(IntRect(0, 0, 600, 360));
978 layer->setVisibleContentRect(IntRect(0, 0, 600, 360)); 978 layer->setVisibleContentRect(IntRect(0, 0, 600, 360));
979 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 979 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
980 980
981 layer->setTexturePriorities(m_priorityCalculator); 981 layer->setTexturePriorities(m_priorityCalculator);
982 m_textureManager->prioritizeTextures(); 982 m_textureManager->prioritizeTextures();
983 layer->update(*m_queue.get(), &occluded, m_stats); 983 layer->update(*m_queue.get(), &occluded, m_stats);
984 EXPECT_EQ(24-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); 984 EXPECT_EQ(24-3, layer->fakeLayerTextureUpdater()->updateCount());
985 985
986 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 986 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
987 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000, 1); 987 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000, 1);
988 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload()); 988 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload());
989 989
990 layer->fakeLayerTextureUpdater()->clearPrepareRectCount(); 990 layer->fakeLayerTextureUpdater()->clearUpdateCount();
991 991
992 // Now the visible region stops at the edge of the occlusion so the partly v isible tiles become fully occluded. 992 // Now the visible region stops at the edge of the occlusion so the partly v isible tiles become fully occluded.
993 occluded.setOcclusion(IntRect(200, 200, 300, 150)); 993 occluded.setOcclusion(IntRect(200, 200, 300, 150));
994 layer->setDrawableContentRect(IntRect(0, 0, 600, 350)); 994 layer->setDrawableContentRect(IntRect(0, 0, 600, 350));
995 layer->setVisibleContentRect(IntRect(0, 0, 600, 350)); 995 layer->setVisibleContentRect(IntRect(0, 0, 600, 350));
996 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 996 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
997 layer->setTexturePriorities(m_priorityCalculator); 997 layer->setTexturePriorities(m_priorityCalculator);
998 m_textureManager->prioritizeTextures(); 998 m_textureManager->prioritizeTextures();
999 layer->update(*m_queue.get(), &occluded, m_stats); 999 layer->update(*m_queue.get(), &occluded, m_stats);
1000 EXPECT_EQ(24-6, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1000 EXPECT_EQ(24-6, layer->fakeLayerTextureUpdater()->updateCount());
1001 1001
1002 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1002 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1003 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000, 1); 1003 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000, 1);
1004 EXPECT_EQ(3 + 6, occluded.overdrawMetrics().tilesCulledForUpload()); 1004 EXPECT_EQ(3 + 6, occluded.overdrawMetrics().tilesCulledForUpload());
1005 1005
1006 layer->fakeLayerTextureUpdater()->clearPrepareRectCount(); 1006 layer->fakeLayerTextureUpdater()->clearUpdateCount();
1007 1007
1008 // Now the visible region is even smaller than the occlusion, it should have the same result. 1008 // Now the visible region is even smaller than the occlusion, it should have the same result.
1009 occluded.setOcclusion(IntRect(200, 200, 300, 150)); 1009 occluded.setOcclusion(IntRect(200, 200, 300, 150));
1010 layer->setDrawableContentRect(IntRect(0, 0, 600, 340)); 1010 layer->setDrawableContentRect(IntRect(0, 0, 600, 340));
1011 layer->setVisibleContentRect(IntRect(0, 0, 600, 340)); 1011 layer->setVisibleContentRect(IntRect(0, 0, 600, 340));
1012 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1012 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
1013 layer->setTexturePriorities(m_priorityCalculator); 1013 layer->setTexturePriorities(m_priorityCalculator);
1014 m_textureManager->prioritizeTextures(); 1014 m_textureManager->prioritizeTextures();
1015 layer->update(*m_queue.get(), &occluded, m_stats); 1015 layer->update(*m_queue.get(), &occluded, m_stats);
1016 EXPECT_EQ(24-6, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1016 EXPECT_EQ(24-6, layer->fakeLayerTextureUpdater()->updateCount());
1017 1017
1018 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1018 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1019 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000 + 180000, 1); 1019 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000 + 180000, 1);
1020 EXPECT_EQ(3 + 6 + 6, occluded.overdrawMetrics().tilesCulledForUpload()); 1020 EXPECT_EQ(3 + 6 + 6, occluded.overdrawMetrics().tilesCulledForUpload());
1021 1021
1022 } 1022 }
1023 1023
1024 TEST_F(TiledLayerChromiumTest, tilesNotPaintedWithoutInvalidation) 1024 TEST_F(TiledLayerChromiumTest, tilesNotPaintedWithoutInvalidation)
1025 { 1025 {
1026 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get())); 1026 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get()));
1027 TestCCOcclusionTracker occluded; 1027 TestCCOcclusionTracker occluded;
1028 1028
1029 // The tile size is 100x100. 1029 // The tile size is 100x100.
1030 1030
1031 layer->setBounds(IntSize(600, 600)); 1031 layer->setBounds(IntSize(600, 600));
1032 1032
1033 occluded.setOcclusion(IntRect(200, 200, 300, 100)); 1033 occluded.setOcclusion(IntRect(200, 200, 300, 100));
1034 layer->setDrawableContentRect(IntRect(0, 0, 600, 600)); 1034 layer->setDrawableContentRect(IntRect(0, 0, 600, 600));
1035 layer->setVisibleContentRect(IntRect(0, 0, 600, 600)); 1035 layer->setVisibleContentRect(IntRect(0, 0, 600, 600));
1036 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1036 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
1037 layer->setTexturePriorities(m_priorityCalculator); 1037 layer->setTexturePriorities(m_priorityCalculator);
1038 m_textureManager->prioritizeTextures(); 1038 m_textureManager->prioritizeTextures();
1039 layer->update(*m_queue.get(), &occluded, m_stats); 1039 layer->update(*m_queue.get(), &occluded, m_stats);
1040 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1040 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->updateCount());
1041 { 1041 {
1042 updateTextures(); 1042 updateTextures();
1043 } 1043 }
1044 1044
1045 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1045 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1046 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1); 1046 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1);
1047 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload()); 1047 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload());
1048 1048
1049 layer->fakeLayerTextureUpdater()->clearPrepareRectCount(); 1049 layer->fakeLayerTextureUpdater()->clearUpdateCount();
1050 layer->setTexturePriorities(m_priorityCalculator); 1050 layer->setTexturePriorities(m_priorityCalculator);
1051 m_textureManager->prioritizeTextures(); 1051 m_textureManager->prioritizeTextures();
1052 1052
1053 // Repaint without marking it dirty. The 3 culled tiles will be pre-painted now. 1053 // Repaint without marking it dirty. The 3 culled tiles will be pre-painted now.
1054 layer->update(*m_queue.get(), &occluded, m_stats); 1054 layer->update(*m_queue.get(), &occluded, m_stats);
1055 EXPECT_EQ(3, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1055 EXPECT_EQ(3, layer->fakeLayerTextureUpdater()->updateCount());
1056 1056
1057 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1057 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1058 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1); 1058 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1);
1059 EXPECT_EQ(6, occluded.overdrawMetrics().tilesCulledForUpload()); 1059 EXPECT_EQ(6, occluded.overdrawMetrics().tilesCulledForUpload());
1060 } 1060 }
1061 1061
1062 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusionAndTransforms) 1062 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusionAndTransforms)
1063 { 1063 {
1064 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get())); 1064 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get()));
1065 TestCCOcclusionTracker occluded; 1065 TestCCOcclusionTracker occluded;
1066 1066
1067 // The tile size is 100x100. 1067 // The tile size is 100x100.
1068 1068
1069 // This makes sure the painting works when the occluded region (in screen sp ace) 1069 // This makes sure the painting works when the occluded region (in screen sp ace)
1070 // is transformed differently than the layer. 1070 // is transformed differently than the layer.
1071 layer->setBounds(IntSize(600, 600)); 1071 layer->setBounds(IntSize(600, 600));
1072 WebTransformationMatrix screenTransform; 1072 WebTransformationMatrix screenTransform;
1073 screenTransform.scale(0.5); 1073 screenTransform.scale(0.5);
1074 layer->setScreenSpaceTransform(screenTransform); 1074 layer->setScreenSpaceTransform(screenTransform);
1075 layer->setDrawTransform(screenTransform); 1075 layer->setDrawTransform(screenTransform);
1076 1076
1077 occluded.setOcclusion(IntRect(100, 100, 150, 50)); 1077 occluded.setOcclusion(IntRect(100, 100, 150, 50));
1078 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds())); 1078 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds()));
1079 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds())); 1079 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds()));
1080 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1080 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
1081 layer->setTexturePriorities(m_priorityCalculator); 1081 layer->setTexturePriorities(m_priorityCalculator);
1082 m_textureManager->prioritizeTextures(); 1082 m_textureManager->prioritizeTextures();
1083 layer->update(*m_queue.get(), &occluded, m_stats); 1083 layer->update(*m_queue.get(), &occluded, m_stats);
1084 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1084 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->updateCount());
1085 1085
1086 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1086 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1087 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1); 1087 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1);
1088 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload()); 1088 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload());
1089 } 1089 }
1090 1090
1091 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusionAndScaling) 1091 TEST_F(TiledLayerChromiumTest, tilesPaintedWithOcclusionAndScaling)
1092 { 1092 {
1093 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get())); 1093 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get()));
1094 TestCCOcclusionTracker occluded; 1094 TestCCOcclusionTracker occluded;
(...skipping 13 matching lines...) Expand all
1108 occluded.setOcclusion(IntRect(200, 200, 300, 100)); 1108 occluded.setOcclusion(IntRect(200, 200, 300, 100));
1109 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds())); 1109 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds()));
1110 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds())); 1110 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds()));
1111 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1111 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
1112 layer->setTexturePriorities(m_priorityCalculator); 1112 layer->setTexturePriorities(m_priorityCalculator);
1113 m_textureManager->prioritizeTextures(); 1113 m_textureManager->prioritizeTextures();
1114 layer->update(*m_queue.get(), &occluded, m_stats); 1114 layer->update(*m_queue.get(), &occluded, m_stats);
1115 // The content is half the size of the layer (so the number of tiles is fewe r). 1115 // The content is half the size of the layer (so the number of tiles is fewe r).
1116 // In this case, the content is 300x300, and since the tile size is 100, the 1116 // In this case, the content is 300x300, and since the tile size is 100, the
1117 // number of tiles 3x3. 1117 // number of tiles 3x3.
1118 EXPECT_EQ(9, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1118 EXPECT_EQ(9, layer->fakeLayerTextureUpdater()->updateCount());
1119 1119
1120 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1120 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1121 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000, 1 ); 1121 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000, 1 );
1122 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload()); 1122 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload());
1123 1123
1124 layer->fakeLayerTextureUpdater()->clearPrepareRectCount(); 1124 layer->fakeLayerTextureUpdater()->clearUpdateCount();
1125 1125
1126 // This makes sure the painting works when the content space is scaled to 1126 // This makes sure the painting works when the content space is scaled to
1127 // a different layer space. In this case the occluded region catches the 1127 // a different layer space. In this case the occluded region catches the
1128 // blown up tiles. 1128 // blown up tiles.
1129 occluded.setOcclusion(IntRect(200, 200, 300, 200)); 1129 occluded.setOcclusion(IntRect(200, 200, 300, 200));
1130 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds())); 1130 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds()));
1131 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds())); 1131 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds()));
1132 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1132 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
1133 layer->setTexturePriorities(m_priorityCalculator); 1133 layer->setTexturePriorities(m_priorityCalculator);
1134 m_textureManager->prioritizeTextures(); 1134 m_textureManager->prioritizeTextures();
1135 layer->update(*m_queue.get(), &occluded, m_stats); 1135 layer->update(*m_queue.get(), &occluded, m_stats);
1136 EXPECT_EQ(9-1, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1136 EXPECT_EQ(9-1, layer->fakeLayerTextureUpdater()->updateCount());
1137 1137
1138 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1138 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1139 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1); 1139 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1);
1140 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload()); 1140 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload());
1141 1141
1142 layer->fakeLayerTextureUpdater()->clearPrepareRectCount(); 1142 layer->fakeLayerTextureUpdater()->clearUpdateCount();
1143 1143
1144 // This makes sure content scaling and transforms work together. 1144 // This makes sure content scaling and transforms work together.
1145 WebTransformationMatrix screenTransform; 1145 WebTransformationMatrix screenTransform;
1146 screenTransform.scale(0.5); 1146 screenTransform.scale(0.5);
1147 layer->setScreenSpaceTransform(screenTransform); 1147 layer->setScreenSpaceTransform(screenTransform);
1148 layer->setDrawTransform(screenTransform); 1148 layer->setDrawTransform(screenTransform);
1149 1149
1150 occluded.setOcclusion(IntRect(100, 100, 150, 100)); 1150 occluded.setOcclusion(IntRect(100, 100, 150, 100));
1151 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds())); 1151 layer->setDrawableContentRect(IntRect(IntPoint(), layer->contentBounds()));
1152 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds())); 1152 layer->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds()));
1153 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1153 layer->invalidateContentRect(IntRect(0, 0, 600, 600));
1154 layer->setTexturePriorities(m_priorityCalculator); 1154 layer->setTexturePriorities(m_priorityCalculator);
1155 m_textureManager->prioritizeTextures(); 1155 m_textureManager->prioritizeTextures();
1156 layer->update(*m_queue.get(), &occluded, m_stats); 1156 layer->update(*m_queue.get(), &occluded, m_stats);
1157 EXPECT_EQ(9-1, layer->fakeLayerTextureUpdater()->prepareRectCount()); 1157 EXPECT_EQ(9-1, layer->fakeLayerTextureUpdater()->updateCount());
1158 1158
1159 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1159 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1160 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000 + 80000, 1); 1160 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000 + 80000, 1);
1161 EXPECT_EQ(1 + 1, occluded.overdrawMetrics().tilesCulledForUpload()); 1161 EXPECT_EQ(1 + 1, occluded.overdrawMetrics().tilesCulledForUpload());
1162 } 1162 }
1163 1163
1164 TEST_F(TiledLayerChromiumTest, visibleContentOpaqueRegion) 1164 TEST_F(TiledLayerChromiumTest, visibleContentOpaqueRegion)
1165 { 1165 {
1166 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get())); 1166 RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m _textureManager.get()));
1167 TestCCOcclusionTracker occluded; 1167 TestCCOcclusionTracker occluded;
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
1552 updateTextures(); 1552 updateTextures();
1553 1553
1554 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds. 1554 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds.
1555 layer->setNeedsDisplayRect(layerRect); 1555 layer->setNeedsDisplayRect(layerRect);
1556 layer->update(*m_queue.get(), 0, m_stats); 1556 layer->update(*m_queue.get(), 0, m_stats);
1557 1557
1558 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); 1558 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect());
1559 } 1559 }
1560 1560
1561 } // namespace 1561 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698