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

Side by Side Diff: cc/tiled_layer_unittest.cc

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

Powered by Google App Engine
This is Rietveld 408576698