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

Side by Side Diff: cc/tiled_layer_unittest.cc

Issue 11308153: Migrate most of cc/ from WebKit::WebTransformationMatrix to gfx::Transform (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased to tip of tree and addressed feedback 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
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/tiled_layer.h" 5 #include "cc/tiled_layer.h"
6 6
7 #include "cc/bitmap_content_layer_updater.h" 7 #include "cc/bitmap_content_layer_updater.h"
8 #include "cc/layer_painter.h" 8 #include "cc/layer_painter.h"
9 #include "cc/overdraw_metrics.h" 9 #include "cc/overdraw_metrics.h"
10 #include "cc/rendering_stats.h" 10 #include "cc/rendering_stats.h"
11 #include "cc/resource_update_controller.h" 11 #include "cc/resource_update_controller.h"
12 #include "cc/single_thread_proxy.h" // For DebugScopedSetImplThread 12 #include "cc/single_thread_proxy.h" // For DebugScopedSetImplThread
13 #include "cc/test/animation_test_common.h" 13 #include "cc/test/animation_test_common.h"
14 #include "cc/test/fake_graphics_context.h" 14 #include "cc/test/fake_graphics_context.h"
15 #include "cc/test/fake_layer_tree_host_client.h" 15 #include "cc/test/fake_layer_tree_host_client.h"
16 #include "cc/test/fake_proxy.h" 16 #include "cc/test/fake_proxy.h"
17 #include "cc/test/geometry_test_utils.h" 17 #include "cc/test/geometry_test_utils.h"
18 #include "cc/test/tiled_layer_test_common.h" 18 #include "cc/test/tiled_layer_test_common.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 #include "ui/gfx/rect_conversions.h" 20 #include "ui/gfx/rect_conversions.h"
21 #include <public/WebTransformationMatrix.h> 21 #include "ui/gfx/transform.h"
22 22
23 using namespace WebKitTests; 23 using namespace WebKitTests;
24 using WebKit::WebTransformationMatrix; 24 using gfx::Transform;
25 25
26 namespace cc { 26 namespace cc {
27 namespace { 27 namespace {
28 28
29 class TestOcclusionTracker : public OcclusionTracker { 29 class TestOcclusionTracker : public OcclusionTracker {
30 public: 30 public:
31 TestOcclusionTracker() 31 TestOcclusionTracker()
32 : OcclusionTracker(gfx::Rect(0, 0, 1000, 1000), true) 32 : OcclusionTracker(gfx::Rect(0, 0, 1000, 1000), true)
33 , m_layerClipRectInTarget(gfx::Rect(0, 0, 1000, 1000)) 33 , m_layerClipRectInTarget(gfx::Rect(0, 0, 1000, 1000))
34 { 34 {
(...skipping 1099 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndTransforms) 1134 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndTransforms)
1135 { 1135 {
1136 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_resourceManager.get())); 1136 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_resourceManager.get()));
1137 TestOcclusionTracker occluded; 1137 TestOcclusionTracker occluded;
1138 1138
1139 // The tile size is 100x100. 1139 // The tile size is 100x100.
1140 1140
1141 // This makes sure the painting works when the occluded region (in screen sp ace) 1141 // This makes sure the painting works when the occluded region (in screen sp ace)
1142 // is transformed differently than the layer. 1142 // is transformed differently than the layer.
1143 layer->setBounds(gfx::Size(600, 600)); 1143 layer->setBounds(gfx::Size(600, 600));
1144 WebTransformationMatrix screenTransform; 1144 Transform screenTransform;
1145 screenTransform.scale(0.5); 1145 screenTransform.PreconcatScale(0.5, 0.5);
1146 layer->setScreenSpaceTransform(screenTransform); 1146 layer->setScreenSpaceTransform(screenTransform);
1147 layer->setDrawTransform(screenTransform); 1147 layer->setDrawTransform(screenTransform);
1148 1148
1149 occluded.setOcclusion(gfx::Rect(100, 100, 150, 50)); 1149 occluded.setOcclusion(gfx::Rect(100, 100, 150, 50));
1150 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() )); 1150 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() ));
1151 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1151 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1152 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1152 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1153 layer->setTexturePriorities(m_priorityCalculator); 1153 layer->setTexturePriorities(m_priorityCalculator);
1154 m_resourceManager->prioritizeTextures(); 1154 m_resourceManager->prioritizeTextures();
1155 layer->update(*m_queue.get(), &occluded, m_stats); 1155 layer->update(*m_queue.get(), &occluded, m_stats);
(...skipping 10 matching lines...) Expand all
1166 TestOcclusionTracker occluded; 1166 TestOcclusionTracker occluded;
1167 1167
1168 // The tile size is 100x100. 1168 // The tile size is 100x100.
1169 1169
1170 // This makes sure the painting works when the content space is scaled to 1170 // This makes sure the painting works when the content space is scaled to
1171 // a different layer space. In this case tiles are scaled to be 200x200 1171 // a different layer space. In this case tiles are scaled to be 200x200
1172 // pixels, which means none should be occluded. 1172 // pixels, which means none should be occluded.
1173 layer->setContentsScale(0.5); 1173 layer->setContentsScale(0.5);
1174 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY()); 1174 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY());
1175 layer->setBounds(gfx::Size(600, 600)); 1175 layer->setBounds(gfx::Size(600, 600));
1176 WebTransformationMatrix drawTransform; 1176 Transform drawTransform;
1177 drawTransform.scale(1 / layer->contentsScaleX()); 1177 double invScaleFactor = 1 / layer->contentsScaleX();
1178 drawTransform.PreconcatScale(invScaleFactor, invScaleFactor);
1178 layer->setDrawTransform(drawTransform); 1179 layer->setDrawTransform(drawTransform);
1179 layer->setScreenSpaceTransform(drawTransform); 1180 layer->setScreenSpaceTransform(drawTransform);
1180 1181
1181 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100)); 1182 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100));
1182 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds())); 1183 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds()));
1183 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1184 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1184 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1185 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1185 layer->setTexturePriorities(m_priorityCalculator); 1186 layer->setTexturePriorities(m_priorityCalculator);
1186 m_resourceManager->prioritizeTextures(); 1187 m_resourceManager->prioritizeTextures();
1187 layer->update(*m_queue.get(), &occluded, m_stats); 1188 layer->update(*m_queue.get(), &occluded, m_stats);
(...skipping 20 matching lines...) Expand all
1208 layer->update(*m_queue.get(), &occluded, m_stats); 1209 layer->update(*m_queue.get(), &occluded, m_stats);
1209 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount()); 1210 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount());
1210 1211
1211 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1212 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1212 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1); 1213 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1);
1213 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload()); 1214 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload());
1214 1215
1215 layer->fakeLayerUpdater()->clearUpdateCount(); 1216 layer->fakeLayerUpdater()->clearUpdateCount();
1216 1217
1217 // This makes sure content scaling and transforms work together. 1218 // This makes sure content scaling and transforms work together.
1218 WebTransformationMatrix screenTransform; 1219 Transform screenTransform;
1219 screenTransform.scale(0.5); 1220 screenTransform.PreconcatScale(0.5, 0.5);
1220 layer->setScreenSpaceTransform(screenTransform); 1221 layer->setScreenSpaceTransform(screenTransform);
1221 layer->setDrawTransform(screenTransform); 1222 layer->setDrawTransform(screenTransform);
1222 1223
1223 occluded.setOcclusion(gfx::Rect(100, 100, 150, 100)); 1224 occluded.setOcclusion(gfx::Rect(100, 100, 150, 100));
1224 1225
1225 gfx::Rect layerBoundsRect(gfx::Point(), layer->bounds()); 1226 gfx::Rect layerBoundsRect(gfx::Point(), layer->bounds());
1226 layer->setDrawableContentRect(gfx::ToEnclosingRect(gfx::ScaleRect(layerBound sRect, 0.5))); 1227 layer->setDrawableContentRect(gfx::ToEnclosingRect(gfx::ScaleRect(layerBound sRect, 0.5)));
1227 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1228 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1228 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1229 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1229 layer->setTexturePriorities(m_priorityCalculator); 1230 layer->setTexturePriorities(m_priorityCalculator);
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1619 1620
1620 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds. 1621 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds.
1621 layer->setNeedsDisplayRect(layerRect); 1622 layer->setNeedsDisplayRect(layerRect);
1622 layer->update(*m_queue.get(), 0, m_stats); 1623 layer->update(*m_queue.get(), 0, m_stats);
1623 1624
1624 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); 1625 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect());
1625 } 1626 }
1626 1627
1627 } // namespace 1628 } // namespace
1628 } // namespace cc 1629 } // namespace cc
OLDNEW
« cc/tiled_layer_impl.h ('K') | « cc/tiled_layer_impl.cc ('k') | cc/video_layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698