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

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: Patch for landing Created 8 years 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') | cc/video_layer_impl.h » ('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 "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;
25 24
26 namespace cc { 25 namespace cc {
27 namespace { 26 namespace {
28 27
29 class TestOcclusionTracker : public OcclusionTracker { 28 class TestOcclusionTracker : public OcclusionTracker {
30 public: 29 public:
31 TestOcclusionTracker() 30 TestOcclusionTracker()
32 : OcclusionTracker(gfx::Rect(0, 0, 1000, 1000), true) 31 : OcclusionTracker(gfx::Rect(0, 0, 1000, 1000), true)
33 , m_layerClipRectInTarget(gfx::Rect(0, 0, 1000, 1000)) 32 , m_layerClipRectInTarget(gfx::Rect(0, 0, 1000, 1000))
34 { 33 {
(...skipping 1099 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndTransforms) 1133 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndTransforms)
1135 { 1134 {
1136 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_resourceManager.get())); 1135 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_resourceManager.get()));
1137 TestOcclusionTracker occluded; 1136 TestOcclusionTracker occluded;
1138 1137
1139 // The tile size is 100x100. 1138 // The tile size is 100x100.
1140 1139
1141 // This makes sure the painting works when the occluded region (in screen sp ace) 1140 // This makes sure the painting works when the occluded region (in screen sp ace)
1142 // is transformed differently than the layer. 1141 // is transformed differently than the layer.
1143 layer->setBounds(gfx::Size(600, 600)); 1142 layer->setBounds(gfx::Size(600, 600));
1144 WebTransformationMatrix screenTransform; 1143 gfx::Transform screenTransform;
1145 screenTransform.scale(0.5); 1144 screenTransform.Scale(0.5, 0.5);
1146 layer->setScreenSpaceTransform(screenTransform); 1145 layer->setScreenSpaceTransform(screenTransform);
1147 layer->setDrawTransform(screenTransform); 1146 layer->setDrawTransform(screenTransform);
1148 1147
1149 occluded.setOcclusion(gfx::Rect(100, 100, 150, 50)); 1148 occluded.setOcclusion(gfx::Rect(100, 100, 150, 50));
1150 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() )); 1149 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->contentBounds() ));
1151 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1150 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1152 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1151 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1153 layer->setTexturePriorities(m_priorityCalculator); 1152 layer->setTexturePriorities(m_priorityCalculator);
1154 m_resourceManager->prioritizeTextures(); 1153 m_resourceManager->prioritizeTextures();
1155 layer->update(*m_queue.get(), &occluded, m_stats); 1154 layer->update(*m_queue.get(), &occluded, m_stats);
(...skipping 10 matching lines...) Expand all
1166 TestOcclusionTracker occluded; 1165 TestOcclusionTracker occluded;
1167 1166
1168 // The tile size is 100x100. 1167 // The tile size is 100x100.
1169 1168
1170 // This makes sure the painting works when the content space is scaled to 1169 // 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 1170 // a different layer space. In this case tiles are scaled to be 200x200
1172 // pixels, which means none should be occluded. 1171 // pixels, which means none should be occluded.
1173 layer->setContentsScale(0.5); 1172 layer->setContentsScale(0.5);
1174 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY()); 1173 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY());
1175 layer->setBounds(gfx::Size(600, 600)); 1174 layer->setBounds(gfx::Size(600, 600));
1176 WebTransformationMatrix drawTransform; 1175 gfx::Transform drawTransform;
1177 drawTransform.scale(1 / layer->contentsScaleX()); 1176 double invScaleFactor = 1 / layer->contentsScaleX();
1177 drawTransform.Scale(invScaleFactor, invScaleFactor);
1178 layer->setDrawTransform(drawTransform); 1178 layer->setDrawTransform(drawTransform);
1179 layer->setScreenSpaceTransform(drawTransform); 1179 layer->setScreenSpaceTransform(drawTransform);
1180 1180
1181 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100)); 1181 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100));
1182 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds())); 1182 layer->setDrawableContentRect(gfx::Rect(gfx::Point(), layer->bounds()));
1183 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1183 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1184 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1184 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1185 layer->setTexturePriorities(m_priorityCalculator); 1185 layer->setTexturePriorities(m_priorityCalculator);
1186 m_resourceManager->prioritizeTextures(); 1186 m_resourceManager->prioritizeTextures();
1187 layer->update(*m_queue.get(), &occluded, m_stats); 1187 layer->update(*m_queue.get(), &occluded, m_stats);
(...skipping 20 matching lines...) Expand all
1208 layer->update(*m_queue.get(), &occluded, m_stats); 1208 layer->update(*m_queue.get(), &occluded, m_stats);
1209 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount()); 1209 EXPECT_EQ(9-1, layer->fakeLayerUpdater()->updateCount());
1210 1210
1211 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1); 1211 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedOpaque(), 0, 1);
1212 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1); 1212 EXPECT_NEAR(occluded.overdrawMetrics().pixelsUploadedTranslucent(), 90000 + 80000, 1);
1213 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload()); 1213 EXPECT_EQ(1, occluded.overdrawMetrics().tilesCulledForUpload());
1214 1214
1215 layer->fakeLayerUpdater()->clearUpdateCount(); 1215 layer->fakeLayerUpdater()->clearUpdateCount();
1216 1216
1217 // This makes sure content scaling and transforms work together. 1217 // This makes sure content scaling and transforms work together.
1218 WebTransformationMatrix screenTransform; 1218 gfx::Transform screenTransform;
1219 screenTransform.scale(0.5); 1219 screenTransform.Scale(0.5, 0.5);
1220 layer->setScreenSpaceTransform(screenTransform); 1220 layer->setScreenSpaceTransform(screenTransform);
1221 layer->setDrawTransform(screenTransform); 1221 layer->setDrawTransform(screenTransform);
1222 1222
1223 occluded.setOcclusion(gfx::Rect(100, 100, 150, 100)); 1223 occluded.setOcclusion(gfx::Rect(100, 100, 150, 100));
1224 1224
1225 gfx::Rect layerBoundsRect(gfx::Point(), layer->bounds()); 1225 gfx::Rect layerBoundsRect(gfx::Point(), layer->bounds());
1226 layer->setDrawableContentRect(gfx::ToEnclosingRect(gfx::ScaleRect(layerBound sRect, 0.5))); 1226 layer->setDrawableContentRect(gfx::ToEnclosingRect(gfx::ScaleRect(layerBound sRect, 0.5)));
1227 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) ); 1227 layer->setVisibleContentRect(gfx::Rect(gfx::Point(), layer->contentBounds()) );
1228 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600)); 1228 layer->invalidateContentRect(gfx::Rect(0, 0, 600, 600));
1229 layer->setTexturePriorities(m_priorityCalculator); 1229 layer->setTexturePriorities(m_priorityCalculator);
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1619 1619
1620 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds. 1620 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds.
1621 layer->setNeedsDisplayRect(layerRect); 1621 layer->setNeedsDisplayRect(layerRect);
1622 layer->update(*m_queue.get(), 0, m_stats); 1622 layer->update(*m_queue.get(), 0, m_stats);
1623 1623
1624 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); 1624 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect());
1625 } 1625 }
1626 1626
1627 } // namespace 1627 } // namespace
1628 } // namespace cc 1628 } // namespace cc
OLDNEW
« no previous file with comments | « 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