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

Side by Side Diff: cc/tiled_layer_unittest.cc

Issue 11275113: Remove most remaining references to IntRect and FloatRect. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compositor bindings Created 8 years, 1 month 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_impl.cc ('k') | webkit/compositor_bindings/web_layer_tree_view_impl.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 "cc/tiled_layer.h" 7 #include "cc/tiled_layer.h"
8 8
9 #include "cc/bitmap_content_layer_updater.h" 9 #include "cc/bitmap_content_layer_updater.h"
10 #include "cc/layer_painter.h" 10 #include "cc/layer_painter.h"
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 20000, 1 ); 219 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 20000, 1 );
220 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload()); 220 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload());
221 221
222 // We should have both tiles on the impl side. 222 // We should have both tiles on the impl side.
223 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0)); 223 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0));
224 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 1)); 224 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 1));
225 225
226 // Invalidates part of the top tile... 226 // Invalidates part of the top tile...
227 layer->invalidateContentRect(gfx::Rect(0, 0, 50, 50)); 227 layer->invalidateContentRect(gfx::Rect(0, 0, 50, 50));
228 // ....but the area is occluded. 228 // ....but the area is occluded.
229 occluded.setOcclusion(cc::IntRect(0, 0, 50, 50)); 229 occluded.setOcclusion(gfx::Rect(0, 0, 50, 50));
230 updateAndPush(layer.get(), layerImpl.get()); 230 updateAndPush(layer.get(), layerImpl.get());
231 231
232 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 232 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
233 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 20000 + 2500, 1); 233 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 20000 + 2500, 1);
234 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload()); 234 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload());
235 235
236 // We should still have both tiles, as part of the top tile is still unocclu ded. 236 // We should still have both tiles, as part of the top tile is still unocclu ded.
237 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0)); 237 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0));
238 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 1)); 238 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 1));
239 } 239 }
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 } 436 }
437 437
438 TEST_F(TiledLayerTest, pushIdlePaintedOccludedTiles) 438 TEST_F(TiledLayerTest, pushIdlePaintedOccludedTiles)
439 { 439 {
440 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get())); 440 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get()));
441 ScopedFakeTiledLayerImpl layerImpl(1); 441 ScopedFakeTiledLayerImpl layerImpl(1);
442 TestOcclusionTracker occluded; 442 TestOcclusionTracker occluded;
443 m_occlusion = &occluded; 443 m_occlusion = &occluded;
444 444
445 // The tile size is 100x100, so this invalidates one occluded tile, culls it during paint, but prepaints it. 445 // The tile size is 100x100, so this invalidates one occluded tile, culls it during paint, but prepaints it.
446 occluded.setOcclusion(cc::IntRect(0, 0, 100, 100)); 446 occluded.setOcclusion(gfx::Rect(0, 0, 100, 100));
447 447
448 layer->setBounds(gfx::Size(100, 100)); 448 layer->setBounds(gfx::Size(100, 100));
449 layer->setVisibleContentRect(gfx::Rect(0, 0, 100, 100)); 449 layer->setVisibleContentRect(gfx::Rect(0, 0, 100, 100));
450 updateAndPush(layer.get(), layerImpl.get()); 450 updateAndPush(layer.get(), layerImpl.get());
451 451
452 // We should have the prepainted tile on the impl side, but culled it during paint. 452 // We should have the prepainted tile on the impl side, but culled it during paint.
453 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0)); 453 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0));
454 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload()); 454 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload());
455 } 455 }
456 456
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 878
879 TEST_F(TiledLayerTest, tilesPaintedWithOcclusion) 879 TEST_F(TiledLayerTest, tilesPaintedWithOcclusion)
880 { 880 {
881 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get())); 881 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get()));
882 TestOcclusionTracker occluded; 882 TestOcclusionTracker occluded;
883 883
884 // The tile size is 100x100. 884 // The tile size is 100x100.
885 885
886 layer->setBounds(gfx::Size(600, 600)); 886 layer->setBounds(gfx::Size(600, 600));
887 887
888 occluded.setOcclusion(cc::IntRect(200, 200, 300, 100)); 888 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100));
889 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() )); 889 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() ));
890 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 890 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
891 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 891 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
892 892
893 layer->setTexturePriorities(m_priorityCalculator); 893 layer->setTexturePriorities(m_priorityCalculator);
894 m_textureManager->prioritizeTextures(); 894 m_textureManager->prioritizeTextures();
895 layer->update(*m_queue.get(), &occluded, m_stats); 895 layer->update(*m_queue.get(), &occluded, m_stats);
896 EXPECT_EQ(36-3, layer->fakeLayerUpdater()->updateCount()); 896 EXPECT_EQ(36-3, layer->fakeLayerUpdater()->updateCount());
897 897
898 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 898 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
899 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1); 899 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1);
900 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload()); 900 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload());
901 901
902 layer->fakeLayerUpdater()->clearUpdateCount(); 902 layer->fakeLayerUpdater()->clearUpdateCount();
903 layer->setTexturePriorities(m_priorityCalculator); 903 layer->setTexturePriorities(m_priorityCalculator);
904 m_textureManager->prioritizeTextures(); 904 m_textureManager->prioritizeTextures();
905 905
906 occluded.setOcclusion(cc::IntRect(250, 200, 300, 100)); 906 occluded.setOcclusion(gfx::Rect(250, 200, 300, 100));
907 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 907 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
908 layer->update(*m_queue.get(), &occluded, m_stats); 908 layer->update(*m_queue.get(), &occluded, m_stats);
909 EXPECT_EQ(36-2, layer->fakeLayerUpdater()->updateCount()); 909 EXPECT_EQ(36-2, layer->fakeLayerUpdater()->updateCount());
910 910
911 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 911 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
912 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000, 1); 912 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000, 1);
913 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload()); 913 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload());
914 914
915 layer->fakeLayerUpdater()->clearUpdateCount(); 915 layer->fakeLayerUpdater()->clearUpdateCount();
916 layer->setTexturePriorities(m_priorityCalculator); 916 layer->setTexturePriorities(m_priorityCalculator);
917 m_textureManager->prioritizeTextures(); 917 m_textureManager->prioritizeTextures();
918 918
919 occluded.setOcclusion(cc::IntRect(250, 250, 300, 100)); 919 occluded.setOcclusion(gfx::Rect(250, 250, 300, 100));
920 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 920 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
921 layer->update(*m_queue.get(), &occluded, m_stats); 921 layer->update(*m_queue.get(), &occluded, m_stats);
922 EXPECT_EQ(36, layer->fakeLayerUpdater()->updateCount()); 922 EXPECT_EQ(36, layer->fakeLayerUpdater()->updateCount());
923 923
924 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 924 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
925 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000 + 360000, 1); 925 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000 + 340000 + 360000, 1);
926 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload()); 926 EXPECT_EQ(3 + 2, occluded.overdrawMetrics().tilesCulledForUpload());
927 } 927 }
928 928
929 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndVisiblityConstraints) 929 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndVisiblityConstraints)
930 { 930 {
931 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get())); 931 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get()));
932 TestOcclusionTracker occluded; 932 TestOcclusionTracker occluded;
933 933
934 // The tile size is 100x100. 934 // The tile size is 100x100.
935 935
936 layer->setBounds(gfx::Size(600, 600)); 936 layer->setBounds(gfx::Size(600, 600));
937 937
938 // The partially occluded tiles (by the 150 occlusion height) are visible be yond the occlusion, so not culled. 938 // The partially occluded tiles (by the 150 occlusion height) are visible be yond the occlusion, so not culled.
939 occluded.setOcclusion(cc::IntRect(200, 200, 300, 150)); 939 occluded.setOcclusion(gfx::Rect(200, 200, 300, 150));
940 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 360)); 940 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 360));
941 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 360)); 941 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 360));
942 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 942 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
943 943
944 layer->setTexturePriorities(m_priorityCalculator); 944 layer->setTexturePriorities(m_priorityCalculator);
945 m_textureManager->prioritizeTextures(); 945 m_textureManager->prioritizeTextures();
946 layer->update(*m_queue.get(), &occluded, m_stats); 946 layer->update(*m_queue.get(), &occluded, m_stats);
947 EXPECT_EQ(24-3, layer->fakeLayerUpdater()->updateCount()); 947 EXPECT_EQ(24-3, layer->fakeLayerUpdater()->updateCount());
948 948
949 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 949 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
950 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000, 1); 950 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000, 1);
951 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload()); 951 EXPECT_EQ(3, occluded.overdrawMetrics().tilesCulledForUpload());
952 952
953 layer->fakeLayerUpdater()->clearUpdateCount(); 953 layer->fakeLayerUpdater()->clearUpdateCount();
954 954
955 // Now the visible region stops at the edge of the occlusion so the partly v isible tiles become fully occluded. 955 // Now the visible region stops at the edge of the occlusion so the partly v isible tiles become fully occluded.
956 occluded.setOcclusion(cc::IntRect(200, 200, 300, 150)); 956 occluded.setOcclusion(gfx::Rect(200, 200, 300, 150));
957 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 350)); 957 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 350));
958 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 350)); 958 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 350));
959 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 959 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
960 layer->setTexturePriorities(m_priorityCalculator); 960 layer->setTexturePriorities(m_priorityCalculator);
961 m_textureManager->prioritizeTextures(); 961 m_textureManager->prioritizeTextures();
962 layer->update(*m_queue.get(), &occluded, m_stats); 962 layer->update(*m_queue.get(), &occluded, m_stats);
963 EXPECT_EQ(24-6, layer->fakeLayerUpdater()->updateCount()); 963 EXPECT_EQ(24-6, layer->fakeLayerUpdater()->updateCount());
964 964
965 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 965 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
966 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000, 1); 966 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000, 1);
967 EXPECT_EQ(3 + 6, occluded.overdrawMetrics().tilesCulledForUpload()); 967 EXPECT_EQ(3 + 6, occluded.overdrawMetrics().tilesCulledForUpload());
968 968
969 layer->fakeLayerUpdater()->clearUpdateCount(); 969 layer->fakeLayerUpdater()->clearUpdateCount();
970 970
971 // Now the visible region is even smaller than the occlusion, it should have the same result. 971 // Now the visible region is even smaller than the occlusion, it should have the same result.
972 occluded.setOcclusion(cc::IntRect(200, 200, 300, 150)); 972 occluded.setOcclusion(gfx::Rect(200, 200, 300, 150));
973 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 340)); 973 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 340));
974 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 340)); 974 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 340));
975 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 975 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
976 layer->setTexturePriorities(m_priorityCalculator); 976 layer->setTexturePriorities(m_priorityCalculator);
977 m_textureManager->prioritizeTextures(); 977 m_textureManager->prioritizeTextures();
978 layer->update(*m_queue.get(), &occluded, m_stats); 978 layer->update(*m_queue.get(), &occluded, m_stats);
979 EXPECT_EQ(24-6, layer->fakeLayerUpdater()->updateCount()); 979 EXPECT_EQ(24-6, layer->fakeLayerUpdater()->updateCount());
980 980
981 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 981 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
982 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000 + 180000, 1); 982 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 210000 + 180000 + 180000, 1);
983 EXPECT_EQ(3 + 6 + 6, occluded.overdrawMetrics().tilesCulledForUpload()); 983 EXPECT_EQ(3 + 6 + 6, occluded.overdrawMetrics().tilesCulledForUpload());
984 984
985 } 985 }
986 986
987 TEST_F(TiledLayerTest, tilesNotPaintedWithoutInvalidation) 987 TEST_F(TiledLayerTest, tilesNotPaintedWithoutInvalidation)
988 { 988 {
989 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get())); 989 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_textureManager.get()));
990 TestOcclusionTracker occluded; 990 TestOcclusionTracker occluded;
991 991
992 // The tile size is 100x100. 992 // The tile size is 100x100.
993 993
994 layer->setBounds(gfx::Size(600, 600)); 994 layer->setBounds(gfx::Size(600, 600));
995 995
996 occluded.setOcclusion(cc::IntRect(200, 200, 300, 100)); 996 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100));
997 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 600)); 997 layer->setDrawableContentRect(gfx::Rect(0, 0, 600, 600));
998 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 600)); 998 layer->setVisibleContentRect(gfx::Rect(0, 0, 600, 600));
999 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 999 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1000 layer->setTexturePriorities(m_priorityCalculator); 1000 layer->setTexturePriorities(m_priorityCalculator);
1001 m_textureManager->prioritizeTextures(); 1001 m_textureManager->prioritizeTextures();
1002 layer->update(*m_queue.get(), &occluded, m_stats); 1002 layer->update(*m_queue.get(), &occluded, m_stats);
1003 EXPECT_EQ(36-3, layer->fakeLayerUpdater()->updateCount()); 1003 EXPECT_EQ(36-3, layer->fakeLayerUpdater()->updateCount());
1004 { 1004 {
1005 updateTextures(); 1005 updateTextures();
1006 } 1006 }
(...skipping 23 matching lines...) Expand all
1030 // The tile size is 100x100. 1030 // The tile size is 100x100.
1031 1031
1032 // This makes sure the painting works when the occluded region (in screen sp ace) 1032 // This makes sure the painting works when the occluded region (in screen sp ace)
1033 // is transformed differently than the layer. 1033 // is transformed differently than the layer.
1034 layer->setBounds(gfx::Size(600, 600)); 1034 layer->setBounds(gfx::Size(600, 600));
1035 WebTransformationMatrix screenTransform; 1035 WebTransformationMatrix screenTransform;
1036 screenTransform.scale(0.5); 1036 screenTransform.scale(0.5);
1037 layer->setScreenSpaceTransform(screenTransform); 1037 layer->setScreenSpaceTransform(screenTransform);
1038 layer->setDrawTransform(screenTransform); 1038 layer->setDrawTransform(screenTransform);
1039 1039
1040 occluded.setOcclusion(cc::IntRect(100, 100, 150, 50)); 1040 occluded.setOcclusion(gfx::Rect(100, 100, 150, 50));
1041 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() )); 1041 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() ));
1042 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1042 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1043 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1043 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1044 layer->setTexturePriorities(m_priorityCalculator); 1044 layer->setTexturePriorities(m_priorityCalculator);
1045 m_textureManager->prioritizeTextures(); 1045 m_textureManager->prioritizeTextures();
1046 layer->update(*m_queue.get(), &occluded, m_stats); 1046 layer->update(*m_queue.get(), &occluded, m_stats);
1047 EXPECT_EQ(36-3, layer->fakeLayerUpdater()->updateCount()); 1047 EXPECT_EQ(36-3, layer->fakeLayerUpdater()->updateCount());
1048 1048
1049 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1049 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1050 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1); 1050 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 330000, 1);
(...skipping 11 matching lines...) Expand all
1062 // a different layer space. In this case tiles are scaled to be 200x200 1062 // a different layer space. In this case tiles are scaled to be 200x200
1063 // pixels, which means none should be occluded. 1063 // pixels, which means none should be occluded.
1064 layer->setContentsScale(0.5); 1064 layer->setContentsScale(0.5);
1065 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY()); 1065 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY());
1066 layer->setBounds(gfx::Size(600, 600)); 1066 layer->setBounds(gfx::Size(600, 600));
1067 WebTransformationMatrix drawTransform; 1067 WebTransformationMatrix drawTransform;
1068 drawTransform.scale(1 / layer->contentsScaleX()); 1068 drawTransform.scale(1 / layer->contentsScaleX());
1069 layer->setDrawTransform(drawTransform); 1069 layer->setDrawTransform(drawTransform);
1070 layer->setScreenSpaceTransform(drawTransform); 1070 layer->setScreenSpaceTransform(drawTransform);
1071 1071
1072 occluded.setOcclusion(cc::IntRect(200, 200, 300, 100)); 1072 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100));
1073 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds())); 1073 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds()));
1074 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1074 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1075 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1075 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1076 layer->setTexturePriorities(m_priorityCalculator); 1076 layer->setTexturePriorities(m_priorityCalculator);
1077 m_textureManager->prioritizeTextures(); 1077 m_textureManager->prioritizeTextures();
1078 layer->update(*m_queue.get(), &occluded, m_stats); 1078 layer->update(*m_queue.get(), &occluded, m_stats);
1079 // The content is half the size of the layer (so the number of tiles is fewe r). 1079 // The content is half the size of the layer (so the number of tiles is fewe r).
1080 // In this case, the content is 300x300, and since the tile size is 100, the 1080 // In this case, the content is 300x300, and since the tile size is 100, the
1081 // number of tiles 3x3. 1081 // number of tiles 3x3.
1082 EXPECT_EQ(9, layer->fakeLayerUpdater()->updateCount()); 1082 EXPECT_EQ(9, layer->fakeLayerUpdater()->updateCount());
1083 1083
1084 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1084 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1085 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000, 1 ); 1085 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000, 1 );
1086 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload()); 1086 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload());
1087 1087
1088 layer->fakeLayerUpdater()->clearUpdateCount(); 1088 layer->fakeLayerUpdater()->clearUpdateCount();
1089 1089
1090 // This makes sure the painting works when the content space is scaled to 1090 // This makes sure the painting works when the content space is scaled to
1091 // a different layer space. In this case the occluded region catches the 1091 // a different layer space. In this case the occluded region catches the
1092 // blown up tiles. 1092 // blown up tiles.
1093 occluded.setOcclusion(cc::IntRect(200, 200, 300, 200)); 1093 occluded.setOcclusion(gfx::Rect(200, 200, 300, 200));
1094 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds())); 1094 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds()));
1095 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1095 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1096 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1096 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1097 layer->setTexturePriorities(m_priorityCalculator); 1097 layer->setTexturePriorities(m_priorityCalculator);
1098 m_textureManager->prioritizeTextures(); 1098 m_textureManager->prioritizeTextures();
1099 layer->update(*m_queue.get(), &occluded, m_stats); 1099 layer->update(*m_queue.get(), &occluded, m_stats);
1100 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount()); 1100 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount());
1101 1101
1102 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1102 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1103 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1); 1103 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1);
1104 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload()); 1104 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload());
1105 1105
1106 layer->fakeLayerUpdater()->clearUpdateCount(); 1106 layer->fakeLayerUpdater()->clearUpdateCount();
1107 1107
1108 // This makes sure content scaling and transforms work together. 1108 // This makes sure content scaling and transforms work together.
1109 WebTransformationMatrix screenTransform; 1109 WebTransformationMatrix screenTransform;
1110 screenTransform.scale(0.5); 1110 screenTransform.scale(0.5);
1111 layer->setScreenSpaceTransform(screenTransform); 1111 layer->setScreenSpaceTransform(screenTransform);
1112 layer->setDrawTransform(screenTransform); 1112 layer->setDrawTransform(screenTransform);
1113 1113
1114 occluded.setOcclusion(cc::IntRect(100, 100, 150, 100)); 1114 occluded.setOcclusion(gfx::Rect(100, 100, 150, 100));
1115 1115
1116 gfx::Rect layerBoundsRect(gfx::Point(), layer->bounds()); 1116 gfx::Rect layerBoundsRect(gfx::Point(), layer->bounds());
1117 layer->setDrawableContentRect(gfx::ToEnclosingRect(gfx::ScaleRect(layerBound sRect, 0.5))); 1117 layer->setDrawableContentRect(gfx::ToEnclosingRect(gfx::ScaleRect(layerBound sRect, 0.5)));
1118 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1118 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1119 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1119 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1120 layer->setTexturePriorities(m_priorityCalculator); 1120 layer->setTexturePriorities(m_priorityCalculator);
1121 m_textureManager->prioritizeTextures(); 1121 m_textureManager->prioritizeTextures();
1122 layer->update(*m_queue.get(), &occluded, m_stats); 1122 layer->update(*m_queue.get(), &occluded, m_stats);
1123 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount()); 1123 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount());
1124 1124
(...skipping 21 matching lines...) Expand all
1146 layer->setDrawOpacity(1); 1146 layer->setDrawOpacity(1);
1147 1147
1148 layer->setTexturePriorities(m_priorityCalculator); 1148 layer->setTexturePriorities(m_priorityCalculator);
1149 m_textureManager->prioritizeTextures(); 1149 m_textureManager->prioritizeTextures();
1150 1150
1151 // If the layer doesn't paint opaque content, then the visibleContentOpaqueR egion should be empty. 1151 // If the layer doesn't paint opaque content, then the visibleContentOpaqueR egion should be empty.
1152 layer->fakeLayerUpdater()->setOpaquePaintRect(gfx::Rect()); 1152 layer->fakeLayerUpdater()->setOpaquePaintRect(gfx::Rect());
1153 layer->invalidateContentRect(contentBounds); 1153 layer->invalidateContentRect(contentBounds);
1154 layer->update(*m_queue.get(), &occluded, m_stats); 1154 layer->update(*m_queue.get(), &occluded, m_stats);
1155 opaqueContents = layer->visibleContentOpaqueRegion(); 1155 opaqueContents = layer->visibleContentOpaqueRegion();
1156 EXPECT_TRUE(opaqueContents.isEmpty()); 1156 EXPECT_TRUE(opaqueContents.IsEmpty());
1157 1157
1158 EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 20000, 1); 1158 EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 20000, 1);
1159 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1159 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1160 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 20000, 1 ); 1160 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 20000, 1 );
1161 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload()); 1161 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload());
1162 1162
1163 // visibleContentOpaqueRegion should match the visible part of what is paint ed opaque. 1163 // visibleContentOpaqueRegion should match the visible part of what is paint ed opaque.
1164 opaquePaintRect = gfx::Rect(10, 10, 90, 190); 1164 opaquePaintRect = gfx::Rect(10, 10, 90, 190);
1165 layer->fakeLayerUpdater()->setOpaquePaintRect(opaquePaintRect); 1165 layer->fakeLayerUpdater()->setOpaquePaintRect(opaquePaintRect);
1166 layer->invalidateContentRect(contentBounds); 1166 layer->invalidateContentRect(contentBounds);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 1239
1240 layer->setTexturePriorities(m_priorityCalculator); 1240 layer->setTexturePriorities(m_priorityCalculator);
1241 m_textureManager->prioritizeTextures(); 1241 m_textureManager->prioritizeTextures();
1242 1242
1243 // Invalidates and paints the whole layer. 1243 // Invalidates and paints the whole layer.
1244 layer->fakeLayerUpdater()->setOpaquePaintRect(gfx::Rect()); 1244 layer->fakeLayerUpdater()->setOpaquePaintRect(gfx::Rect());
1245 layer->invalidateContentRect(contentBounds); 1245 layer->invalidateContentRect(contentBounds);
1246 layer->update(*m_queue.get(), &occluded, m_stats); 1246 layer->update(*m_queue.get(), &occluded, m_stats);
1247 updateTextures(); 1247 updateTextures();
1248 opaqueContents = layer->visibleContentOpaqueRegion(); 1248 opaqueContents = layer->visibleContentOpaqueRegion();
1249 EXPECT_TRUE(opaqueContents.isEmpty()); 1249 EXPECT_TRUE(opaqueContents.IsEmpty());
1250 1250
1251 EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 30000, 1); 1251 EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 30000, 1);
1252 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1252 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1253 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 30000, 1 ); 1253 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 30000, 1 );
1254 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload()); 1254 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload());
1255 1255
1256 // Invalidates an area on the top and bottom tile, which will cause us to pa int the tile in the middle, 1256 // Invalidates an area on the top and bottom tile, which will cause us to pa int the tile in the middle,
1257 // even though it is not dirty and will not be uploaded. 1257 // even though it is not dirty and will not be uploaded.
1258 layer->fakeLayerUpdater()->setOpaquePaintRect(gfx::Rect()); 1258 layer->fakeLayerUpdater()->setOpaquePaintRect(gfx::Rect());
1259 layer->invalidateContentRect(gfx::Rect(0, 0, 1, 1)); 1259 layer->invalidateContentRect(gfx::Rect(0, 0, 1, 1));
1260 layer->invalidateContentRect(gfx::Rect(50, 200, 10, 10)); 1260 layer->invalidateContentRect(gfx::Rect(50, 200, 10, 10));
1261 layer->update(*m_queue.get(), &occluded, m_stats); 1261 layer->update(*m_queue.get(), &occluded, m_stats);
1262 updateTextures(); 1262 updateTextures();
1263 opaqueContents = layer->visibleContentOpaqueRegion(); 1263 opaqueContents = layer->visibleContentOpaqueRegion();
1264 EXPECT_TRUE(opaqueContents.isEmpty()); 1264 EXPECT_TRUE(opaqueContents.IsEmpty());
1265 1265
1266 // The middle tile was painted even though not invalidated. 1266 // The middle tile was painted even though not invalidated.
1267 EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 30000 + 60 * 210, 1) ; 1267 EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 30000 + 60 * 210, 1) ;
1268 // The pixels uploaded will not include the non-invalidated tile in the midd le. 1268 // The pixels uploaded will not include the non-invalidated tile in the midd le.
1269 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1269 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1270 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 30000 + 1 + 100, 1); 1270 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 30000 + 1 + 100, 1);
1271 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload()); 1271 EXPECT_EQ(0, occluded.overdrawMetrics().tilesCulledForUpload());
1272 } 1272 }
1273 1273
1274 TEST_F(TiledLayerTest, dontAllocateContentsWhenTargetSurfaceCantBeAllocated) 1274 TEST_F(TiledLayerTest, dontAllocateContentsWhenTargetSurfaceCantBeAllocated)
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
1623 layer->fakeLayerUpdater()->clearUpdateCount(); 1623 layer->fakeLayerUpdater()->clearUpdateCount();
1624 layerPushPropertiesTo(layer.get(), layerImpl.get()); 1624 layerPushPropertiesTo(layer.get(), layerImpl.get());
1625 } 1625 }
1626 m_layerTreeHost->commitComplete(); 1626 m_layerTreeHost->commitComplete();
1627 1627
1628 textureManagerClearAllMemory(m_layerTreeHost->contentsTextureManager(), m_re sourceProvider.get()); 1628 textureManagerClearAllMemory(m_layerTreeHost->contentsTextureManager(), m_re sourceProvider.get());
1629 m_layerTreeHost->setRootLayer(0); 1629 m_layerTreeHost->setRootLayer(0);
1630 } 1630 }
1631 1631
1632 } // namespace 1632 } // namespace
OLDNEW
« no previous file with comments | « cc/tiled_layer_impl.cc ('k') | webkit/compositor_bindings/web_layer_tree_view_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698